From 8151c3253dc287a79914bc08414af17dfb380c96 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 14 十月 2026 14:34:33 +0800
Subject: [PATCH] refactor(首页): 展示模块改为跟随菜单权限自动隐藏

---
 src/views/dashboard/analytics/index.vue |   53 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 46 insertions(+), 7 deletions(-)

diff --git a/src/views/dashboard/analytics/index.vue b/src/views/dashboard/analytics/index.vue
index 907fac8..cdf7447 100644
--- a/src/views/dashboard/analytics/index.vue
+++ b/src/views/dashboard/analytics/index.vue
@@ -8,6 +8,8 @@
 
 import { getHomeSummary } from '#/api/mes/home';
 
+import { useHomeAccess } from '#/utils/use-home-access';
+
 import { defaultSummary } from './data';
 import AiInsights from './modules/ai-insights.vue';
 import AlertPanel from './modules/alert-panel.vue';
@@ -15,13 +17,34 @@
 import KpiCards from './modules/kpi-cards.vue';
 import ProductionTrend from './modules/production-trend.vue';
 import QuickActions from './modules/quick-actions.vue';
-import { useHomeAccess } from './use-home-access';
 
 defineOptions({ name: 'DashboardAnalytics' });
 
 const router = useRouter();
 const summary = ref(defaultSummary);
-const { canNavigate, canViewHome } = useHomeAccess();
+const { canNavigate, canSeeMenu, canViewHome } = useHomeAccess();
+
+// 棣栭〉妯″潡璺熼殢渚ц竟鏍忚彍鍗曪細鑿滃崟娌″紑鐨勬ā鍧楁暣鍧椾笉灞曠ず
+/** MES 鐢熶骇 KPI锛氫换鎰忎竴寮犲崱鐨勮彍鍗曞紑鐫�灏辨覆鏌撴暣琛� */
+const showKpi = computed(
+  () =>
+    canViewHome.value &&
+    ['MesProWorkOrder', 'MesProFeedback', 'MesQcIqc', 'MesDvMachinery'].some(
+      (name) => canSeeMenu(name),
+    ),
+);
+/** AI 鏅鸿兘鍒嗘瀽锛欰I 妯″潡鐨勮彍鍗曞紑鐫�鎵嶆覆鏌� */
+const showAiInsights = computed(
+  () => canViewHome.value && canSeeMenu('AiChat'),
+);
+/** 鐢熶骇瓒嬪娍锛氭暟鎹潵鑷敓浜ф姤宸� */
+const showTrend = computed(
+  () => canViewHome.value && canSeeMenu('MesProFeedback'),
+);
+/** 宸ュ崟鐘舵�佸垎甯冿細鏁版嵁鏉ヨ嚜鐢熶骇璁㈠崟 */
+const showWorkOrderStatus = computed(
+  () => canViewHome.value && canSeeMenu('MesProWorkOrder'),
+);
 
 const greeting = computed(() => {
   const hour = new Date().getHours();
@@ -76,21 +99,29 @@
     </div>
 
     <!-- MES 鐢熶骇 KPI -->
-    <KpiCards v-if="canViewHome" :summary="summary" @navigate="handleNavigate" />
+    <KpiCards v-if="showKpi" :summary="summary" @navigate="handleNavigate" />
 
     <!-- ERP/WMS/BPM 缁忚惀 KPI -->
     <BizCards @navigate="handleNavigate" />
 
     <!-- AI 鏅鸿兘鍒嗘瀽 -->
     <AiInsights
-      v-if="canViewHome && canNavigate('MesProWorkOrder')"
+      v-if="showAiInsights"
       :active-order-count="summary.workOrderActiveCount"
       @navigate="handleNavigate"
     />
 
     <!-- 鐢熶骇瓒嬪娍 + 棰勮闈㈡澘 -->
-    <Row v-if="canViewHome" :gutter="16" class="mb-4">
-      <Col :lg="14" :md="24" :sm="24" :xl="14" :xs="24" class="mb-4">
+    <Row v-if="showTrend || showWorkOrderStatus" :gutter="16" class="mb-4">
+      <Col
+        v-if="showTrend"
+        :lg="showWorkOrderStatus ? 14 : 24"
+        :md="24"
+        :sm="24"
+        :xl="showWorkOrderStatus ? 14 : 24"
+        :xs="24"
+        class="mb-4"
+      >
         <div class="glass-card rounded-2xl p-5">
           <h3 class="mb-4 text-base font-semibold text-gray-800 dark:text-gray-100">
             鐢熶骇瓒嬪娍锛堣繎7澶╋級
@@ -98,7 +129,15 @@
           <ProductionTrend />
         </div>
       </Col>
-      <Col :lg="10" :md="24" :sm="24" :xl="10" :xs="24" class="mb-4">
+      <Col
+        v-if="showWorkOrderStatus"
+        :lg="showTrend ? 10 : 24"
+        :md="24"
+        :sm="24"
+        :xl="showTrend ? 10 : 24"
+        :xs="24"
+        class="mb-4"
+      >
         <AlertPanel
           :repair-active-count="summary.repairActiveCount"
           @navigate="handleNavigate"

--
Gitblit v1.9.3