Selaa lähdekoodia

feat: add permission role enum

lanjianrong 3 vuotta sitten
vanhempi
commit
65ad895baa
4 muutettua tiedostoa jossa 230 lisäystä ja 126 poistoa
  1. 52 34
      config/routes.ts
  2. 5 3
      src/access.ts
  3. 69 0
      src/enums/access.ts
  4. 104 89
      src/pages/Permission/Role/components/PermTabs/index.tsx

+ 52 - 34
config/routes.ts

@@ -1,6 +1,6 @@
-import { MenuDataItem } from '@ant-design/pro-layout'
+import { BackstagePermission } from '../src/enums/access'
 
-const routes: MenuDataItem[] = [
+const routes = [
   {
     path: '/user',
     layout: false,
@@ -35,7 +35,7 @@ const routes: MenuDataItem[] = [
       },
       {
         path: '/project/management',
-        name: 'management',
+        name: BackstagePermission.VIEW_PROJECT_MANAGEMENT,
         access: 'authRouteFilter',
         hideChildrenInMenu: true,
         routes: [
@@ -57,13 +57,13 @@ const routes: MenuDataItem[] = [
       },
       {
         path: '/project/approval',
-        name: 'approval',
+        name: BackstagePermission.VIEW_APPROVAL_ROLE,
         access: 'authRouteFilter',
         component: './Project/Approval'
       },
       {
         path: '/project/verification',
-        name: 'verification',
+        name: BackstagePermission.VIEW_AUDIT_TEMPLATE,
         access: 'authRouteFilter',
         component: './Project/Verification'
       }
@@ -80,7 +80,7 @@ const routes: MenuDataItem[] = [
       },
       {
         path: 'company',
-        name: 'company',
+        name: BackstagePermission.VIEW_INSTITUTION,
         hideChildrenInMenu: true,
         access: 'authRouteFilter',
         routes: [
@@ -102,13 +102,13 @@ const routes: MenuDataItem[] = [
       },
       {
         path: 'staff',
-        name: 'staff',
+        name: BackstagePermission.VIEW_INSTITUTION_STAFF,
         access: 'authRouteFilter',
         component: './Institutions/Staff'
       },
       {
         path: 'restrict',
-        name: 'restrict',
+        name: BackstagePermission.VIEW_ILLEGAL_USER,
         access: 'authRouteFilter',
         component: './Institutions/Restrict'
       }
@@ -125,19 +125,19 @@ const routes: MenuDataItem[] = [
       },
       {
         path: 'inventory',
-        name: 'inventory',
+        name: BackstagePermission.VIEW_INVENTORY_TEMPLATE,
         access: 'authRouteFilter',
         component: './Business/Inventory'
       },
       {
-        path: 'rules',
-        name: 'rules',
+        path: 'rule',
+        name: BackstagePermission.VIEW_RULE_CODE,
         access: 'authRouteFilter',
         component: './Business/RulesSet'
       },
       {
         path: 'process',
-        name: 'process',
+        name: BackstagePermission.VIEW_PROCESS_USER,
         access: 'authRouteFilter',
         component: './Business/Process'
       }
@@ -150,35 +150,53 @@ const routes: MenuDataItem[] = [
     routes: [
       {
         path: 'base',
-        name: 'base',
+        name: BackstagePermission.VIEW_BASE_SCHEMA,
         access: 'authRouteFilter',
-        icon: 'icon-schema',
-        component: './Schema/Base/index.tsx'
-      },
-      {
-        path: 'base/:id',
-        name: 'baseDetail',
-        access: 'authRouteFilter',
-        component: './Schema/Base/detail.tsx',
-        hideInMenu: true
+        hideChildrenInMenu: true,
+        routes: [
+          {
+            path: '/schema/base',
+            redirect: '/schema/base/list'
+          },
+          {
+            path: 'list',
+            name: 'base',
+            component: './Schema/Base/index.tsx'
+          },
+          {
+            path: 'detail',
+            name: 'base-detail',
+            component: './Schema/Base/detail.tsx'
+          }
+        ]
       },
       {
-        path: 'option',
-        name: 'option',
+        path: 'ds',
+        name: BackstagePermission.VIEW_DS_LIST,
         access: 'authRouteFilter',
         component: './Schema/Option'
       },
       {
         path: 'budget',
-        name: 'budget',
+        name: BackstagePermission.VIEW_BUDGET_SCHEMA,
         access: 'authRouteFilter',
-        component: './Schema/Budget'
-      },
-      {
-        path: 'budget/:id',
-        name: 'budgetDetail',
-        component: './Schema/Budget/detail',
-        hideInMenu: true
+        hideChildrenInMenu: true,
+        routes: [
+          {
+            path: '/schema/budget',
+            redirect: '/schema/budget/list'
+          },
+          {
+            path: 'list',
+            name: 'budget',
+            component: './Schema/Budget'
+          },
+          {
+            path: 'budget/:id',
+            name: 'budget-detail',
+            component: './Schema/Budget/detail'
+          }
+        ]
       }
     ]
   },
@@ -193,7 +211,7 @@ const routes: MenuDataItem[] = [
       },
       {
         path: 'role',
-        name: 'role',
+        name: BackstagePermission.VIEW_PERMISSION_ROLE,
         access: 'authRouteFilter',
         component: './Permission/Role'
       }
@@ -215,7 +233,7 @@ const routes: MenuDataItem[] = [
       // },
       {
         path: 'admin',
-        name: 'admin',
+        name: BackstagePermission.VIEW_SYSTEM_ADMIN_SETTING,
         access: 'authRouteFilter',
         component: './System/Admin'
       }

+ 5 - 3
src/access.ts

@@ -1,8 +1,10 @@
+import { BackstagePermission } from './enums/access'
+
 /**
  * @see https://umijs.org/zh-CN/plugins/plugin-access
  * */
 export default function access(initialState: { currentUser?: API.CurrentUser | undefined }) {
-  const permission = initialState?.currentUser?.permission || []
+  const permission: BackstagePermission[] = initialState?.currentUser?.permission || []
   const authRouteFilter = route => {
     if (initialState?.currentUser?.account === 'admin') {
       return true
@@ -13,8 +15,8 @@ export default function access(initialState: { currentUser?: API.CurrentUser | u
       .filter(item => item.startsWith('view'))
       .map(item => item.match(/^view(\w*)/)?.[1]?.replace(/^(\w+)/, RegExp.$1.toLowerCase()))
     // 3.对route.name进行判断,匹配通过
-    const name = route.name?.match(/^(\w*)-?/)?.[1]
-    if (route.name && permissionList.includes(name)) {
+    const name: string | undefined = route.name?.match(/^(\w*)-?/)?.[1]
+    if (name && route.name && permissionList.includes(name)) {
       return true
     }
     return false

+ 69 - 0
src/enums/access.ts

@@ -0,0 +1,69 @@
+/** 前台-角色权限枚举 */
+export enum FrontPermission {
+  /** 我的项目-项目上报(审批模板) */
+  REPORT = 'report',
+  /** 我的项目-项目上报(自由流程) */
+  FREE_REPORT = 'freeReport',
+  /** 我的项目-新建项目 */
+  ADD_PROJECT = 'addProject',
+  /** 我的项目-编辑项目 */
+  EDIT_PROJECT = 'editProject',
+  /** 我的项目-导出项目 */
+  EXPORT_PROJECT = 'exportProject',
+  /** 我的项目-删除项目 */
+  DEL_PROJECT = 'delProject',
+  /** 我的项目-查看项目 */
+  VIEW_PROJECT = 'viewProject',
+  /** 我的项目-审批进度 */
+  VIEW_APPROVAL = 'viewApproval',
+  /** 我参与的项目-查看项目 */
+  VIEW_PARTICIPATING_PROJECT = 'viewParticipatingProject',
+  /** 我参与的项目-指标入库 */
+  SAVE_INDEX = 'saveIndex',
+  /** 我参与的项目-导出项目 */
+  EXPORT_PARTICIPATING_PROJECT = 'exportParticipatingProject',
+  /** 全部项目-查看项目 */
+  VIEW_ALL_PROJECTS = 'viewAllProjects',
+  /** 全部项目-项目设置 */
+  SET_PROJECTS = 'setProjects',
+  /** 全部项目-指标入库 */
+  SAVE_INDEX_ALL = 'saveIndexAll'
+}
+
+/** 后台-角色权限枚举 */
+export enum BackstagePermission {
+  /** 项目管理-查看项目 */
+  VIEW_PROJECT_MANAGEMENT = 'viewProjectManagement',
+  /** 项目管理-查看审批角色 */
+  VIEW_APPROVAL_ROLE = 'viewApprovalRole',
+  /** 项目管理-查看审批模板 */
+  VIEW_AUDIT_TEMPLATE = 'viewAuditTemplate',
+  /** 项目管理-新增审批角色 */
+  ADD_APPROVAL_ROLE = 'addApprovalRole',
+  /** 项目管理-编辑审批角色 */
+  EDIT_APPROVAL_ROLE = 'editApprovalRole',
+  /** 企事业单位-查看单位 */
+  VIEW_INSTITUTION = 'viewInstitution',
+  /** 企事业单位-查看人员 */
+  VIEW_INSTITUTION_STAFF = 'viewInstitutionStaff',
+  /** 企事业单位-查看限制登录 */
+  VIEW_ILLEGAL_USER = 'viewIllegalUser',
+  /** 业务设置-查看业务管理 */
+  VIEW_BUSINESS_MANAGEMENT = 'viewBusinessManagement',
+  /** 业务设置-查看资料清单 */
+  VIEW_INVENTORY_TEMPLATE = 'viewInventoryTemplate',
+  /** 业务设置-查看流程用户 */
+  VIEW_PROCESS_USER = 'viewProcessUser',
+  /** 表单设置-查看基础数据类型 */
+  VIEW_BASE_SCHEMA = 'viewBaseSchema',
+  /** 表单设置-查看数据源 */
+  VIEW_DS_LIST = 'viewDSList',
+  /** 表单设置-查看预算业务表单 */
+  VIEW_BUDGET_SCHEMA = 'viewBudgetSchema',
+  /** 表单设置-查看编号规则 */
+  VIEW_RULE_CODE = 'viewRuleCode',
+  /** 权限角色设置-查看信息 */
+  VIEW_PERMISSION_ROLE = 'viewPermissionRole',
+  /** 系统设置-查看管理员 */
+  VIEW_SYSTEM_ADMIN_SETTING = 'viewSystemAdminSetting'
+}

+ 104 - 89
src/pages/Permission/Role/components/PermTabs/index.tsx

@@ -1,9 +1,12 @@
-import { Card, Tabs, Checkbox, Button, message, Spin, Affix } from 'antd'
-import React, { useState } from 'react'
-import { queryRoleDetailByID, setRolePermission } from '@/services/permission'
+import { useState } from 'react'
 import { useRequest } from '@umijs/max'
 import { RoleType } from '../RoleLeftMenu'
+import { Card, Tabs, Checkbox, Button, message, Spin, Affix } from 'antd'
+import { queryRoleDetailByID, setRolePermission } from '@/services/permission'
+import { FrontPermission, BackstagePermission } from '@/enums/access'
+
 import './index.less'
+
 const { TabPane } = Tabs
 
 type PermTabsProps = {
@@ -93,50 +96,50 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4>我的项目</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'viewProject')}
-                      checked={state.frontPermission.includes('viewProject')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.VIEW_PROJECT)}
+                      checked={state.frontPermission.includes(FrontPermission.VIEW_PROJECT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       查看项目
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'addProject')}
-                      checked={state.frontPermission.includes('addProject')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.ADD_PROJECT)}
+                      checked={state.frontPermission.includes(FrontPermission.ADD_PROJECT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       新建项目
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'editProject')}
-                      checked={state.frontPermission.includes('editProject')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.EDIT_PROJECT)}
+                      checked={state.frontPermission.includes(FrontPermission.EDIT_PROJECT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       编辑项目
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'exportProject')}
-                      checked={state.frontPermission.includes('exportProject')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.EXPORT_PROJECT)}
+                      checked={state.frontPermission.includes(FrontPermission.EXPORT_PROJECT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       导出项目
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'delProject')}
-                      checked={state.frontPermission.includes('delProject')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.DEL_PROJECT)}
+                      checked={state.frontPermission.includes(FrontPermission.DEL_PROJECT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       删除项目
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'report')}
-                      checked={state.frontPermission.includes('report')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.REPORT)}
+                      checked={state.frontPermission.includes(FrontPermission.REPORT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       项目上报(审批模板)
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'freeReport')}
-                      checked={state.frontPermission.includes('freeReport')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.FREE_REPORT)}
+                      checked={state.frontPermission.includes(FrontPermission.FREE_REPORT)}
                       disabled={roleType === RoleType.SYSTEM}>
                       项目上报(自由流程)
                     </Checkbox>
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'viewApproval')}
-                      checked={state.frontPermission.includes('viewApproval')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.VIEW_APPROVAL)}
+                      checked={state.frontPermission.includes(FrontPermission.VIEW_APPROVAL)}
                       disabled={roleType === RoleType.SYSTEM}>
                       审批进度
                     </Checkbox>
@@ -147,21 +150,25 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <div className="my-2">
                     <Checkbox
                       disabled={roleType === RoleType.SYSTEM}
-                      checked={state.frontPermission.includes('viewParticipatingProject')}
-                      onChange={e => handleFrontOnchange(e.target.checked, 'viewParticipatingProject')}>
+                      checked={state.frontPermission.includes(FrontPermission.VIEW_PARTICIPATING_PROJECT)}
+                      onChange={e =>
+                        handleFrontOnchange(e.target.checked, FrontPermission.VIEW_PARTICIPATING_PROJECT)
+                      }>
                       查看项目
                     </Checkbox>
                     <Checkbox
                       disabled={roleType === RoleType.SYSTEM}
-                      checked={state.frontPermission.includes('saveIndex')}
-                      onChange={e => handleFrontOnchange(e.target.checked, 'saveIndex')}>
+                      checked={state.frontPermission.includes(FrontPermission.SAVE_INDEX)}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.SAVE_INDEX)}>
                       指标入库
                     </Checkbox>
                     <Checkbox
                       disabled={roleType === RoleType.SYSTEM}
-                      checked={state.frontPermission.includes('exportParticipatingProject')}
-                      onChange={e => handleFrontOnchange(e.target.checked, 'exportParticipatingProject')}>
-                      导出
+                      checked={state.frontPermission.includes(FrontPermission.EXPORT_PARTICIPATING_PROJECT)}
+                      onChange={e =>
+                        handleFrontOnchange(e.target.checked, FrontPermission.EXPORT_PARTICIPATING_PROJECT)
+                      }>
+                      导出项目
                     </Checkbox>
                   </div>
                 </div>
@@ -169,21 +176,21 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">全部项目</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleFrontOnchange(e.target.checked, 'viewAllProjects')}
-                      checked={state.frontPermission.includes('viewAllProjects')}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.VIEW_ALL_PROJECTS)}
+                      checked={state.frontPermission.includes(FrontPermission.VIEW_ALL_PROJECTS)}
                       disabled={roleType === RoleType.SYSTEM}>
                       查看项目
                     </Checkbox>
                     <Checkbox
                       disabled={roleType === RoleType.SYSTEM}
-                      checked={state.frontPermission.includes('saveIndexAll')}
-                      onChange={e => handleFrontOnchange(e.target.checked, 'saveIndexAll')}>
+                      checked={state.frontPermission.includes(FrontPermission.SAVE_INDEX_ALL)}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.SAVE_INDEX_ALL)}>
                       指标入库
                     </Checkbox>
                     <Checkbox
                       disabled={roleType === RoleType.SYSTEM}
-                      checked={state.frontPermission.includes('setProjects')}
-                      onChange={e => handleFrontOnchange(e.target.checked, 'setProjects')}>
+                      checked={state.frontPermission.includes(FrontPermission.SET_PROJECTS)}
+                      onChange={e => handleFrontOnchange(e.target.checked, FrontPermission.SET_PROJECTS)}>
                       项目设置
                     </Checkbox>
                   </div>
@@ -239,8 +246,12 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4>项目管理</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewManagement')}
-                      checked={state.backstagePermission.includes('viewManagement')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_PROJECT_MANAGEMENT)
+                      }
+                      checked={state.backstagePermission.includes(
+                        BackstagePermission.VIEW_PROJECT_MANAGEMENT
+                      )}>
                       查看项目
                     </Checkbox>
                     <Checkbox
@@ -273,8 +284,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">审批角色</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewApproval')}
-                      checked={state.backstagePermission.includes('viewApproval')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_APPROVAL_ROLE)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_APPROVAL_ROLE)}>
                       查看角色
                     </Checkbox>
                     <Checkbox
@@ -295,8 +308,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">审批流程模板</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewVerification')}
-                      checked={state.backstagePermission.includes('viewVerification')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_AUDIT_TEMPLATE)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_AUDIT_TEMPLATE)}>
                       查看流程
                     </Checkbox>
                     <Checkbox
@@ -321,8 +336,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4>单位管理</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewCompany')}
-                      checked={state.backstagePermission.includes('viewCompany')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_INSTITUTION)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_INSTITUTION)}>
                       查看单位
                     </Checkbox>
                     <Checkbox
@@ -355,8 +372,12 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">人员管理</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewStaff')}
-                      checked={state.backstagePermission.includes('viewStaff')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_INSTITUTION_STAFF)
+                      }
+                      checked={state.backstagePermission.includes(
+                        BackstagePermission.VIEW_INSTITUTION_STAFF
+                      )}>
                       查看人员
                     </Checkbox>
                     <Checkbox
@@ -371,8 +392,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">限制登录</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewRestrict')}
-                      checked={state.backstagePermission.includes('viewRestrict')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_ILLEGAL_USER)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_ILLEGAL_USER)}>
                       查看人员
                     </Checkbox>
                     <Checkbox
@@ -391,9 +414,9 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">业务编号配置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewRules')}
-                      checked={state.backstagePermission.includes('viewRules')}>
-                      查看信息
+                      onChange={e => handleBackOnchange(e.target.checked, BackstagePermission.VIEW_RULE_CODE)}
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_RULE_CODE)}>
+                      查看编号规则
                     </Checkbox>
                   </div>
                 </div>
@@ -411,9 +434,11 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">流程用户配置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewProcess')}
-                      checked={state.backstagePermission.includes('viewProcess')}>
-                      查看信息
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_PROCESS_USER)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_PROCESS_USER)}>
+                      查看流程用户
                     </Checkbox>
                   </div>
                 </div>
@@ -421,9 +446,13 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">资料清单配置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewInventory')}
-                      checked={state.backstagePermission.includes('viewInventory')}>
-                      查看信息
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_INVENTORY_TEMPLATE)
+                      }
+                      checked={state.backstagePermission.includes(
+                        BackstagePermission.VIEW_INVENTORY_TEMPLATE
+                      )}>
+                      查看资料清单模板
                     </Checkbox>
                   </div>
                 </div>
@@ -435,39 +464,17 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4>基础数据设置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewBase')}
-                      checked={state.backstagePermission.includes('viewBase')}>
-                      查看项目信息
-                    </Checkbox>
-                    <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'editBa6')}
-                      checked={state.backstagePermission.includes('updatePsw')}
-                      disabled>
-                      编辑项目信息
-                    </Checkbox>
-                    <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'editBa6')}
-                      checked={state.backstagePermission.includes('updatePsw')}
-                      disabled>
-                      查看企事业单位信息
-                    </Checkbox>
-                    <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'editBa6')}
-                      checked={state.backstagePermission.includes('updatePsw')}
-                      disabled>
-                      编辑企事业单位信息
-                    </Checkbox>
-                    <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'editBa6')}
-                      checked={state.backstagePermission.includes('updatePsw')}
-                      disabled>
-                      查看人员信息
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_BASE_SCHEMA)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_BASE_SCHEMA)}>
+                      查看信息
                     </Checkbox>
                     <Checkbox
                       onChange={e => handleBackOnchange(e.target.checked, 'editBa6')}
                       checked={state.backstagePermission.includes('updatePsw')}
                       disabled>
-                      编辑人员信息
+                      编辑信息
                     </Checkbox>
                   </div>
                 </div>
@@ -475,8 +482,8 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">数据源设置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewOption')}
-                      checked={state.backstagePermission.includes('viewOption')}>
+                      onChange={e => handleBackOnchange(e.target.checked, BackstagePermission.VIEW_DS_LIST)}
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_DS_LIST)}>
                       查看信息
                     </Checkbox>
                     <Checkbox
@@ -491,8 +498,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4 className="pt-3">预算业务表单设置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewBudget')}
-                      checked={state.backstagePermission.includes('viewBudget')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_BUDGET_SCHEMA)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_BUDGET_SCHEMA)}>
                       查看信息
                     </Checkbox>
                   </div>
@@ -505,8 +514,10 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4>功能角色设置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewRole')}
-                      checked={state.backstagePermission.includes('viewRole')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_PERMISSION_ROLE)
+                      }
+                      checked={state.backstagePermission.includes(BackstagePermission.VIEW_PERMISSION_ROLE)}>
                       查看信息
                     </Checkbox>
                   </div>
@@ -519,8 +530,12 @@ const PermTabs: React.FC<PermTabsProps> = ({ currentPermData: { ID, roleType } }
                   <h4>管理员设置</h4>
                   <div className="my-2">
                     <Checkbox
-                      onChange={e => handleBackOnchange(e.target.checked, 'viewAdmin')}
-                      checked={state.backstagePermission.includes('viewAdmin')}>
+                      onChange={e =>
+                        handleBackOnchange(e.target.checked, BackstagePermission.VIEW_SYSTEM_ADMIN_SETTING)
+                      }
+                      checked={state.backstagePermission.includes(
+                        BackstagePermission.VIEW_SYSTEM_ADMIN_SETTING
+                      )}>
                       查看信息
                     </Checkbox>
                     <Checkbox