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 ( <> 返回上一页 组织管理 新增子组织
{steps.map(item => ( ))}
) } 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 ( <>
{current!==0?:null} {current!==2?:null} {current===2?:null}
) } export default AddSubOrg;