Przeglądaj źródła

fix: 权限枚举优化

outaozhen 3 lat temu
rodzic
commit
b163f1805e

+ 23 - 13
src/pages/Permission/Role/components/PermTabs/index.tsx

@@ -26,16 +26,29 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
     backstagePermission: [] // 后台权限
   })
 
+  const frontPermissionArray = Object.values(FrontPermission)
+  const BackstagePermissionArray = Object.values(BackstagePermission)
+
+  // 过滤权限枚举
+  const handleFilter = data =>
+    data.filter(item => {
+      const newItem = { ...item }
+      if (state.activeTab === OperationType.FRONT) {
+        frontPermissionArray?.includes(item)
+      } else {
+        BackstagePermissionArray?.includes(item)
+      }
+      return newItem
+    })
+
   const { loading } = useRequest(() => queryRoleDetailByID({ ID }), {
     refreshDeps: [ID],
     onSuccess: ({ frontPermission = [], backstagePermission = [] } = {}) => {
-      const frontPermissionNew = frontPermission.filter(item =>
-        Object.values(FrontPermission)?.includes(item)
-      )
-      const backstagePermissionNew = backstagePermission.filter(item =>
-        Object.values(BackstagePermission)?.includes(item)
-      )
-      setState({ ...state, frontPermission: frontPermissionNew, backstagePermission: backstagePermissionNew })
+      setState({
+        ...state,
+        frontPermission: handleFilter(frontPermission),
+        backstagePermission: handleFilter(backstagePermission)
+      })
     },
     onError: e => console.log(e)
   })
@@ -69,13 +82,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
   const handleSubmit = () => {
     const params = { ID, operation: state.activeTab }
     if (state.activeTab === OperationType.FRONT) {
-      params.frontPermission = state.frontPermission.filter(item =>
-        Object.values(FrontPermission)?.includes(item)
-      )
+      params.frontPermission = handleFilter(state.frontPermission)
+      console.log(params.frontPermission)
     } else if (state.activeTab === OperationType.BACKSTAGE) {
-      params.backstagePermission = state.backstagePermission.filter(item =>
-        Object.values(BackstagePermission)?.includes(item)
-      )
+      params.backstagePermission = handleFilter(state.backstagePermission)
     } else {
       message.error('参数异常,请检查')
       return