From 5c1e0a47eea514f59f697133fe8a01bcbf6f7a78 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 15 十月 2026 10:31:28 +0800
Subject: [PATCH] refactor(首页): 展示模块跟随菜单权限自动隐藏

---
 src/views/dashboard/analytics/modules/alert-panel.vue |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/views/dashboard/analytics/modules/alert-panel.vue b/src/views/dashboard/analytics/modules/alert-panel.vue
index 8ac16f2..b7b19d1 100644
--- a/src/views/dashboard/analytics/modules/alert-panel.vue
+++ b/src/views/dashboard/analytics/modules/alert-panel.vue
@@ -2,7 +2,7 @@
 import type { MesHomeApi } from '#/api/mes/home';
 import type { EchartsUIType } from '@vben/plugins/echarts';
 
-import { onMounted, ref } from 'vue';
+import { computed, onMounted, ref } from 'vue';
 
 import { CountTo } from '@vben/common-ui';
 import { IconifyIcon } from '@vben/icons';
@@ -11,6 +11,8 @@
 import { Spin } from 'ant-design-vue';
 
 import { getWorkOrderStatusDistribution } from '#/api/mes/home';
+
+import { useHomeAccess } from '#/utils/use-home-access';
 
 defineOptions({ name: 'DashboardAlertPanel' });
 
@@ -22,11 +24,19 @@
   navigate: [name: string];
 }>();
 
+const { canQuery, canSeeMenu } = useHomeAccess();
+
+/** 宸ュ崟鐘舵�佸垎甯冨彇鑷敓浜ц鍗曪紝鎺ュ彛鏉冮檺鍜岃彍鍗曢兘瑕佹湁 */
+const canViewStatus = computed(
+  () => canQuery('mes:home:query') && canSeeMenu('MesProWorkOrder'),
+);
+
 const chartRef = ref<EchartsUIType>();
 const { renderEcharts } = useEcharts(chartRef);
 const loading = ref(false);
 
 async function loadStatus() {
+  if (!canViewStatus.value) return;
   loading.value = true;
   try {
     const data = await getWorkOrderStatusDistribution();
@@ -68,8 +78,9 @@
     <!-- 棰勮鍗$墖琛� -->
     <div class="grid grid-cols-1 gap-3">
       <div
+        v-if="canSeeMenu('MesDvRepair')"
         class="glass-tilt group cursor-pointer overflow-hidden rounded-2xl border-0 p-4"
-        @click="emit('navigate', 'MesProRepair')"
+        @click="emit('navigate', 'MesDvRepair')"
       >
         <div class="relative z-10 flex items-center gap-3">
           <div class="flex size-10 items-center justify-center rounded-lg bg-amber-50 text-amber-600 shadow-sm dark:bg-amber-500/15 dark:text-amber-400">
@@ -87,7 +98,7 @@
     </div>
 
     <!-- 宸ュ崟鐘舵�佸浘 -->
-    <div class="glass-tilt rounded-2xl p-5">
+    <div v-if="canViewStatus" class="glass-tilt rounded-2xl p-5">
       <h4 class="mb-3 text-sm font-semibold text-gray-800 dark:text-gray-100">
         宸ュ崟鐘舵�佸垎甯�
       </h4>

--
Gitblit v1.9.3