Explorar o código

fix: 场景权限递减

sunhongyao341504 hai 1 ano
pai
achega
a31a8af4df
Modificáronse 2 ficheiros con 27 adicións e 1 borrados
  1. 1 0
      src/api/scene/sceneOperate.ts
  2. 26 1
      src/views/system/role/CreateUserDrawer.vue

+ 1 - 0
src/api/scene/sceneOperate.ts

@@ -201,6 +201,7 @@ export interface GetListWorkshop<U, A> {
   updatedAt?: string;
   children?: U[]; //工位信息
   workshopModule?: A; //车间模板
+  workshopFuncPermissions: number[];
   // tag?: string; //场景标签  自定义  后面需要修改
 }
 

+ 26 - 1
src/views/system/role/CreateUserDrawer.vue

@@ -95,6 +95,24 @@
   const { tableData } = storeToRefs(sceneInfos);
   const { getSceneDetail } = sceneInfos;
 
+  const workshopFuncPermissionMap = computed(() => {
+    const tempMap = {};
+    tableData.value.forEach((company) => {
+      const shops = company.children;
+      if (shops && shops.length) {
+        shops.forEach((shop) => {
+          let permList = [] as number[];
+          const perms = shop.workshopFuncPermissions;
+          if (perms && perms.length) {
+            permList = permList.concat(perms);
+          }
+          tempMap[shop.code!] = permList;
+        });
+      }
+    });
+    return tempMap;
+  });
+
   // 默认功能权限全部勾选,有未勾选的添加至excludeFeaturePermissionMap中:[workdshopCode]: [permission数组]
   const featurePermissionMap = {};
 
@@ -196,7 +214,14 @@
   const treeRef = ref();
   const expandedKeys = ref();
   const selectedNodeKey = ref<string>('');
-  const modeTreeData = computed(() => (selectedNodeKey.value ? modeList.value : []));
+  const modeTreeData = computed(() => {
+    const perms = workshopFuncPermissionMap.value[selectedNodeKey.value];
+    if (selectedNodeKey.value && perms && perms.length) {
+      return modeList.value.filter((item) => perms.includes(item.key));
+    } else {
+      return [];
+    }
+  });
 
   const formParams = ref<userFormParamsType>(defaultTreeValueRef());