import { QueryRoleOption } from '@/services/services/role'; import { UserInfo } from '@/services/services/user'; import { FormatDate } from '@/util/time'; import { useModel } from '@umijs/max'; import { Button, Col, Form, FormInstance, Input, InputNumber, message, Row, Select, SelectProps, Spin, Tag } from 'antd'; import React, { useEffect, useState } from 'react'; interface ModifyUserProps { userId: number; setFormRef: (form: FormInstance) => void; open: boolean; } const ModifyUser: React.FC = ({ userId, setFormRef, open }) => { const [form] = Form.useForm(); type TagRender = SelectProps['tagRender']; const [messageApi, messageHolder] = message.useMessage(); const [loading, setLoading] = useState(true); const [spinTip, setSpinTip] = useState("加载中..."); const [roleNames, setRoleNames] = useState([]); useEffect(() => { setFormRef(form); }, [form, setFormRef]); useEffect(() => { setLoading(true); QueryRoleOption().then((res: string[]) => { let temRoleNames = res.filter(item => item != "Super Admin").map((item) => { return { value: item } }); setRoleNames(temRoleNames); }).catch((error: any) => { messageApi.error(error.message); setLoading(false); }) UserInfo.GetUserInfo(userId).then((res) => { let tempRes = { ...res, createdDate: FormatDate(res.createdDate) } form.setFieldsValue(tempRes); }).catch((error) => { messageApi.error(error.message); }).finally(() => { setLoading(false); }); }, [userId, open, form, setFormRef]); async function onFinish(values: any): Promise { setLoading(true); setSpinTip("修改中..."); try { await UserInfo.UpdatedUserInfo(values); messageApi.success("用户修改成功"); } catch (error: any) { messageApi.error(error.message); } finally { setLoading(false); } } const tagRender: TagRender = (props) => { const { label, value, closable, onClose } = props; const onPreventMouseDown = (event: React.MouseEvent) => { event.preventDefault(); event.stopPropagation(); }; return ( {label} ); }; return ( <>
{messageHolder} ); }; export default ModifyUser;