gaoluyang
2026-06-22 4ee8bafa6b4742b72628511e0b14fbfeec7737e6
src/views/procurementManagement/procurementLedger/index.vue
@@ -4,6 +4,14 @@
      <div>
        <el-form :model="searchForm"
                 :inline="true">
          <el-form-item label="总合同号:">
            <el-input v-model="searchForm.masterContractNo"
                      style="width: 240px"
                      placeholder="请输入"
                      @change="handleQuery"
                      clearable
                      :prefix-icon="Search" />
          </el-form-item>
          <el-form-item label="供应商名称:">
            <el-input v-model="searchForm.supplierName"
                      placeholder="请输入"
@@ -77,7 +85,7 @@
        <el-button @click="handleOut">导出</el-button>
        <el-button type="danger"
                   plain
                   @click="handleDelete">删除
                   @click="handleDelete" v-hasPermi="['procurementManagement:procurementLedger:remove']">删除
        </el-button>
      </div>
      <el-table :data="tableData"
@@ -201,6 +209,10 @@
                         label="序号"
                         type="index"
                         width="60" />
        <el-table-column label="总合同号"
                         prop="masterContractNo"
                         width="150"
                         show-overflow-tooltip />
        <el-table-column label="采购合同号"
                         prop="purchaseContractNumber"
                         width="160"
@@ -228,17 +240,17 @@
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column label="入库状态"
                         prop="stockInStatus"
                         width="100"
                         show-overflow-tooltip>
          <template #default="scope">
            <el-tag :type="getStockInStatusType(scope.row.stockInStatus)"
                    size="small">
              {{ scope.row.stockInStatus || '--' }}
            </el-tag>
          </template>
        </el-table-column>
<!--        <el-table-column label="入库状态"-->
<!--                         prop="stockInStatus"-->
<!--                         width="100"-->
<!--                         show-overflow-tooltip>-->
<!--          <template #default="scope">-->
<!--            <el-tag :type="getStockInStatusType(scope.row.stockInStatus)"-->
<!--                    size="small">-->
<!--              {{ scope.row.stockInStatus || '&#45;&#45;' }}-->
<!--            </el-tag>-->
<!--          </template>-->
<!--        </el-table-column>-->
        <el-table-column label="签订日期"
                         prop="executionDate"
                         width="100"
@@ -271,8 +283,7 @@
          <template #default="scope">
            <el-button link
                       type="primary"
                       @click="openForm('edit', scope.row)"
                       :disabled="scope.row.stockInStatus === '完全入库'">编辑
                       @click="openForm('edit', scope.row)">编辑
            </el-button>
            <el-button link
                       type="primary"
@@ -299,6 +310,15 @@
               label-position="top"
               :rules="rules"
               ref="formRef">
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="总合同号:">
              <el-input v-model="form.masterContractNo"
                        placeholder="请输入"
                        clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="采购合同号:"
@@ -352,9 +372,16 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="付款方式">
              <el-input v-model="form.paymentMethod"
                        placeholder="请输入"
                        clearable />
              <el-select v-model="form.paymentMethod"
                         placeholder="请选择"
                         clearable
                         style="width: 100%">
                <el-option label="现金" value="现金" />
                <el-option label="电汇" value="电汇" />
                <el-option label="微信" value="微信" />
                <el-option label="支付宝" value="支付宝" />
                <el-option label="支票" value="支票" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -402,10 +429,12 @@
          <el-form-item label="产品信息:"
                        prop="entryDate">
            <el-button type="primary"
                       v-if="form.approvalStatus !== 3"
                       @click="openProductForm('add')">添加
            </el-button>
            <el-button plain
                       type="danger"
                       v-if="form.approvalStatus !== 3"
                       @click="deleteProduct">删除
            </el-button>
          </el-form-item>
@@ -563,7 +592,7 @@
              <el-button link
                         type="primary"
                         @click="openProductForm('edit', scope.row, scope.$index)"
                         :disabled="scope.row.stockInApprovalStatus === '完全入库'">编辑
                         :disabled="form.approvalStatus === 3">编辑
              </el-button>
            </template>
          </el-table-column>
@@ -1051,6 +1080,7 @@
      supplierName: "", // 供应商名称
      purchaseContractNumber: "", // 采购合同编号
      salesContractNo: "", // 销售合同编号
      masterContractNo: "", // 总合同号
      projectName: "", // 项目名称
      entryDate: null, // 录入日期
      entryDateStart: undefined,
@@ -1060,6 +1090,7 @@
      purchaseContractNumber: "",
      salesLedgerId: "",
      projectName: "",
      masterContractNo: "",
      recorderId: "",
      entryDate: "",
      productData: [],
@@ -1438,13 +1469,6 @@
  };
  // 打开弹框
  const openForm = async (type, row) => {
    // 编辑时检查入库状态,完全入库时不能编辑
    if (type === "edit" && row) {
      if (row.stockInStatus === "完全入库") {
        proxy.$modal.msgWarning("完全入库状态的记录不能编辑");
        return;
      }
    }
    await getTemplateList();
    await userListNoPage().then(res => {
@@ -1615,9 +1639,9 @@
  };
  // 打开产品弹框
  const openProductForm = async (type, row, index) => {
    // 编辑时检查产品入库审核状态,完全入库时不能编辑
    if (type === "edit" && row && row.stockInApprovalStatus === "完全入库") {
      proxy.$modal.msgWarning("完全入库状态的产品不能编辑");
    // 审批通过时不能编辑产品信息
    if (type === "edit" && form.value.approvalStatus === 3) {
      proxy.$modal.msgWarning("审批通过的记录不能编辑产品信息");
      return;
    }
@@ -1864,14 +1888,6 @@
  const deleteProduct = () => {
    if (productSelectedRows.value.length === 0) {
      proxy.$modal.msgWarning("请选择数据");
      return;
    }
    // 检查选中的产品中是否有完全入库的
    const hasFullyStocked = productSelectedRows.value.some(
      row => row.stockInApprovalStatus === "完全入库"
    );
    if (hasFullyStocked) {
      proxy.$modal.msgWarning("选中的产品中包含完全入库的产品,无法删除");
      return;
    }
    if (operationType.value === "add") {