ith5 пре 3 месеци
родитељ
комит
655d4c8c84

+ 2 - 1
.env

@@ -2,4 +2,5 @@ VITE_APP_TITLE = 数据后台
 VITE_APP_PORT = 8888
 VITE_APP_OPEN_PROXY = true
 VITE_APP_BASE = /
-VITE_APP_TOKEN_PREFIX = token
+VITE_APP_TOKEN_PREFIX = token
+VITE_APP_KAIFA = 1

+ 1 - 1
.env.development

@@ -5,4 +5,4 @@ VITE_APP_BASE_URL = http://127.0.0.1:8787
 VITE_APP_WS_URL = ws://127.0.0.1:3131
 VITE_APP_WS_APPKEY = 8c849eaf1e166c0a71d02fcec7c8df78
 VITE_APP_PROXY_PREFIX = /dev
-VITE_APP_KAIFA = true
+VITE_APP_KAIFA = 1

+ 2 - 1
.env.production

@@ -4,4 +4,5 @@ VITE_APP_ENV = production
 VITE_APP_BASE_URL = http://admin.saithink.top
 VITE_APP_WS_URL = ws://127.0.0.1:3131
 VITE_APP_WS_APPKEY = 2f97f2e18b6b6e6304ce77fdb779c650
-VITE_APP_PROXY_PREFIX = /prod
+VITE_APP_PROXY_PREFIX = /prod
+VITE_APP_KAIFA = 1

+ 16 - 4
src/layout/components/components/children-menu.vue

@@ -4,7 +4,7 @@
       <template v-if="!menu.meta.hidden">
         <a-menu-item
           v-if="!menu.children || menu.children.length === 0"
-          :key="menu.name"
+          :key="`item-${menu.name}`"
           @click="routerPush(menu)"
         >
           <template #icon v-if="menu.meta.icon">
@@ -20,8 +20,8 @@
         </a-menu-item>
         <a-sub-menu
           v-else
-          :key="menu.name"
-          v-if="menu.meta.title !== '系统工具' || $kaifa == 'true'"
+          :key="`submenu-${menu.name}`"
+          v-if="menu.meta.title !== '系统工具' || isDeveloper()"
         >
           <template #icon v-if="menu.meta.icon">
             <sa-icon :icon="menu.meta.icon" :size="18" />
@@ -44,7 +44,7 @@
   </a-layout-content>
 </template>
 <script setup>
-import { useTagStore, useAppStore } from "@/store";
+import { useTagStore, useAppStore, useUserStore } from "@/store";
 import { useRouter } from "vue-router";
 
 defineProps({ modelValue: Array });
@@ -53,6 +53,18 @@ const router = useRouter();
 const emits = defineEmits(["go"]);
 const appStore = useAppStore();
 const tagStore = useTagStore();
+const userStore = useUserStore();
+
+const isDeveloper = () => {
+  const kaifaIds = import.meta.env.VITE_APP_KAIFA;
+  if (!kaifaIds || !userStore.user || !userStore.user.id) {
+    return false;
+  }
+  // 将开发者ID字符串分割成数组,并检查当前用户ID是否在其中
+  const developerIds = kaifaIds.split(",").map((id) => id.trim());
+  const currentUserId = String(userStore.user.id);
+  return developerIds.includes(currentUserId);
+};
 
 const routerPush = (menu) => {
   if (menu.meta && menu.meta.type === "L") {

+ 15 - 2
src/layout/components/components/sub-menu.vue

@@ -1,7 +1,7 @@
 <template>
   <a-sub-menu
     :key="menuInfo.name"
-    v-if="menuInfo.meta.title !== '系统工具' || $kaifa == 'true'"
+    v-if="menuInfo.meta.title !== '系统工具' || isDeveloper()"
   >
     <template #title>
       {{
@@ -39,12 +39,25 @@
 
 <script setup name="SubMenu">
 import { useRouter, useRoute } from "vue-router";
-import { useTagStore, useAppStore } from "@/store";
+import { useTagStore, useAppStore, useUserStore } from "@/store";
 defineProps({ menuInfo: Object });
 const emits = defineEmits(["go"]);
 const router = useRouter();
 const tagStore = useTagStore();
 const appStore = useAppStore();
+const userStore = useUserStore();
+
+const isDeveloper = () => {
+  const kaifaIds = import.meta.env.VITE_APP_KAIFA;
+  if (!kaifaIds || !userStore.user || !userStore.user.id) {
+    return false;
+  }
+  // 将开发者ID字符串分割成数组,并检查当前用户ID是否在其中
+  const developerIds = kaifaIds.split(",").map((id) => id.trim());
+  const currentUserId = String(userStore.user.id);
+  return developerIds.includes(currentUserId);
+};
+
 const routerPush = (menu) => {
   if (menu.meta && menu.meta.type === "L") {
     window.open(menu.path);