yuan
5 天以前 09ce99b6d33ec58d462da5b5fd65927d7ef98f60
src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -116,6 +116,44 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测单位:" prop="checkCompany">
              <el-input v-model="form.checkCompany" placeholder="请输入" clearable/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测结果:" prop="checkResult">
              <el-select v-model="form.checkResult">
                <el-option label="合格" value="合格" />
                <el-option label="不合格" value="不合格" />
              </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-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测日期:" prop="checkTime">
              <el-date-picker
                  v-model="form.checkTime"
                  type="date"
                  placeholder="请选择日期"
                  value-format="YYYY-MM-DD"
                  format="YYYY-MM-DD"
                  clearable
                  style="width: 100%"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="6">
            <el-form-item label="检验用粉剂/液情况:" prop="inspectMaterialConditionId">
              <el-tree-select
                  v-model="form.inspectMaterialConditionId"
@@ -129,7 +167,15 @@
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
          <el-col :span="6">
            <el-form-item label="规格型号:" prop="inspectProductModelId">
              <el-select v-model="form.inspectProductModelId" placeholder="请选择" clearable
                         filterable readonly @change="handleChangeModels">
                <el-option v-for="item in inspectProductModel" :key="item.id" :label="item.model" :value="item.id" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="批号(新):" prop="inspectBatchNo">
              <el-select
                  v-model="form.inspectBatchNo"
@@ -148,64 +194,14 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="规格型号:" prop="inspectProductModelId">
              <el-select v-model="form.inspectProductModelId" placeholder="请选择" clearable
                         filterable readonly @change="handleChangeModels">
                <el-option v-for="item in inspectProductModel" :key="item.id" :label="item.model" :value="item.id" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
          <el-col :span="6">
            <el-form-item label="生产日期(新):" prop="inspectProductionDate">
              <el-input v-model="form.inspectProductionDate" placeholder="自动带出" disabled/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
          <el-col :span="6">
            <el-form-item label="有效期(新):" prop="inspectValidityDate">
              <el-input v-model="form.inspectValidityDate" placeholder="自动计算" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检测单位:" prop="checkCompany">
              <el-input v-model="form.checkCompany" placeholder="请输入" clearable/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测结果:" prop="checkResult">
              <el-select v-model="form.checkResult">
                <el-option label="合格" value="合格" />
                <el-option label="不合格" value="不合格" />
              </el-select>
            </el-form-item>
          </el-col>
          <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-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测日期:" prop="checkTime">
              <el-date-picker
                  v-model="form.checkTime"
                  type="date"
                  placeholder="请选择日期"
                  value-format="YYYY-MM-DD"
                  format="YYYY-MM-DD"
                  clearable
                  style="width: 100%"
              />
            </el-form-item>
          </el-col>
        </el-row>
@@ -506,9 +502,14 @@
          // 编辑场景保留已有检验值,直接拉取原参数数据
          getQualityInspectParamList(row.id);
        });
        // 编辑模式下,加载检验用粉剂/液相关数据
        loadInspectMaterialData();
      });
    } else {
      getQualityInspectParamList(row.id);
      // 即使没有主产品,也尝试加载检验用粉剂/液数据
      loadInspectMaterialData();
    }
  }
}
@@ -656,31 +657,45 @@
  }
};
// 加载检验用粉剂/液情况相关数据(编辑模式回显用)
const loadInspectMaterialData = () => {
  // 如果有检验用粉剂/液产品ID,加载对应的规格型号
  if (form.value.inspectMaterialConditionId) {
    modelList({ id: form.value.inspectMaterialConditionId }).then((res) => {
      inspectProductModel.value = res || [];
      // 如果有规格型号ID,加载批号列表
      if (form.value.inspectProductModelId && inspectProductModel.value.length > 0) {
        const selectedModel = inspectProductModel.value.find(item => item.id == form.value.inspectProductModelId);
        if (selectedModel) {
          form.value.inspectProductModel = selectedModel.model || '';
        }
        // 根据规格型号查询批号列表
        getStockInventoryListPage({
          model: form.value.inspectProductModel,
          pageNum: 1,
          pageSize: -1
        }).then((res) => {
          inspectBatchOptions.value = res.data.records || [];
        });
      }
    });
  }
};
// 选择检验用粉剂/液情况后,根据产品ID查询库存批号列表
const handleInspectMaterialChange = (productId) => {
  inspectBatchOptions.value = [];
  form.value.inspectBatchNo = "";
  form.value.inspectProductModel = "";
  form.value.inspectProductModelId = "";
  form.value.inspectProductionDate = "";
  form.value.inspectValidityDate = "";
  form.value.inspectValidityPeriod = "";
  // let productName = findNodeById(productOptions.value, productId);
  form.value.inspectMaterialCondition = findNodeById(productOptions.value, productId);
  modelList({ id: productId }).then((res) => {
    inspectProductModel.value = res;
  })
  /*getStockInventoryListPage({
    productName: productName,
    pageNum: 1,
    pageSize: -1
  }).then(res => {
    inspectBatchOptions.value = res.data || []
    // 清空已选择的批号和新字段
    form.value.inspectBatchNo = "";
    form.value.inspectProductModel = "";
    form.value.inspectProductionDate = "";
    form.value.inspectValidityDate = "";
  });*/
};
const handleChangeModels = (value) => {
@@ -691,13 +706,12 @@
    pageNum: 1,
    pageSize: -1
  }).then(res => {
    inspectBatchOptions.value = res.data || []
    inspectBatchOptions.value = res.data.records || []
    // 清空已选择的批号和新字段
    form.value.inspectBatchNo = "";
    form.value.inspectProductionDate = "";
    form.value.inspectValidityDate = "";
  });
  if (form.value.productionDate) {
    calculateInspectValidityDate();
  }
@@ -713,7 +727,7 @@
  const selectedModel = inspectProductModel.value.find(item => item.id == form.value.inspectProductModelId);
  if (selectedModel && selectedModel.validityPeriod) {
    const inspectProductionDate = new Date(form.value.inspectProductionDate);
    const validityPeriod = parseFloat(selectedModel.inspectValidityDate);
    const validityPeriod = parseFloat(selectedModel.validityPeriod);
    const validityDate = new Date(inspectProductionDate);
    validityDate.setFullYear(validityDate.getFullYear() + Math.floor(validityPeriod));
    validityDate.setMonth(validityDate.getMonth() + Math.round((validityPeriod % 1) * 12));