fix(menu): show dashboard overview as root item

This commit is contained in:
2026-08-04 23:23:12 +08:00
parent e72750235d
commit 14a2ed7df8
12 changed files with 90 additions and 21 deletions

View File

@@ -14,9 +14,7 @@ type Menu struct {
}
var adminMenus = []Menu{
{Identity: "dashboard", GroupCode: "dashboard", Name: "数据概", Icon: "icon-dashboard", Path: "/dashboard", SortNo: 10, Status: common.StatusEnable},
{Identity: "dashboard_overview", ParentIdentity: "dashboard", GroupCode: "dashboard", Name: "运营概览", Path: "/dashboard/overview", SortNo: 1, Status: common.StatusEnable},
{Identity: "dashboard_reports", ParentIdentity: "dashboard", GroupCode: "dashboard", Name: "订单报表", Path: "/dashboard/reports", SortNo: 2, Status: common.StatusEnable},
{Identity: "dashboard_overview", GroupCode: "dashboard", Name: "数据概", Icon: "icon-dashboard", Path: "/dashboard/overview", SortNo: 10, Status: common.StatusEnable},
{Identity: "profile", GroupCode: "profile", Name: "配送点资料", Icon: "icon-storage", Path: "/profile", SortNo: 20, Status: common.StatusEnable},
{Identity: "delivery_profile", ParentIdentity: "profile", GroupCode: "profile", Name: "本点资料", Path: "/profile/basic", SortNo: 1, Status: common.StatusEnable},
{Identity: "staff", GroupCode: "staff", Name: "配送人员管理", Icon: "icon-user-group", Path: "/staff", SortNo: 30, Status: common.StatusEnable},

View File

@@ -21,3 +21,28 @@ func TestMenusExcludeInventoryAndEcommerce(t *testing.T) {
}
}
}
func TestMenuContainsDashboardRoutes(t *testing.T) {
want := map[string]string{
"dashboard_overview": "/dashboard/overview",
}
for _, menu := range MenusForRole("admin") {
if path, ok := want[menu.Identity]; ok {
if menu.Path != path {
t.Fatalf("menu %q path = %q, want %q", menu.Identity, menu.Path, path)
}
delete(want, menu.Identity)
}
}
if len(want) != 0 {
t.Fatalf("missing dashboard menus: %#v", want)
}
for _, menu := range MenusForRole("admin") {
if menu.Identity == "dashboard_overview" && (menu.ParentIdentity != "" || menu.Icon != "icon-dashboard") {
t.Fatalf("dashboard overview must be a first-level icon menu: %#v", menu)
}
if menu.Identity == "dashboard" || menu.Identity == "dashboard_reports" {
t.Fatalf("legacy dashboard menu must not be returned: %#v", menu)
}
}
}