import React, { useState, useEffect } from "react"; import { Modal, Form, TreeSelect, Input, message } from "antd"; import styles from "./update.module.less"; import { useSelector } from "react-redux"; import { user, department } from "../../../api/index"; import { UploadImageButton } from "../../../compenents"; import { ValidataCredentials } from "../../../utils/index"; interface PropInterface { id: number; open: boolean; onCancel: () => void; } interface Option { value: string | number; label: string; children?: Option[]; } export const MemberUpdate: React.FC = ({ id, open, onCancel, }) => { const [form] = Form.useForm(); const [loading, setLoading] = useState(true); const [departments, setDepartments] = useState([]); const memberDefaultAvatar = useSelector( (state: any) => state.systemConfig.value.memberDefaultAvatar ); const [avatar, setAvatar] = useState(memberDefaultAvatar); useEffect(() => { if (id == 0) { return; } getDetail(); }, [id, open]); useEffect(() => { if (open) { getParams(); form.setFieldsValue({ password: "", }); } }, [form, open]); const getParams = () => { if (id === 0) { return; } department.departmentList().then((res: any) => { const departments = res.data.departments; if (JSON.stringify(departments) !== "{}") { const new_arr: Option[] = checkArr(departments, 0); setDepartments(new_arr); } }); }; const getDetail = () => { user.user(id).then((res: any) => { let user = res.data.user; setAvatar(user.avatar); form.setFieldsValue({ email: user.email, name: user.name, avatar: user.avatar, idCard: user.id_card, dep_ids: res.data.dep_ids, }); }); }; const checkChild = (departments: any[], id: number) => { for (let key in departments) { for (let i = 0; i < departments[key].length; i++) { if (departments[key][i].id === id) { return departments[key][i]; } } } }; const checkArr = (departments: any[], id: number) => { const arr = []; for (let i = 0; i < departments[id].length; i++) { if (!departments[departments[id][i].id]) { arr.push({ label: departments[id][i].name, value: departments[id][i].id, }); } else { const new_arr: Option[] = checkArr(departments, departments[id][i].id); arr.push({ label: departments[id][i].name, value: departments[id][i].id, children: new_arr, }); } } return arr; }; const onFinish = (values: any) => { if (values.idCard !== "" && !ValidataCredentials(values.idCard)) { message.error("请输入正确的身份证号!"); return; } user .updateUser( id, values.email, values.name, values.avatar, values.password || "", values.idCard, values.dep_ids ) .then((res: any) => { message.success("保存成功!"); onCancel(); }); }; const onFinishFailed = (errorInfo: any) => { console.log("Failed:", errorInfo); }; const onChange = (value: any) => {}; return ( <> form.submit()} onCancel={() => onCancel()} maskClosable={false} >
{avatar && ( )}
{ setAvatar(url); form.setFieldsValue({ avatar: url }); }} >
); };