import {useEffect,useState,useContext} from 'react';
import { Form, Input, Checkbox, Button, Select,Steps,Tabs ,InputNumber,Space,Switch,Breadcrumb } from 'antd';
import MenuTree from './MenuTree';
import './index.less';
import OrgContext from './org-context';
import apiObj from '@api/index';
import backIcon from "@images/back.png";
const {post,api,xPost} = apiObj;
const { Step } = Steps;
const { TabPane } = Tabs;
const { Option } = Select;
function AddSubOrg(props){
const [current, setCurrent] = useState(0);
const { back } = props;
const steps = [
{
title: '基础信息',
content: 'First-content',
},
{
title: '设置管理员',
content: 'Second-content',
},
{
title: '分配权限',
content: 'Last-content',
},
];
const next = () => {
setCurrent(current + 1);
};
const pre = () => {
setCurrent(current - 1);
};
return (
<>
组织管理
新增子组织
>
)
}
function StepContent(props){
const [form] = Form.useForm();
const [treeDatas, setTreeDatas] = useState([]);
const [tabDatas, setTabDatas] = useState([]);
const [activeTab, setActiveTab] = useState('');
const [sysCheckeds, setSysCheckeds] = useState([]);
const {orgId,orgName,typeList,save} = useContext(OrgContext);
const {current,pre,next} = props;
const initialValues={
parentId:orgId,
parentName:orgName,
status:1
};
const vilidateRules = {
required: '${label}不能为空!',
types: {
email: '${label} is not a valid email!',
number: '${label} is not a valid number!',
},
};
//获取菜单数据
function getTreeData(){
xPost(api.getUserMenuResourceTree,{type:0}).then((res)=>{
if(res.data.code===200){
const data = res.data.data;
const treeDatas = structureTreeData(data);
setTreeDatas(treeDatas);
setTabDatas([treeDatas[0]]);
setActiveTab(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)
}
});
setSysCheckeds(arr[0]?[arr[0].key]:[]);
//form.setFieldsValue({softwares:[{id:arr[0]?[arr[0].key]:''}]}); //默认选中第一个
return arr;
}
useEffect(()=>{
getTreeData();
},[]);
function handlePre(){
pre();
}
function handleNext(){
const validateKeys = {
0:['parentId','name','code',['addHospitalUserVO','name'],['addHospitalUserVO','mobilePhone'],'type','orderNo'],
1:[['addHospitalUserVO','username'],['addHospitalUserVO','password'],'confirmPsd'],
};
form.validateFields(validateKeys[current]).then((res)=>{
//console.log(res,form)
next(form);
});
}
function handleSave(){
form.validateFields([['softwares',0,'id'],['softwares',0,'softwareMenuIds'],['softwares',0,'softwareResourceIds']]).then((res)=>{
save(form.getFieldsValue())
});
}
//树形结构选中事件
function checkTreeEvent(i,idsArr,sourceIds){
console.log(32,i,idsArr,sourceIds,activeTab)
const formData=form.getFieldsValue();
const arr=formData.softwares;
arr[i]={
id:activeTab,
softwareMenuIds:idsArr,
softwareResourceIds:sourceIds
};
form.setFieldsValue({
softwares:arr
});
}
function onTabChange(activeTab){
setActiveTab(activeTab)
}
//状态开关
function switchStatus(checked){
form.setFieldsValue({
status:checked?1:0
});
}
//开放系统勾选事件
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.length<51) {
return Promise.resolve();
}
return Promise.reject(new Error('格式错误!'));
},
}),]}>
({
validator(_, value) {
if (!value || getFieldValue(['addHospitalUserVO','password']) === value) {
return Promise.resolve();
}
return Promise.reject(new Error('两次密码输入不一致!'));
},
}),]}>
{
treeDatas.map((it, i) => {
return (
{it.title}
)
})
}
{
tabDatas.map((it,i)=>{
console.log(0,it,i,tabDatas)
return (
checkTreeEvent(i,checkedKeys,sourceIds)}/>
)
})
}
启用
{current!==0?:null}
{current!==2?:null}
{current===2?:null}
>
)
}
export default AddSubOrg;