|
|
@@ -144,6 +144,93 @@ func (*Menus) DataInit(db *gorm.DB) error {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 初始化 系统配置 子菜单
|
|
|
+ sysParent := Menus{}
|
|
|
+ db.Model(&Menus{}).Where("router = ?", "/system").First(&sysParent)
|
|
|
+ if sysParent.ID != 0 {
|
|
|
+ sysChildren := []Menus{
|
|
|
+ {Name: "账号管理", Icon: "Menu", Router: "/system/accountManage", Component: "@/views/system/accountManage/index.vue", Sort: 1, Enable: true, IsKeepAlive: true},
|
|
|
+ {Name: "角色管理", Icon: "Menu", Router: "/system/roleManage", Component: "@/views/system/roleManage/index.vue", Sort: 2, Enable: true, IsKeepAlive: true},
|
|
|
+ {Name: "菜单管理", Icon: "Menu", Router: "/system/menuMange", Component: "@/views/system/menuMange/index.vue", Sort: 3, Enable: true, IsKeepAlive: true},
|
|
|
+ {Name: "APIs管理", Icon: "Menu", Router: "/system/apisManage", Component: "@/views/system/apisManage/index.vue", Sort: 4, Enable: true, IsKeepAlive: true},
|
|
|
+ }
|
|
|
+ for _, child := range sysChildren {
|
|
|
+ find := Menus{}
|
|
|
+ if stat := db.Model(&Menus{}).Where("router = ?", child.Router).Find(&find).Statement; stat.RowsAffected == 0 {
|
|
|
+ child.ParentId = sysParent.ID
|
|
|
+ if err := db.Create(&child).Error; err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 初始化 Cloudflare 菜单(查找或创建父菜单,再补充子菜单)
|
|
|
+ cfParent := Menus{}
|
|
|
+ db.Model(&Menus{}).Where("router = ?", "/cloudflare").First(&cfParent)
|
|
|
+ if cfParent.ID == 0 {
|
|
|
+ cfParent = Menus{
|
|
|
+ ParentId: 0,
|
|
|
+ Name: "Cloudflare",
|
|
|
+ Icon: "Monitor",
|
|
|
+ Router: "/cloudflare",
|
|
|
+ Sort: 2,
|
|
|
+ Enable: true,
|
|
|
+ IsKeepAlive: true,
|
|
|
+ }
|
|
|
+ if err := db.Create(&cfParent).Error; err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cfChildren := []Menus{
|
|
|
+ {
|
|
|
+ Name: "账号管理",
|
|
|
+ Icon: "Key",
|
|
|
+ Router: "/cloudflare/account",
|
|
|
+ Component: "@/views/cloudflare/account/index.vue",
|
|
|
+ Sort: 1,
|
|
|
+ Enable: true,
|
|
|
+ IsKeepAlive: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "Zone 列表",
|
|
|
+ Icon: "List",
|
|
|
+ Router: "/cloudflare/zones",
|
|
|
+ Component: "@/views/cloudflare/zones/index.vue",
|
|
|
+ Sort: 2,
|
|
|
+ Enable: true,
|
|
|
+ IsKeepAlive: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "DNS 管理",
|
|
|
+ Icon: "Connection",
|
|
|
+ Router: "/cloudflare/dns",
|
|
|
+ Component: "@/views/cloudflare/dns/index.vue",
|
|
|
+ Sort: 3,
|
|
|
+ Enable: true,
|
|
|
+ IsKeepAlive: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ Name: "DNS 模板",
|
|
|
+ Icon: "Document",
|
|
|
+ Router: "/cloudflare/template",
|
|
|
+ Component: "@/views/cloudflare/template/index.vue",
|
|
|
+ Sort: 4,
|
|
|
+ Enable: true,
|
|
|
+ IsKeepAlive: true,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ for _, child := range cfChildren {
|
|
|
+ find := Menus{}
|
|
|
+ if stat := db.Model(&Menus{}).Where("router = ?", child.Router).Find(&find).Statement; stat.RowsAffected == 0 {
|
|
|
+ child.ParentId = cfParent.ID
|
|
|
+ if err := db.Create(&child).Error; err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return nil
|
|
|
}
|
|
|
|