import { postOrderErpTicketsUpdate, postServiceOrderQuerySalesCode, } from '@/services'; import { ModalForm, ProCard, ProFormSelect } from '@ant-design/pro-components'; import { Button, Form } from 'antd'; import { useEffect, useState } from 'react'; type Ticket = { assignPeople?: string; }; const waitTime = (time = 100) => { return new Promise((resolve) => { setTimeout(() => { resolve(true); }, time); }); }; export default ({ ids, toReload }) => { const [form] = Form.useForm<Ticket>(); const [assignPeopleOptions, setAssignPeopleOptions] = useState([]); useEffect(() => { const fetchAssignPeopleOptions = async () => { try { const res = await postServiceOrderQuerySalesCode(); const options = res.data?.map((item) => ({ label: item.userName, value: item.userName, })); setAssignPeopleOptions(options || []); } catch (error) { console.error('Failed to fetch assign people options:', error); } }; fetchAssignPeopleOptions(); }, []); const reSet = async () => { console.log(ids); ids.forEach(async (id) => { let requestBody = { id: id, assignPeople: form.getFieldValue('assignPeople'), }; await postOrderErpTicketsUpdate({ data: { ...requestBody }, }); }); }; return ( <ModalForm title="重新指派" width={660} form={form} trigger={<Button type="primary">重新指派</Button>} modalProps={{ okText: '确定', cancelText: '取消', destroyOnClose: true, }} onFinish={async () => { reSet(); await waitTime(2000); toReload(); return true; }} > <ProCard split="horizontal" bordered> <ProCard> <ProCard.Group direction="column"> <Form.Item label="指派人员" name="assignPeople"> <ProFormSelect name="assignPeople" options={assignPeopleOptions} placeholder="请选择指派人员" rules={[{ required: true, message: '此项为必填项' }]} /> </Form.Item> </ProCard.Group> </ProCard> </ProCard> </ModalForm> ); };