| | |
| | | const submitForm = () => { |
| | | proxy.$refs["formRef"].validate((valid) => { |
| | | if (valid) { |
| | | // 如果是批量操作,将所有合同的数据放在一个数组里,只调用一次接口 |
| | | if (selectedContracts.value.length > 1) { |
| | | // 创建包含所有合同数据的数组 |
| | | const batchData = selectedContracts.value.map(contract => { |
| | | // 筛选出属于当前合同的产品数据 |
| | | const contractProductData = form.productData.filter(item => |
| | | item.id === contract.id |
| | | ); |
| | | |
| | | // 为每个采购合同创建独立的对象 |
| | | return { |
| | | // 基础表单数据 |
| | | invoiceNumber: form.invoiceNumber, |
| | | invoiceAmount: form.invoiceAmount, |
| | | entryDate: form.entryDate, |
| | | enterDate: form.enterDate, |
| | | issUerId: form.issUerId, // 录入人id |
| | | issUer: form.issUer, // 录入人 |
| | | tempFileIds: form.tempFileIds, |
| | | |
| | | // 合同实际信息 |
| | | purchaseLedgerId: contract.id, // 使用id作为字段名,值为purchaseLedgerId |
| | | purchaseContractNumber: contract.purchaseContractNumber, // 使用实际的采购合同号 |
| | | salesContractNo: contract.salesContractNo, // 使用实际的销售合同号 |
| | | supplierName: contract.supplierName, // 使用实际的供应商名称 |
| | | projectName: contract.projectName, // 使用实际的项目名称 |
| | | |
| | | // 产品数据 |
| | | productData: proxy.HaveJson(contractProductData), |
| | | |
| | | // 批量标识 |
| | | isBatch: true, |
| | | type: 4 |
| | | }; |
| | | }); |
| | | // 统一将所有合同的数据放在一个数组里,单个和批量都使用数组格式 |
| | | const submitData = selectedContracts.value.map(contract => { |
| | | // 筛选出属于当前合同的产品数据 |
| | | const contractProductData = form.productData.filter(item => |
| | | item.id === contract.id |
| | | ); |
| | | |
| | | // 只调用一次接口,传递包含所有合同数据的数组 |
| | | modalLoading.value = true; |
| | | addOrUpdateRegistration(batchData).then((res) => { |
| | | modalLoading.value = false; |
| | | if (res.code === 200) { |
| | | proxy.$modal.msgSuccess("批量登记成功"); |
| | | closeAndRefresh(); |
| | | } |
| | | }).catch(() => { |
| | | modalLoading.value = false; |
| | | proxy.$modal.msgError("批量登记失败"); |
| | | }); |
| | | } else { |
| | | // 单个合同提交逻辑 |
| | | const singleContract = selectedContracts.value[0]; |
| | | const singleForm = { |
| | | // 为每个采购合同创建独立的对象 |
| | | return { |
| | | // 基础表单数据 |
| | | invoiceNumber: form.invoiceNumber, |
| | | invoiceAmount: form.invoiceAmount, |
| | |
| | | tempFileIds: form.tempFileIds, |
| | | |
| | | // 合同实际信息 |
| | | purchaseLedgerId: singleContract.id, // 使用id作为字段名,值为purchaseLedgerId |
| | | purchaseContractNumber: singleContract.purchaseContractNumber, // 使用实际的采购合同号 |
| | | salesContractNo: singleContract.salesContractNo, // 使用实际的销售合同号 |
| | | supplierName: singleContract.supplierName, // 使用实际的供应商名称 |
| | | projectName: singleContract.projectName, // 使用实际的项目名称 |
| | | purchaseLedgerId: contract.id, // 使用id作为字段名,值为purchaseLedgerId |
| | | purchaseContractNumber: contract.purchaseContractNumber, // 使用实际的采购合同号 |
| | | salesContractNo: contract.salesContractNo, // 使用实际的销售合同号 |
| | | supplierName: contract.supplierName, // 使用实际的供应商名称 |
| | | projectName: contract.projectName, // 使用实际的项目名称 |
| | | |
| | | // 产品数据 |
| | | productData: proxy.HaveJson(form.productData), |
| | | productData: proxy.HaveJson(contractProductData), |
| | | |
| | | // 批量标识 |
| | | isBatch: false, |
| | | isBatch: selectedContracts.value.length > 1, |
| | | type: 4 |
| | | }; |
| | | |
| | | modalLoading.value = true; |
| | | addOrUpdateRegistration(singleForm).then((res) => { |
| | | modalLoading.value = false; |
| | | if (res.code === 200) { |
| | | proxy.$modal.msgSuccess("登记成功"); |
| | | closeAndRefresh(); |
| | | } |
| | | }).catch(() => { |
| | | modalLoading.value = false; |
| | | proxy.$modal.msgError("登记失败"); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 统一调用接口,传递数组格式的数据 |
| | | modalLoading.value = true; |
| | | addOrUpdateRegistration(submitData).then((res) => { |
| | | modalLoading.value = false; |
| | | if (res.code === 200) { |
| | | proxy.$modal.msgSuccess(selectedContracts.value.length > 1 ? "批量登记成功" : "登记成功"); |
| | | closeAndRefresh(); |
| | | } |
| | | }).catch(() => { |
| | | modalLoading.value = false; |
| | | proxy.$modal.msgError(selectedContracts.value.length > 1 ? "批量登记失败" : "登记失败"); |
| | | }); |
| | | } |
| | | }); |
| | | }; |