diff --git a/web/delivery-platform-ui/src/layout/MainLayout.vue b/web/delivery-platform-ui/src/layout/MainLayout.vue index 8f167b9..a6e6b7f 100644 --- a/web/delivery-platform-ui/src/layout/MainLayout.vue +++ b/web/delivery-platform-ui/src/layout/MainLayout.vue @@ -136,6 +136,7 @@ const menuItems = [ { path: "/devices", icon: "🖥️", label: "设备管理", roles: ["SYS_ADMIN","SALES","DELIVERY"] }, { path: "/todos", icon: "🔔", label: "待办中心", roles: ["SYS_ADMIN","SALES","LICENSE_OPS"] }, { path: "/reports/contract-sn", icon: "📊", label: "报表中心", roles: ["SYS_ADMIN"] }, + { path: "/reports/subscriptions", icon: "📧", label: "报表订阅", roles: ["SYS_ADMIN"] }, ]; const visibleMenu = computed(() => menuItems.filter(m => auth.hasAnyRole(m.roles))); diff --git a/web/delivery-platform-ui/src/router/index.js b/web/delivery-platform-ui/src/router/index.js index 1ce10ee..ed5deff 100644 --- a/web/delivery-platform-ui/src/router/index.js +++ b/web/delivery-platform-ui/src/router/index.js @@ -188,6 +188,12 @@ const routes = [ component: () => import("../views/ProfileView.vue"), meta: { roles: ["SYS_ADMIN", "SALES", "LICENSE_OPS"], title: "个人设置" }, }, + { + path: "reports/subscriptions", + name: "report-subscriptions", + component: () => import("../views/SubscriptionReportView.vue"), + meta: { roles: ["SYS_ADMIN"], title: "报表订阅" }, + }, { path: "reports/project-health", name: "project-health", diff --git a/web/delivery-platform-ui/src/views/HomeView.vue b/web/delivery-platform-ui/src/views/HomeView.vue index 8210b50..340afcf 100644 --- a/web/delivery-platform-ui/src/views/HomeView.vue +++ b/web/delivery-platform-ui/src/views/HomeView.vue @@ -44,6 +44,7 @@ const allModuleLinks = [ { to: "/devices", label: "设备管理", roles: ["SYS_ADMIN", "SALES", "DELIVERY"] }, { to: "/todos", label: "待办中心", roles: ["SYS_ADMIN", "SALES", "LICENSE_OPS"] }, { to: "/reports/contract-sn", label: "报表中心", roles: ["SYS_ADMIN"] }, + { to: "/reports/subscriptions", label: "报表订阅", roles: ["SYS_ADMIN"] }, ]; const visibleModuleLinks = computed(() => allModuleLinks.filter((l) => auth.hasAnyRole(l.roles))); diff --git a/web/delivery-platform-ui/src/views/SubscriptionReportView.vue b/web/delivery-platform-ui/src/views/SubscriptionReportView.vue new file mode 100644 index 0000000..0051181 --- /dev/null +++ b/web/delivery-platform-ui/src/views/SubscriptionReportView.vue @@ -0,0 +1,121 @@ + + + + +