package business import "gorm.io/gorm" // 使用 Kra 全局注册的 Element Plus 组件名;不可直接沿用 RuoYi 的 SVG 文件名。 var businessMenuIcons = map[string]string{ "sw_OtherSettings": "Setting", "sw_BusMgmt": "Briefcase", "sw_BusinessList": "UserFilled", "sw_ChannelList": "Connection", "sw_ChannelActivationList": "CircleCheck", "sw_DataAnalysis": "DataAnalysis", "sw_ChannelDataStatistics": "Histogram", "sw_RechargeDetails": "Money", "sw_RegistrationDetails": "User", "sw_GameAnalytics": "TrendCharts", "sw_ServerAnalysis": "Monitor", "sw_RankingAnalysis": "Star", "sw_AlertCenter": "Bell", "sw_AlertList": "Warning", "sw_AlertRules": "Setting", } func MenuIcon(name string) string { return businessMenuIcons[name] } func migrateBusinessMenuIcons(db *gorm.DB) error { if !db.Migrator().HasTable("sys_base_menus") { return nil } // 仅替换旧迁移和早期模块默认值,保留管理员后来选取的其他图标。 legacy := []string{"", "category", "email", "chart", "company", "international", "color", "dict", "cascader", "education", "excel", "star", "process-definition", "documentation", "example", "data-analysis", "user", "money", "warn"} return db.Transaction(func(tx *gorm.DB) error { for name, icon := range businessMenuIcons { if err := tx.Table("sys_base_menus").Where("name=? AND (icon IS NULL OR icon IN ?)", name, legacy).Update("icon", icon).Error; err != nil { return err } } return nil }) }