Bladeren bron

fix: 角色枚举过滤的修改

outaozhen 3 jaren geleden
bovenliggende
commit
0f03ee8c6e
1 gewijzigde bestanden met toevoegingen van 24 en 19 verwijderingen
  1. 24 19
      src/pages/Permission/Role/components/PermTabs/index.tsx

+ 24 - 19
src/pages/Permission/Role/components/PermTabs/index.tsx

@@ -19,6 +19,26 @@ export enum OperationType {
   FRONT = 'front', // 前台
   BACKSTAGE = 'backstage' // 后台
 }
+
+const frontPermissionArray = Object.values(FrontPermission)
+const BackstagePermissionArray = Object.values(BackstagePermission)
+
+// 过滤权限枚举
+function handleFilter(mode: OperationType, data: string[]) {
+  if (!Array.isArray(data)) {
+    return []
+  }
+  const newItem = data.filter(item => {
+    if (mode === OperationType.FRONT) {
+      frontPermissionArray?.includes(item)
+    } else {
+      BackstagePermissionArray?.includes(item)
+    }
+    return true
+  })
+  return newItem
+}
+
 const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }) => {
   const [state, setState] = useState({
     activeTab: OperationType.FRONT, // 默认激活的tab
@@ -26,28 +46,13 @@ 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 = [] } = {}) => {
       setState({
         ...state,
-        frontPermission: handleFilter(frontPermission),
-        backstagePermission: handleFilter(backstagePermission)
+        frontPermission: handleFilter(state.activeTab, frontPermission),
+        backstagePermission: handleFilter(state.activeTab, backstagePermission)
       })
     },
     onError: e => console.log(e)
@@ -82,10 +87,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
   const handleSubmit = () => {
     const params = { ID, operation: state.activeTab }
     if (state.activeTab === OperationType.FRONT) {
-      params.frontPermission = handleFilter(state.frontPermission)
+      params.frontPermission = handleFilter(state.activeTab, state.frontPermission)
       console.log(params.frontPermission)
     } else if (state.activeTab === OperationType.BACKSTAGE) {
-      params.backstagePermission = handleFilter(state.backstagePermission)
+      params.backstagePermission = handleFilter(state.activeTab, state.backstagePermission)
     } else {
       message.error('参数异常,请检查')
       return