import { RESPONSE_CODE } from '@/constants/enum'; import { postServiceOrderApplyInvoicing, postServiceOrderMergeApplyInvoicing, } from '@/services'; import { getAliYunOSSFileNameFromUrl } from '@/utils'; import { ModalForm, ProFormTextArea, ProFormUploadDragger, } from '@ant-design/pro-components'; import { Form, message } from 'antd'; import { cloneDeep } from 'lodash'; export default ({ setCheckVisible, isEdit, data, subOrders, isMainOrder, onClose, }) => { console.log(subOrders); let ids = []; let newSubOrder = {}; if (isMainOrder) { ids = data; } else { newSubOrder = cloneDeep(subOrders[0]); ids = subOrders?.map((item) => { return item.id; }); } let newListAnnex = []; //回显,子订单可以编辑备注跟附件 if (!isMainOrder) { if (isEdit) { newListAnnex = newSubOrder.afterAnnexList?.map((path) => { let i = 0; return { uid: i++, name: getAliYunOSSFileNameFromUrl(path), status: 'uploaded', url: path, response: { data: [path] }, }; }); newSubOrder.filePaths = newListAnnex; } } //拼接主订单id console.log(isMainOrder); if (isMainOrder) { console.log('in'); newSubOrder.applyInvoicingNotes = ids.join(','); } const [form] = Form.useForm<{ applyInvoicingNotes: string; filePaths: any; subIds: any[]; afterInvoicingUpdate: boolean; }>(); return ( <ModalForm<{ applyInvoicingNotes: string; filePaths: any; subIds: any[]; afterInvoicingUpdate: boolean; }> width={500} open title={isEdit ? '修改信息' : '申请开票'} initialValues={newSubOrder} form={form} autoFocusFirstInput modalProps={{ okText: '确认', cancelText: '取消', destroyOnClose: true, onCancel: () => { setCheckVisible(false); }, }} submitter={{ render: (props, defaultDoms) => { return defaultDoms; }, }} submitTimeout={2000} onFinish={async (values) => { values.subIds = ids; //附件处理 values.filePaths = values.filePaths?.map((item) => { return { url: item.response.data[0] }; }); if (isMainOrder) { const res = await postServiceOrderMergeApplyInvoicing({ data: { ...values, mainOrderIds: ids, }, }); if (res.result === RESPONSE_CODE.SUCCESS) { message.success(res.message); onClose(); } } else { if (isEdit) { values.afterInvoicingUpdate = true; } else { values.afterInvoicingUpdate = false; } const res = await postServiceOrderApplyInvoicing({ data: values }); if (res.result === RESPONSE_CODE.SUCCESS) { message.success(res.message); onClose(); } } }} onOpenChange={setCheckVisible} > <div>如果需要合并订单,请将需要合并的订单id写在备注中。</div> <ProFormTextArea width="lg" name="applyInvoicingNotes" placeholder="请输入备注" /> <ProFormUploadDragger key="2" label="附件" name="filePaths" action="/api/service/order/fileProcess" fieldProps={{ headers: { Authorization: localStorage.getItem('token') }, }} /> </ModalForm> ); };