刘洋 il y a 1 an
Parent
commit
943ac8ec6d

+ 4 - 0
src/hooks/usePermission.js

@@ -15,6 +15,9 @@ export default function usePermission() {
 
     return keys.some((key) => userStore.finePermissionIds.includes(key));
   }
+  function checkPrivilegeByUrl(url) {
+    return !!userStore.privileges.find((item) => item.url === url);
+  }
 
   function updatePerm() {
     const routeAlias = route.meta.alias + '_';
@@ -29,6 +32,7 @@ export default function usePermission() {
   updatePerm();
 
   return {
+    checkPrivilegeByUrl,
     checkPrivilege,
     updatePerm,
     perm,

+ 5 - 0
src/store/modules/user.js

@@ -90,6 +90,7 @@ const useUserStore = defineStore('user', {
     headerMenus: [],
     moduleMenus: [],
     finePermissionIds: [],
+    privileges: [],
   }),
 
   actions: {
@@ -132,6 +133,9 @@ const useUserStore = defineStore('user', {
         return item;
       });
     },
+    setPrivileges(data) {
+      this.privileges = data;
+    },
     setMenu(data) {
       const menus = filterAsyncRouter(getTreeList(data));
       this.menus = menus;
@@ -168,6 +172,7 @@ const useUserStore = defineStore('user', {
               router.push({ name: 'Login' });
               return;
             }
+            this.setPrivileges(cloneDeep(response.privileges));
             let allMenus = [
               ...whiteMenuList,
               ...(response.privileges || []),

+ 6 - 4
src/views/sop/sop-manage/office-sop/index.vue

@@ -191,9 +191,11 @@
                 编辑
               </t-link>
             </template>
-            <t-link theme="primary" hover="color" @click="toDeviceManage(row)"
-              >设备管理</t-link
-            >
+            <template v-if="checkPrivilegeByUrl('deviceDeliveryManage')">
+              <t-link theme="primary" hover="color" @click="toDeviceManage(row)"
+                >设备管理</t-link
+              >
+            </template>
           </div>
         </template>
       </my-table>
@@ -285,7 +287,7 @@ const getMergeMetaList = async () => {
   ];
 };
 getMergeMetaList();
-const { perm } = usePermission();
+const { perm, checkPrivilegeByUrl } = usePermission();
 
 const appStore = useAppStore();
 

+ 6 - 4
src/views/sop/sop-manage/student-sop/index.vue

@@ -187,9 +187,11 @@
                 编辑
               </t-link>
             </template>
-            <t-link theme="primary" hover="color" @click="toDeviceManage(row)"
-              >设备管理</t-link
-            >
+            <template v-if="checkPrivilegeByUrl('deviceDeliveryManage')">
+              <t-link theme="primary" hover="color" @click="toDeviceManage(row)"
+                >设备管理</t-link
+              >
+            </template>
           </div>
         </template>
       </my-table>
@@ -280,7 +282,7 @@ const getMergeMetaList = async () => {
   ];
 };
 getMergeMetaList();
-const { perm } = usePermission();
+const { perm, checkPrivilegeByUrl } = usePermission();
 
 const appStore = useAppStore();