import {useEffect,useState,useContext} from 'react';
import { Form, Input, Checkbox, Button, Select,Tabs ,InputNumber,Space,Switch,Breadcrumb } from 'antd';
import MenuTree from './MenuTree';
import './index.less';
import RoleContext from './role-context';
import apiObj from '@api/index';
import backIcon from "@images/back.png";
const {post,api,xPost} = apiObj;
const { TabPane } = Tabs;
const { Option } = Select;
function AddRole(props){
const { back } = props;
return (
<>
角色管理
新增角色
>
)
}
function ContentForm(props){
const [form] = Form.useForm();
const [treeDatas, setTreeDatas] = useState([]);
const [tabDatas, setTabDatas] = useState([]);
const [activeTab, setActiveTab] = useState('');
const { save,detail } = useContext(RoleContext);
const [sysCheckeds, setSysCheckeds] = useState();
const initialValues=detail||{
status:'1'
};
const vilidateRules = {
required: '${label}不能为空!',
types: {
email: '${label} is not a valid email!',
number: '${label} is not a valid number!',
},
};
//获取菜单数据,type:组织0角色1
function getTreeData(){
xPost(api.getUserMenuResourceTree,{type:1}).then((res)=>{
if(res.data.code===200){
const data = res.data.data;
const treeDatas = structureTreeData(data);
setTreeDatas(treeDatas);
console.log(43,detail)
//默认选中第一个tab
setTabDatas([treeDatas[0]]);
setActiveTab(treeDatas[0].key);
setSysCheckeds(treeDatas[0]?[treeDatas[0].key]:[]);
}
})
}
//数据转换为树形结构所需字段
function structureTreeData(data){
const arr = [];
let obj={};
data.map((it,i)=>{
obj =JSON.stringify(it.children).replace(/softwareMenuId/g,"key").replace(/menuName/g,'title');
arr[i]={
title:it.softwareName,
key:it.softwareId,
children:JSON.parse(obj)
}
});
//form.setFieldsValue({softwares:[{id:arr[0]?[arr[0].key]:''}]}); //默认选中第一个
return arr;
}
useEffect(()=>{
if(detail){
//编辑时权限树从详情中获取,tab数据也是
const treeDatas = structureTreeData(detail.loginUserMenuResourceTree);
setTreeDatas(treeDatas);
setSysCheckeds(detail.sids);
setTabDatas(treeDatas);
}else{
getTreeData();
}
},[]);
function handleCancel(){
}
function handleSave(){
form.validateFields(['name']).then((res)=>{
save(form.getFieldsValue())
});
}
//树形结构选中事件
function checkTreeEvent(i,idsArr,sourceIds){
const formData=form.getFieldsValue();
let arr=formData.softwares;
arr[i]={
id:activeTab,
softwareMenuIds:idsArr,
softwareResourceIds:sourceIds
};
form.setFieldsValue({
softwares:arr
});
}
function onTabChange(activeTab){
setActiveTab(activeTab)
}
//开放系统勾选事件
function softwareChange(checkedValue){
let arr = [],item;
setSysCheckeds(checkedValue);
for(let i=0;iit.key===checkedValue[i]);
if(item){
arr.push(item);
}
}
setTabDatas(arr);
}
return (
<>
({
validator(_, value) {
if(!value){
return Promise.reject(new Error('角色名称不能为空!'));
}else if (value.length<51) {
return Promise.resolve();
}
return Promise.reject(new Error('格式错误!'));
},
}),]}>
{
treeDatas.map((it, i) => {
return (
{it.title}
)
})
}
{
tabDatas.map((it,i)=>{
return (
{
console.log(321,checked)
return [];
}} noStyle>
checkTreeEvent(i,checkedKeys,sourceIds)}/>
)
})
}
{
return +checked;
}}
noStyle>
启用
>
)
}
export default AddRole;