gongchunyi
2 天以前 5b8460a455366ef69ecc93b35fa6426ec5795950
fix: 领料数量小数点调整到8位
已修改3个文件
96 ■■■■ 文件已修改
src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
@@ -21,28 +21,34 @@
                         prop="batchNo"
                         min-width="150" />
        <el-table-column label="需求数量"
                         prop="demandedQuantity"
                         min-width="110" />
                         min-width="110">
          <template #default="{ row }">
            {{ stripTrailingZeros(row.demandedQuantity) }}
          </template>
        </el-table-column>
        <el-table-column label="计量单位"
                         prop="unit"
                         width="100" />
        <el-table-column label="领用数量"
                         prop="pickQuantity"
                         min-width="110" />
                         min-width="110">
          <template #default="{ row }">
            {{ stripTrailingZeros(row.pickQuantity) }}
          </template>
        </el-table-column>
        <el-table-column label="补料数量"
                         min-width="120">
          <template #default="{ row }">
            <el-button type="primary"
                       link
                       @click="handleViewSupplementRecord(row)">
              {{ row.feedingQty ?? 0 }}
              {{ stripTrailingZeros(row.feedingQty) ?? 0 }}
            </el-button>
          </template>
        </el-table-column>
        <el-table-column label="退料数量"
                         min-width="110">
          <template #default="{ row }">
            {{ row.returnQty ?? 0 }}
            {{ stripTrailingZeros(row.returnQty) ?? 0 }}
          </template>
        </el-table-column>
        <el-table-column label="实际数量"
@@ -50,10 +56,11 @@
          <template #default="{ row }">
            <el-input-number v-model="row.actualQty"
                             :min="0"
                             :precision="3"
                             :step="1"
                             controls-position="right"
                             placeholder="输入实际数量"
                             :formatter="value => stripTrailingZeros(value)"
                             :parser="value => parseFloat(value) || 0"
                             style="width: 100%;"
                             :disabled="row.returned || orderRow?.end"
                             @change="val => handleActualQtyChange(row, val)" />
@@ -115,8 +122,11 @@
                         prop="unit"
                         min-width="100" />
        <el-table-column label="退料汇总数量"
                         prop="returnQtyTotal"
                         min-width="140" />
                         min-width="140">
          <template #default="{ row }">
            {{ stripTrailingZeros(row.returnQtyTotal) }}
          </template>
        </el-table-column>
      </el-table>
      <template #footer>
        <span class="dialog-footer">
@@ -139,6 +149,14 @@
    updateMaterialPickingLedger,
  } from "@/api/productionManagement/productionOrder.js";
  const stripTrailingZeros = val => {
    const str = String(val ?? "");
    if (str.includes(".")) {
      return parseFloat(str).toString();
    }
    return str;
  };
  const props = defineProps({
    modelValue: { type: Boolean, default: false },
    orderRow: { type: Object, default: null },
src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue
@@ -2,7 +2,7 @@
  <div>
    <el-dialog v-model="dialogVisible"
               title="领料台账"
               width="1200px"
               width="1350px"
               @close="handleClose">
      <div class="material-toolbar">
        <el-button type="primary"
@@ -13,7 +13,7 @@
                border
                row-key="tempId">
        <el-table-column label="工序名称"
                         min-width="140">
                         min-width="80">
          <template #default="{ row }">
            <span v-if="row.bom === true">{{ row.operationName || "-" }}</span>
            <el-select v-else
@@ -31,7 +31,7 @@
          </template>
        </el-table-column>
        <el-table-column label="原料名称"
                         min-width="140">
                         min-width="120">
          <template #default="{ row }">
            <span v-if="row.bom === true">{{ row.materialName || "-" }}</span>
            <el-button v-else
@@ -43,7 +43,7 @@
          </template>
        </el-table-column>
        <el-table-column label="原料型号"
                         min-width="140">
                         min-width="120">
          <template #default="{ row }">
            {{ row.materialModel || "-" }}
          </template>
@@ -66,21 +66,22 @@
          </template>
        </el-table-column>
        <el-table-column label="需求数量"
                         min-width="120">
                         min-width="100">
          <template #default="{ row }">
            <span v-if="row.bom === true">{{ row.demandedQuantity ?? "-" }}</span>
            <span v-if="row.bom === true">{{ stripTrailingZeros(row.demandedQuantity) ?? "-" }}</span>
            <el-input-number v-else
                             v-model="row.demandedQuantity"
                             :min="0"
                             :precision="3"
                             :step="1"
                             controls-position="right"
                             :formatter="value => stripTrailingZeros(value)"
                             :parser="value => parseFloat(value) || 0"
                             style="width: 100%;"
                             @change="val => handleRequiredQtyChange(row, val)" />
          </template>
        </el-table-column>
        <el-table-column label="计量单位"
                         width="100">
                         width="80">
          <template #default="{ row }">
            {{ row.unit || "-" }}
          </template>
@@ -90,9 +91,10 @@
          <template #default="{ row }">
            <el-input-number v-model="row.pickQty"
                             :min="0"
                             :precision="3"
                             :step="1"
                             controls-position="right"
                             :formatter="value => stripTrailingZeros(value)"
                             :parser="value => parseFloat(value) || 0"
                             style="width: 100%;" />
          </template>
        </el-table-column>
@@ -270,6 +272,14 @@
    }
  );
  const stripTrailingZeros = val => {
    const str = String(val);
    if (str.includes(".")) {
      return parseFloat(str).toString();
    }
    return str;
  };
  const handleClose = () => {
    materialTableData.value = [];
    currentMaterialSelectRowIndex.value = -1;
src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue
@@ -20,23 +20,33 @@
                       prop="unit"
                       width="100" />
      <el-table-column label="需求数量"
                       prop="demandedQuantity"
                       width="100" />
                       min-width="100">
        <template #default="{ row }">
          {{ stripTrailingZeros(row.demandedQuantity) }}
        </template>
      </el-table-column>
      <el-table-column label="领用数量"
                       prop="pickQuantity"
                       width="100" />
                       min-width="100">
        <template #default="{ row }">
          {{ stripTrailingZeros(row.pickQuantity) }}
        </template>
      </el-table-column>
      <el-table-column label="已补数量"
                       prop="feedingQty"
                       width="100" />
                       min-width="100">
        <template #default="{ row }">
          {{ stripTrailingZeros(row.feedingQty) }}
        </template>
      </el-table-column>
      <el-table-column label="补料数量"
                       min-width="150">
        <template #default="{ row }">
          <el-input-number v-model="row.newSupplementQty"
                           :min="0"
                           :precision="3"
                           :step="1"
                           controls-position="right"
                           placeholder="输入补料数量"
                           :formatter="value => stripTrailingZeros(value)"
                           :parser="value => parseFloat(value) || 0"
                           style="width: 100%;" />
        </template>
      </el-table-column>
@@ -69,6 +79,14 @@
    updateMaterialPickingLedger,
  } from "@/api/productionManagement/productionOrder.js";
  const stripTrailingZeros = val => {
    const str = String(val ?? "");
    if (str.includes(".")) {
      return parseFloat(str).toString();
    }
    return str;
  };
  const props = defineProps({
    modelValue: { type: Boolean, default: false },
    orderRow: { type: Object, default: null },