spring
8 天以前 61449dbf92441b41e37c1d519e8662cca998ff6a
src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -32,6 +32,15 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="生产批号:">
              <el-input
                :model-value="productionBatchDisplay"
                disabled
                placeholder="—"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="指标选择:" prop="testStandardId">
              <el-select
                v-model="form.testStandardId"
@@ -54,11 +63,9 @@
              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="请输入" clearable :precision="2" :disabled="quantityDisabled"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="单位:" prop="unit">
              <el-input v-model="form.unit" placeholder="请输入" disabled/>
            <el-form-item label="料号:" prop="materialCode">
              <el-input v-model="form.materialCode" placeholder="请输入" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -66,13 +73,9 @@
              <el-input v-model="form.defectiveQuantity" placeholder="请输入" clearable/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="不良原因:" prop="defectiveReason">
              <el-select v-model="form.defectiveReason" placeholder="请选择" clearable style="width: 100%">
                <el-option :label="item.label" :value="item.value" v-for="(item,index) in defective_reason" :key="index" />
              </el-select>
            <el-form-item label="单位:" prop="unit">
              <el-input v-model="form.unit" placeholder="请输入" disabled/>
            </el-form-item>
          </el-col>
@@ -81,8 +84,14 @@
              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.qualifiedQuantity" placeholder="请输入" clearable :precision="2" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="不良原因:" prop="defectiveReason">
              <el-select v-model="form.defectiveReason" placeholder="请选择" clearable style="width: 100%">
                <el-option :label="item.label" :value="item.value" v-for="(item,index) in defective_reason" :key="index" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测单位:" prop="checkCompany">
              <el-input v-model="form.checkCompany" placeholder="请输入" clearable/>
@@ -96,14 +105,13 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检验员:" prop="checkName">
                     <el-select v-model="form.checkName" placeholder="请选择" clearable>
                        <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                                        :value="item.nickName"/>
                     </el-select>
              <el-select v-model="form.checkName" placeholder="请选择" clearable>
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                           :value="item.nickName"/>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -167,6 +175,9 @@
    testStandardId: "",
    defectiveReason: undefined,
    unit: "",
    materialCode: "",
    /** 来自生产工单/台账,仅展示 */
    batchNo: "",
    qualifiedQuantity: "",
    quantity: "",
    checkCompany: "",
@@ -190,6 +201,16 @@
const quantityDisabled = computed(() => {
  const v = form.value || {};
  return !!(v.productMainId != null || v.purchaseLedgerId != null);
});
/** 生产批号展示(接口可能为 batchNo 或 productionBatchNo) */
const productionBatchDisplay = computed(() => {
  const f = form.value || {};
  const v = f.batchNo ?? f.productionBatchNo;
  if (v === null || v === undefined || String(v).trim() === "") {
    return "";
  }
  return String(v);
});
const supplierList = ref([]);
const productOptions = ref([]);
@@ -274,7 +295,10 @@
    // 先保存 testStandardId,避免被清空
    const savedTestStandardId = row.testStandardId;
    // 先设置表单数据,但暂时清空 testStandardId,等选项加载完成后再设置
    form.value = {...row, testStandardId: ''}
    form.value = { ...row, testStandardId: "" };
    // 生产批号:与生产工单字段对齐,兼容多种后端字段名
    form.value.batchNo =
      row.batchNo ?? row.productionBatchNo ?? form.value.batchNo ?? "";
    currentProductId.value = row.productId || 0
    // 清空验证状态,避免数据加载过程中的校验闪烁
    nextTick(() => {
@@ -304,6 +328,7 @@
          if (selectedModel) {
            form.value.model = selectedModel.model || '';
            form.value.unit = selectedModel.unit || '';
            form.value.materialCode = selectedModel.materialCode || '';
          }
        }
        
@@ -343,6 +368,7 @@
const getModels = (value) => {
  form.value.productModelId = undefined;
  form.value.unit = undefined;
  form.value.materialCode = undefined;
  modelOptions.value = [];
  currentProductId.value = value
  form.value.productName = findNodeById(productOptions.value, value);
@@ -357,6 +383,7 @@
const handleChangeModel = (value) => {
  form.value.model = modelOptions.value.find(item => item.id == value)?.model || '';
  form.value.unit = modelOptions.value.find(item => item.id == value)?.unit || '';
  form.value.materialCode = modelOptions.value.find(item => item.id == value)?.materialCode || '';
}
const findNodeById = (nodes, productId) => {