import React, { useEffect, useState } from 'react'; import { Cascader, Checkbox, Col, Form, Input, InputNumber, message, Modal, Row, Select, } from 'antd'; import { createUser, editUser, queryTreeList, queryUserList } from '@/services/setting'; import md5 from 'js-md5'; import { queryRoleList } from '@/services/role'; interface userEditPros { visible: boolean; editCallback: () => void; detailData: any; } /** * 用户管理编辑 * @param props * @constructor */ const Edit: React.FC = (props) => { const { visible, editCallback, detailData } = props; const [form] = Form.useForm(); const [roleList, setRoleList] = useState([]); const [areaList, setAreaList] = useState([]); const [dealerList, setDealerList] = useState([]); const [roleCode, setRoleCode]: any = useState([]); useEffect(() => { if (detailData) { // 编辑时,根据角色判断是否显示配额和所属经销商 const arr: any[] = []; detailData.user_role.forEach((el: any) => { arr.push(el.role_code); }); setRoleCode(arr); } // 经销商列表 queryUserList({ q: 'list', code_str: '21' }).then((res) => { if (res && res.code === 0) { setDealerList(res.data || []); } }); // 角色列表 queryRoleList({ q: 'list' }).then((res) => { if (res.code === 0) { setRoleList(res.data.list); } }); // 地区列表 queryTreeList({ q: 'tree', level: '3' }).then((res) => { if (res && res.code === 0) { setAreaList(res.data.list || []); } }); }, []); // 角色选择 const onRoleChange = (e: any, code: string) => { const { target: { checked }, } = e; let arr: any = [...roleCode]; if (checked) { if (!roleCode.includes(code)) { arr.push(code); } } else { arr = arr.filter((item: any) => item !== code); } setRoleCode(arr); }; /** * 确定 */ const onOk = () => { form.validateFields().then((values) => { if (values) { const data = { ...values }; if (values?.password) { data.password = md5(values.password); } if (values?.role_id) { const user_role: { role_id: any }[] = []; values?.role_id.forEach((el: any) => { user_role.push({ role_id: el }); }); data.user_role = user_role; delete data.role_id; } if (values.districts) { const arr: any[] = []; values.districts.forEach((el: any) => { arr.push({ province_id: el[0], district_id: el[1], }); }); data.districts = arr; } if (values?.parent_id) { data.parent_id = values?.parent_id; } if (detailData) { data.record_id = detailData.record_id; // 编辑 editUser(data) .then((res) => { if (res.code === 0) { message.success('编辑成功'); editCallback(); } else { message.error(res?.message); editCallback(); } }) .catch((e) => { message.error(e?.message); editCallback(); }); } else { // 新增 createUser(data) .then((res) => { if (res.code === 0) { message.success('保存成功'); editCallback(); } else { message.error(res?.message); editCallback(); } }) .catch((e) => { message.error(e?.message); editCallback(); }); } } }); }; /** * 取消 */ const onCancel = () => { editCallback(); }; const formItemLayout = { labelCol: { span: 6, }, wrapperCol: { span: 16, }, }; const formItemLayoutTwo = { labelCol: { span: 3, }, wrapperCol: { span: 21, }, }; return (
item.role_id) : [] } > {roleList && roleList.length ? roleList.map((res: any) => { return ( onRoleChange(e, res.code)} > {res.name} ); }) : null} {roleCode.includes('21') || roleCode.includes('22') ? ( ) : null} [item.province_id, item.district_id]) || [] } > {roleCode.includes('22') ? ( ) : null}
); }; export default Edit;