gaoluyang
2025-11-25 bd4ac5f01216b1352a271be281db03bab63ae8ea
src/views/salesManagement/salesLedger/index.vue
@@ -215,9 +215,6 @@
        <el-row :gutter="30">
          <el-col :span="24">
            <el-form-item label="产品大类:" prop="productCategory">
              <!-- <el-select v-model="productForm.productCategory" placeholder="请选择" clearable>
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
              </el-select> -->
              <el-tree-select v-model="productForm.productCategory" placeholder="请选择" clearable check-strictly
                @change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" />
            </el-form-item>
@@ -559,18 +556,18 @@
      { required: true, message: "请选择", trigger: "change" },
    ],
    unit: [{ required: true, message: "请输入", trigger: "blur" }],
    quantity: [{ required: true, message: "请输入", trigger: "blur" }],
    quantity: [{ required: false, message: "请输入", trigger: "blur" }],
    taxInclusiveUnitPrice: [
      { required: true, message: "请输入", trigger: "blur" },
      { required: false, message: "请输入", trigger: "blur" },
    ],
    taxRate: [{ required: true, message: "请选择", trigger: "change" }],
    taxRate: [{ required: false, message: "请选择", trigger: "change" }],
    taxInclusiveTotalPrice: [
      { required: true, message: "请输入", trigger: "blur" },
      { required: false, message: "请输入", trigger: "blur" },
    ],
    taxExclusiveTotalPrice: [
      { required: true, message: "请输入", trigger: "blur" },
      { required: false, message: "请输入", trigger: "blur" },
    ],
    invoiceType: [{ required: true, message: "请选择", trigger: "change" }],
    invoiceType: [{ required: false, message: "请选择", trigger: "change" }],
  },
});
const { productForm, productRules } = toRefs(productFormData);
@@ -860,13 +857,25 @@
const submitProduct = () => {
  proxy.$refs["productFormRef"].validate((valid) => {
    if (valid) {
      // 处理税率、金额和数量字段,如果为空则设置为0
      const processedForm = { ...productForm.value };
      // 需要处理的字段列表
      const numericFields = ['taxRate', 'taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice', 'quantity'];
      numericFields.forEach(field => {
        if (processedForm[field] === '' || processedForm[field] === null || processedForm[field] === undefined) {
          processedForm[field] = 0;
        }
      });
      if (operationType.value === "edit") {
        submitProductEdit();
      } else {
        if(productOperationType.value === "add"){
          productData.value.push({ ...productForm.value });
          productData.value.push(processedForm);
        }else{
          productData.value[productIndex.value] = { ...productForm.value }
          productData.value[productIndex.value] = processedForm;
        }
        closeProductDia();
      }
@@ -874,9 +883,22 @@
  });
};
const submitProductEdit = () => {
  productForm.value.salesLedgerId = currentId.value;
  productForm.value.type = 1
  addOrUpdateSalesLedgerProduct(productForm.value).then((res) => {
  // 处理税率、金额和数量字段,如果为空则设置为0
  const processedForm = { ...productForm.value };
  // 需要处理的字段列表
  const numericFields = ['taxRate', 'taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice', 'quantity'];
  numericFields.forEach(field => {
    if (processedForm[field] === '' || processedForm[field] === null || processedForm[field] === undefined) {
      processedForm[field] = 0;
    }
  });
  processedForm.salesLedgerId = currentId.value;
  processedForm.type = 1;
  addOrUpdateSalesLedgerProduct(processedForm).then((res) => {
    proxy.$modal.msgSuccess("提交成功");
    closeProductDia();
    getSalesLedgerWithProducts({ id: currentId.value, type: 1 }).then((res) => {