Files
kra-new/internal/data/business/menu_icons.go
T

41 lines
1.6 KiB
Go

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
})
}