gongchunyi
2026-07-03 fa636229ea3feb32cdbe6fef3233bcbd19ddd623
src/views/procurementManagement/procurementLedger/index.vue
@@ -26,13 +26,13 @@
                      prefix-icon="Search"
                      @change="handleQuery" />
          </el-form-item>
          <el-form-item label="项目名称:">
          <!-- <el-form-item label="项目名称:">
            <el-input v-model="searchForm.projectName"
                      placeholder="请输入"
                      clearable
                      prefix-icon="Search"
                      @change="handleQuery" />
          </el-form-item>
          </el-form-item> -->
          <el-form-item label="录入日期:">
            <el-date-picker v-model="searchForm.entryDate"
                            value-format="YYYY-MM-DD"
@@ -125,10 +125,10 @@
                         prop="supplierName"
                          width="160"
                         show-overflow-tooltip />
        <el-table-column label="项目名称"
        <!-- <el-table-column label="项目名称"
                         prop="projectName"
                         width="320"
                         show-overflow-tooltip />
                         show-overflow-tooltip /> -->
        <el-table-column label="审批状态"
                         prop="approvalStatus"
                         width="100"
@@ -240,16 +240,14 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
          <!-- <el-col :span="12">
            <el-form-item label="项目名称"
                          prop="projectName">
              <el-input v-model="form.projectName"
                        placeholder="请输入"
                        clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          </el-col> -->
          <el-col :span="12">
            <el-form-item label="付款方式">
              <el-input v-model="form.paymentMethod"
@@ -257,6 +255,8 @@
                        clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="签订日期:"
                          prop="executionDate">
@@ -269,8 +269,6 @@
                              clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="录入人:"
                          prop="recorderId">
@@ -285,6 +283,8 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="录入日期:"
                          prop="entryDate">
@@ -546,6 +546,7 @@
              <el-tree-select v-model="productForm.productId"
                              placeholder="请选择"
                              clearable
                              filterable
                              check-strictly
                              @change="getModels"
                              :data="productOptions"
@@ -586,6 +587,8 @@
                         placeholder="请选择"
                         clearable
                         @change="mathNum">
                <el-option label="0"
                           value="0" />
                <el-option label="1"
                           value="1" />
                <el-option label="6"
@@ -601,8 +604,8 @@
            <el-form-item label="含税单价(元):"
                          prop="taxInclusiveUnitPrice">
              <el-input-number v-model="productForm.taxInclusiveUnitPrice"
                               :precision="2"
                               :step="0.1"
                               :precision="4"
                               :step="0.0001"
                               :min="0"
                               clearable
                               style="width: 100%"
@@ -614,7 +617,7 @@
                          prop="quantity">
              <el-input-number :step="0.1"
                               clearable
                               :precision="2"
                               :precision="5"
                               :min="0"
                               style="width: 100%"
                               v-model="productForm.quantity"
@@ -852,16 +855,16 @@
      currentTemplateId.value = matchedTemplate.id;
      // 选中已有模板时,不应视为“模板名称重复导致不可保存”
      isTemplateNameDuplicate.value = false;
      // 如果找到模板,只赋值供应商、项目名称、付款方式和产品信息
      // 如果找到模板,只赋值供应商、付款方式和产品信息
      if (matchedTemplate.supplierId) {
        form.value.supplierId = matchedTemplate.supplierId;
      }
      if (matchedTemplate.supplierName) {
        form.value.supplierName = matchedTemplate.supplierName;
      }
      if (matchedTemplate.projectName) {
        form.value.projectName = matchedTemplate.projectName;
      }
      // if (matchedTemplate.projectName) {
      //   form.value.projectName = matchedTemplate.projectName;
      // }
      if (matchedTemplate.paymentMethod) {
        form.value.paymentMethod = matchedTemplate.paymentMethod;
      }
@@ -898,7 +901,7 @@
      supplierName: "", // 供应商名称
      purchaseContractNumber: "", // 采购合同编号
      salesContractNo: "", // 销售合同编号
      projectName: "", // 项目名称
      // projectName: "", // 项目名称
      entryDate: null, // 录入日期
      entryDateStart: undefined,
      entryDateEnd: undefined,
@@ -906,7 +909,7 @@
    form: {
      purchaseContractNumber: "",
      salesLedgerId: "",
      projectName: "",
      // projectName: "",
      recorderId: "",
      entryDate: "",
      productData: [],
@@ -923,9 +926,9 @@
      approverId: [
        { required: true, message: "请选择审批人", trigger: "change" },
      ],
      projectName: [
        { required: true, message: "请输入项目名称", trigger: "blur" },
      ],
      // projectName: [
      //   { required: true, message: "请输入项目名称", trigger: "blur" },
      // ],
      supplierId: [{ required: true, message: "请输入", trigger: "blur" }],
      entryDate: [{ required: true, message: "请选择", trigger: "change" }],
      executionDate: [{ required: true, message: "请选择", trigger: "change" }],
@@ -934,13 +937,9 @@
  const { form, rules } = toRefs(data);
  const { form: searchForm } = useFormData({
    ...data.searchForm,
    // 设置录入日期范围为当天
    entryDate: [
      dayjs().startOf("day").format("YYYY-MM-DD"),
      dayjs().endOf("day").format("YYYY-MM-DD"),
    ],
    entryDateStart: dayjs().startOf("day").format("YYYY-MM-DD"),
    entryDateEnd: dayjs().endOf("day").format("YYYY-MM-DD"),
    entryDate: null,
    entryDateStart: undefined,
    entryDateEnd: undefined,
  });
  // 产品表单弹框数据
@@ -1069,7 +1068,9 @@
  };
  const formattedNumber = (row, column, cellValue) => {
    return parseFloat(cellValue).toFixed(2);
    const val = Number(cellValue ?? 0);
    if (!Number.isFinite(val)) return "0.00";
    return column.property === "taxInclusiveUnitPrice" ? val.toFixed(4) : val.toFixed(2);
  };
  // 查询列表
  /** 搜索按钮操作 */
@@ -1132,7 +1133,7 @@
        supplierId: form.value.supplierId,
        paymentMethod: form.value.paymentMethod,
        recorderId: form.value.recorderId,
        projectName: form.value.projectName,
        // projectName: form.value.projectName,
        approveUserIds: approveUserIds,
        templateName: templateName.value.trim(),
      };
@@ -1264,7 +1265,7 @@
      "taxInclusiveUnitPrice",
      "taxInclusiveTotalPrice",
      "taxExclusiveTotalPrice",
    ]);
    ], { taxInclusiveUnitPrice: { decimalPlaces: 4 } });
  };
  // 打开弹框
  const openForm = async (type, row) => {
@@ -1766,7 +1767,7 @@
        productForm.value.taxInclusiveUnitPrice = (
          Number(productForm.value.taxInclusiveTotalPrice) /
          Number(productForm.value.quantity)
        ).toFixed(2);
        ).toFixed(4);
        // 确保结果不为负数
        if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
          productForm.value.taxInclusiveUnitPrice = "0";
@@ -1807,7 +1808,7 @@
        productForm.value.taxInclusiveUnitPrice = (
          Number(productForm.value.taxInclusiveTotalPrice) /
          Number(productForm.value.quantity)
        ).toFixed(2);
        ).toFixed(4);
        // 确保结果不为负数
        if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
          productForm.value.taxInclusiveUnitPrice = "0";