gongchunyi
6 小时以前 b8416f4c7ebf230a92e11c2ef39348fef7e162bd
src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue
@@ -11,6 +11,12 @@
        <el-button type="primary"
                   @click="handleAddMaterialRow">新增</el-button>
      </div>
      <el-alert v-if="!materialTableLoading && bomRowCount === 0"
                type="warning"
                :closable="false"
                show-icon
                style="margin-bottom: 12px"
                title="当前订单没有可领料的BOM物料:请确认BOM结构已维护,并在工序管理中将需要领料的工序开启“是否领料”" />
      <el-table v-loading="materialTableLoading"
                :data="materialTableData"
                border
@@ -190,6 +196,8 @@
  const materialTableLoading = ref(false);
  const materialSaving = ref(false);
  const materialTableData = ref([]);
  // BOM中标记了“是否领料”的物料行数,为0时提示先去工序管理开启领料标记
  const bomRowCount = ref(0);
  const selectedMaterialRows = ref([]);
  const purchaseLedgerDialogVisible = ref(false);
  const purchaseLedgerAddDialogRef = ref(null);
@@ -302,6 +310,8 @@
      const detailList = Array.isArray(detailRes?.data)
        ? detailRes.data
        : detailRes?.data?.records || [];
      // 后端只返回工序已标记“是否领料”的BOM物料,行数为0时给出操作提示
      bomRowCount.value = bomList.length;
      // 按“工序+原料”汇总历史领料:已领数量、退料数量
      const pickedMap = new Map();
@@ -405,6 +415,7 @@
    materialTableData.value = [];
    selectedMaterialRows.value = [];
    currentMaterialSelectRowIndex.value = -1;
    bomRowCount.value = 0;
  };
  // 按型号汇总所有批次的原料可用库存余量,并记录每个批号对应的库存数量