gaoluyang
5 小时以前 02e9c39e8ec8d4a57e874b62907934bc9b605ccf
src/views/procurementManagement/invoiceEntry/components/Modal.vue
@@ -507,58 +507,15 @@
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,
@@ -569,32 +526,33 @@
          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 ? "批量登记失败" : "登记失败");
      });
    }
  });
};