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, }) => { let ids = []; let newSubOrder = {}; let sumPrice = 0; for (let order of subOrders) { sumPrice += parseFloat(order.totalPayment); } if (isMainOrder) { ids = data; } else { newSubOrder = cloneDeep(subOrders[0]); ids = subOrders?.map((item) => { sumPrice += parseFloat(item.totalPayment); 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} > {isMainOrder ? ( <div className="mb-[24px]"> <span>总订单金额:</span> <span className="text-red-500">{sumPrice}¥</span> </div> ) : ( '' )} <div className="mb-1"> 如果需要合并订单,请将需要合并的订单id写在备注中,id之间用英文逗号隔开。 </div> <ProFormTextArea width="lg" name="applyInvoicingNotes" placeholder="请输入备注" /> <ProFormUploadDragger key="2" label={ <div> <span>开票明细确认表</span> <span className="pl-2 text-xs text-gray-400"> 如果开票信息有变更,如开票内容跟下单内容不一致、下单抬头和付款抬头不一致,请上传开票明细确认表。 </span> </div> } name="filePaths" action="/api/service/order/fileProcess" fieldProps={{ headers: { Authorization: localStorage.getItem('token') }, }} /> </ModalForm> ); };