|
@@ -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
|