spring
17 小时以前 5f94854ed49ce166eeb0a6651b2a421222bea367
src/views/productionManagement/workOrder/index.vue
@@ -173,6 +173,13 @@
               label-width="120px">
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="产品名称">
              <el-input v-model="reportForm.productName"
                        readonly
                        style="width: 300px" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="待生产数量">
              <el-input v-model="reportForm.planQuantity"
                        readonly
@@ -212,18 +219,6 @@
                    @input="handleScrapQtyInput" />
        </el-form-item></el-col>
        <el-col :span="12">
          <el-form-item label="检品数量"
                      prop="inspectedQuantity">
          <el-input v-model.number="reportForm.inspectedQuantity"
                    type="number"
                    min="0"
                    step="1"
                    style="width: 300px"
                    placeholder="请输入检品数量"
                    @input="handleInspectedQuantity"/>
        </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="班组信息">
          <el-select v-model="reportForm.userId"
                     style="width: 300px"
@@ -262,6 +257,8 @@
            <el-table-column prop="productName" label="产品名称" min-width="160" />
            <el-table-column prop="model" label="型号" min-width="150" />
            <el-table-column prop="unit" label="单位" width="90" align="center" />
            <el-table-column prop="customer" label="供应商" min-width="160" show-overflow-tooltip />
            <el-table-column prop="batchNo" label="批号" min-width="180" show-overflow-tooltip />
            <el-table-column prop="reportQty" label="领用数量" width="160" align="center">
              <template #default="{ row }">
                <el-input-number
@@ -269,8 +266,8 @@
                  :min="0"
                  :precision="2"
                  :controls="false"
                  :max="row.qualitity || 0"
                  :disabled="!row.qualitity"
                  :max="row.requisitionQty || 0"
                  :disabled="!row.requisitionQty"
                  style="width: 100%"
                />
              </template>
@@ -300,7 +297,7 @@
    <el-dialog
      v-model="addMaterialDialogVisible"
      title="选择原材料"
      width="1000px"
      width="1400px"
      top="5vh"
      :close-on-click-modal="false"
      append-to-body
@@ -320,7 +317,9 @@
          <el-table-column prop="productName" label="产品名称" min-width="160" />
          <el-table-column prop="model" label="型号" min-width="150" />
          <el-table-column prop="unit" label="单位" width="90" align="center" />
          <el-table-column prop="qualitity" label="可领用数量" width="140" align="center" />
          <el-table-column prop="customer" label="供应商" min-width="160" show-overflow-tooltip />
          <el-table-column prop="batchNo" label="批号" min-width="180" show-overflow-tooltip />
          <el-table-column prop="requisitionQty" label="可领用数量" width="140" align="center" />
        </el-table>
        <!-- 已选择明细展示放在报工弹框下方的 reportForm.drawMaterialList 表格里 -->
@@ -488,6 +487,8 @@
  const userOptions = ref([]);
  const deviceOptions = ref([]);
  const reportForm = reactive({
    // 报工弹框里“产品名称”只读回显
    productName: "",
    planQuantity: 0,
    totalInvestment: 0,
    quantity: null,
@@ -618,7 +619,6 @@
  const handleQuantityInput = value => {
    if (value === "" || value === null || value === undefined) {
      reportForm.quantity = null;
      reportForm.scrapQty = null;
      return;
    }
    const num = Number(value);
@@ -627,29 +627,17 @@
    }
    if (num < 1) {
      reportForm.quantity = null;
      reportForm.scrapQty = null;
      return;
    }
    if (!Number.isInteger(num)) {
      const intValue = Math.floor(num);
      if (intValue < 1) {
        reportForm.quantity = null;
        reportForm.scrapQty = null;
        return;
      }
      reportForm.quantity = intValue;
    } else {
      reportForm.quantity = num;
    }
    // 如果 totalInvestment 有值,自动计算 scrapQty = totalInvestment - quantity
    if (reportForm.totalInvestment !== null && reportForm.totalInvestment !== undefined && reportForm.totalInvestment !== "") {
      const total = Number(reportForm.totalInvestment);
      const qty = Number(reportForm.quantity);
      if (total > qty) {
        reportForm.scrapQty = total - qty;
      } else {
        reportForm.scrapQty = null;
      }
    }
  };
@@ -914,6 +902,8 @@
  const showReportDialog = async row => {
    currentReportRowData.value = row;
    processParamList.value = await getProcessParamList(row)
    // 兼容后端/表格字段命名:优先 row.productName,其次 row.productCategory
    reportForm.productName = row.productName ?? row.productCategory ?? ''
    reportForm.planQuantity = row.planQuantity;
    reportForm.totalInvestment = row.totalInvestment;
    reportForm.quantity =