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