From 136151a01d70e219eb18e377b34692b2e5e87cdb Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期四, 05 三月 2026 11:00:11 +0800
Subject: [PATCH] feat(登录): 添加管理员获取全部菜单

---
 src/pages/index/index.vue |   75 +++++++++++++++++++++++++++++++------
 1 files changed, 62 insertions(+), 13 deletions(-)

diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 4e045ba..6dd4b40 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -93,6 +93,7 @@
 import WorkerCallingCard from "@/components/worker-calling-card/index.vue";
 import HomeApi from "@/api/home";
 import { useUserStore } from "@/store/modules/user";
+import { setTeamId, setPrepareId } from "@/utils/cache";
 
 const visitStatsData = ref<VisitStatsVO>({
   todayUvCount: 0,
@@ -110,6 +111,17 @@
 const userStore = useUserStore();
 const userInfo: any = computed(() => userStore.userInfo);
 
+// 鏄惁涓虹鐞嗗憳
+const isAdmin = computed(() => {
+  if (!userInfo.value || !userInfo.value.roles || !Array.isArray(userInfo.value.roles)) {
+    return false;
+  }
+
+  return userInfo.value.roles.some(
+    (role: any) => role.roleKey === "admin" || role.roleKey === "manager"
+  );
+});
+
 // 鍒ゆ柇鏄惁涓哄贰妫�鍛樿鑹�
 const isInspector = computed(() => {
   if (!userInfo.value || !userInfo.value.roles || !Array.isArray(userInfo.value.roles)) {
@@ -120,6 +132,18 @@
     userInfo.value.roles.some((role: any) => role.roleKey === "qualitative-inspector")
   );
   return userInfo.value.roles.some((role: any) => role.roleKey === "qualitative-inspector");
+});
+
+// 鍒ゆ柇鏄惁涓哄嚭搴撹鑹�
+const isStorage = computed(() => {
+  if (!userInfo.value || !userInfo.value.roles || !Array.isArray(userInfo.value.roles)) {
+    return false;
+  }
+  console.log(
+    "userInfo.value.roles",
+    userInfo.value.roles.some((role: any) => role.roleKey === "storage")
+  );
+  return userInfo.value.roles.some((role: any) => role.roleKey === "storage");
 });
 
 const fileProgress = reactive({
@@ -188,16 +212,22 @@
   //   url: "/pages/work/config/index",
   //   prem: "sys:config:query",
   // },
-  {
-    icon: "/static/icons/log.png",
-    title: "鏃舵晥鎶ュ伐",
-    url: "/pages/timely/index",
-    show: false,
-  },
+  // {
+  //   icon: "/static/icons/log.png",
+  //   title: "鏃舵晥鎶ュ伐",
+  //   url: "/pages/timely/index",
+  //   show: false,
+  // },
   {
     icon: "/static/icons/routingInspection.png",
     title: "宸℃",
     url: "/pages/routingInspection/index",
+    show: false,
+  },
+  {
+    icon: "/static/icons/log.png",
+    title: "鍑哄簱",
+    url: "/pages/outbound/index",
     show: false,
   },
 ]);
@@ -249,15 +279,34 @@
   checkVersion();
   const { data } = await HomeApi.getIndex();
 
-  // 鍒ゆ柇鏄惁涓哄贰妫�鍛樿鑹�
-  if (isInspector.value) {
-    // 濡傛灉鏄贰妫�鍛橈紝鏄剧ず宸℃鑿滃崟
-    navList[2].show = true;
-  } else if (data.deviceGroupName == "鏃舵晥缁�") {
-    navList[1].show = true;
-  } else {
+  // 瀛樺偍鐝粍ID鍜岀敓浜у噯澶嘔D
+  if (data) {
+    if (data.id) {
+      setTeamId(data.id);
+    }
+    if (data.prepareId) {
+      setPrepareId(data.prepareId);
+    }
+  }
+
+  if (
+    (data.deviceGroupName && data.deviceGroupName.includes("涓�")) ||
+    (data.deviceGroupName && data.deviceGroupName.includes("缁�")) ||
+    isAdmin.value
+  ) {
+    // 濡傛灉鏄笣鎴栫粸锛屾樉绀虹敓浜х鐞嗚彍鍗�
     navList[0].show = true;
   }
+  console.log("isInspector.value", isInspector.value);
+  if (isInspector.value || isAdmin.value) {
+    // 濡傛灉鏄贰妫�鍛橈紝鏄剧ず宸℃鑿滃崟
+    navList[1].show = true;
+  }
+  console.log("isStorage.value", isStorage.value);
+  if (isStorage.value || isAdmin.value) {
+    // 濡傛灉鏄嚭搴撹鑹诧紝鏄剧ず鍑哄簱鑿滃崟
+    navList[2].show = true;
+  }
 };
 
 /**

--
Gitblit v1.9.3