From 755e7038caf74126eb4d696ef88f11f0871ff0ee Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 11 十二月 2025 09:01:33 +0800
Subject: [PATCH] fix: 完成菜单权限调整
---
src/pages/index/index.vue | 76 ++++++++++++++++++++++++++++++++++----
1 files changed, 68 insertions(+), 8 deletions(-)
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 2df7101..2b23c76 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -18,8 +18,8 @@
</wd-notice-bar>
<!-- 蹇嵎瀵艰埅 -->
<wd-grid clickable :column="1" class="mt-2">
- <view v-for="(item, index) in navList">
- <wd-grid-item v-if="item.show" :key="index" use-slot link-type="navigateTo" :url="item.url">
+ <view v-for="(item, index) in navList" :key="index">
+ <wd-grid-item v-if="item.show" use-slot link-type="navigateTo" :url="item.url">
<view class="p-2">
<image class="w-72rpx h-72rpx rounded-8rpx" :src="item.icon" />
</view>
@@ -87,11 +87,13 @@
</template>
<script setup lang="ts">
-import { reactive } from "vue";
+import { reactive, computed } from "vue";
import { dayjs, useMessage, useToast } from "wot-design-uni";
import LogAPI, { VisitStatsVO } from "@/api/system/log";
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,
@@ -104,6 +106,34 @@
const message = useMessage();
const toast = useToast();
+
+// 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅
+const userStore = useUserStore();
+const userInfo: any = computed(() => userStore.userInfo);
+
+// 鍒ゆ柇鏄惁涓哄贰妫�鍛樿鑹�
+const isInspector = 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 === "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({
show: false,
@@ -171,10 +201,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/routingInspection.png",
+ title: "宸℃",
+ url: "/pages/routingInspection/index",
+ show: false,
+ },
{
icon: "/static/icons/log.png",
- title: "鏃舵晥鎶ュ伐",
- url: "/pages/timely/index",
+ title: "鍑哄簱",
+ url: "/pages/outbound/index",
show: false,
},
]);
@@ -225,11 +267,29 @@
const init = async () => {
checkVersion();
const { data } = await HomeApi.getIndex();
- 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.includes("涓�") || data.deviceGroupName.includes("缁�")) {
+ // 濡傛灉鏄笣鎴栫粸锛屾樉绀虹敓浜х鐞嗚彍鍗�
navList[0].show = true;
}
+ if (isInspector.value) {
+ // 濡傛灉鏄贰妫�鍛橈紝鏄剧ず宸℃鑿滃崟
+ navList[1].show = true;
+ }
+ if (isStorage.value) {
+ // 濡傛灉鏄嚭搴撹鑹诧紝鏄剧ず鍑哄簱鑿滃崟
+ navList[2].show = true;
+ }
};
/**
--
Gitblit v1.9.3