|
@@ -1,29 +1,52 @@
|
|
|
import {Checkbox} from 'antd'
|
|
import {Checkbox} from 'antd'
|
|
|
import { useState, forwardRef, useImperativeHandle} from "react";
|
|
import { useState, forwardRef, useImperativeHandle} from "react";
|
|
|
import classNames from "classnames";
|
|
import classNames from "classnames";
|
|
|
-
|
|
|
|
|
|
|
+import RoleData, {roleKeysType, ROLEKEYS} from "./data/RoleData"
|
|
|
import '../index.less';
|
|
import '../index.less';
|
|
|
|
|
+import {MenuDataModel} from "@/pages/init-home/components/menu";
|
|
|
|
|
|
|
|
const Role = forwardRef((_, ref) => {
|
|
const Role = forwardRef((_, ref) => {
|
|
|
|
|
|
|
|
- const [ keys, setKeys ] = useState<string[]>([])
|
|
|
|
|
|
|
+ const [ keys, setKeys ] = useState<roleKeysType[]>([])
|
|
|
|
|
+
|
|
|
|
|
+ const findMenuByRole = (menu: any[], code: string): boolean => {
|
|
|
|
|
+ return menu.some(item => {
|
|
|
|
|
+ if (item.code === code) {
|
|
|
|
|
+ return true
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (item.children) {
|
|
|
|
|
+ return findMenuByRole(item.children, code)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return false
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
useImperativeHandle(ref, () => ({
|
|
useImperativeHandle(ref, () => ({
|
|
|
- save: () => {
|
|
|
|
|
|
|
+ save: async () => {
|
|
|
console.log(keys)
|
|
console.log(keys)
|
|
|
// 获取当前选中的角色
|
|
// 获取当前选中的角色
|
|
|
|
|
+ const newRole = keys.map(item => {
|
|
|
|
|
+
|
|
|
|
|
+ const _roleData = (RoleData[item] as []).filter((roleItem: any) => {
|
|
|
|
|
+ return findMenuByRole(MenuDataModel.menuData, roleItem.code)
|
|
|
|
|
+ })
|
|
|
|
|
+ return { menus: _roleData }
|
|
|
|
|
+ })
|
|
|
|
|
+ console.log(newRole)
|
|
|
}
|
|
}
|
|
|
}), [keys])
|
|
}), [keys])
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<div className={'init-home-role'}>
|
|
<div className={'init-home-role'}>
|
|
|
<Checkbox.Group onChange={(e) => {
|
|
<Checkbox.Group onChange={(e) => {
|
|
|
- setKeys(e as string[])
|
|
|
|
|
|
|
+ setKeys(e as roleKeysType[])
|
|
|
}}>
|
|
}}>
|
|
|
<div className={'init-home-role-content'}>
|
|
<div className={'init-home-role-content'}>
|
|
|
<div className={classNames('role-item role-image-1', {active: keys.includes('device')})}>
|
|
<div className={classNames('role-item role-image-1', {active: keys.includes('device')})}>
|
|
|
<div className={'role-item-title'} >
|
|
<div className={'role-item-title'} >
|
|
|
- <Checkbox value={'device'}></Checkbox>
|
|
|
|
|
|
|
+ <Checkbox value={ROLEKEYS.device}></Checkbox>
|
|
|
<div>设备接入岗</div>
|
|
<div>设备接入岗</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div className={'role-item-content'}></div>
|
|
<div className={'role-item-content'}></div>
|
|
@@ -31,7 +54,7 @@ const Role = forwardRef((_, ref) => {
|
|
|
</div>
|
|
</div>
|
|
|
<div className={classNames('role-item role-image-2', {active: keys.includes('link')})}>
|
|
<div className={classNames('role-item role-image-2', {active: keys.includes('link')})}>
|
|
|
<div className={'role-item-title'} >
|
|
<div className={'role-item-title'} >
|
|
|
- <Checkbox value={'link'}></Checkbox>
|
|
|
|
|
|
|
+ <Checkbox value={ROLEKEYS.link}></Checkbox>
|
|
|
<div>运维管理岗</div>
|
|
<div>运维管理岗</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div className={'role-item-content'}></div>
|
|
<div className={'role-item-content'}></div>
|
|
@@ -39,7 +62,7 @@ const Role = forwardRef((_, ref) => {
|
|
|
</div>
|
|
</div>
|
|
|
<div className={classNames('role-item role-image-3', {active: keys.includes('complex')})}>
|
|
<div className={classNames('role-item role-image-3', {active: keys.includes('complex')})}>
|
|
|
<div className={'role-item-title'} >
|
|
<div className={'role-item-title'} >
|
|
|
- <Checkbox value={'complex'}></Checkbox>
|
|
|
|
|
|
|
+ <Checkbox value={ROLEKEYS.complex}></Checkbox>
|
|
|
<div>综合管理岗</div>
|
|
<div>综合管理岗</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div className={'role-item-content'}></div>
|
|
<div className={'role-item-content'}></div>
|