yuan
10 天以前 4a811fb2cd4ee4e1cbfe284bfd1fe3a7d16204ce
src/views/qualityManagement/nonconformingManagement/components/formDia.vue
@@ -44,8 +44,25 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="UID码:" prop="uidNo">
              <el-input v-model="form.uidNo" placeholder="请输入" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="批号:" prop="batchNo" :required="operationType === 'add'">
              <el-input
                v-model="form.batchNo"
                placeholder="请输入"
                clearable
                :disabled="operationType === 'edit'"
              />
            </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="请输入" clearable/>
              <el-input v-model="form.unit" placeholder="请输入" disabled/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -53,8 +70,6 @@
              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="请输入" clearable :precision="2"/>
            </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 style="width: 100%">
@@ -75,8 +90,7 @@
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="不合格现象:" prop="defectivePhenomena">
              <el-input v-model="form.defectivePhenomena" placeholder="请输入" clearable/>
@@ -89,8 +103,7 @@
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="处理人:" prop="dealName">
              <el-select v-model="form.dealName" placeholder="请选择" clearable style="width: 100%">
@@ -124,7 +137,7 @@
</template>
<script setup>
import {ref, reactive, toRefs} from "vue";
import {ref, reactive, toRefs, getCurrentInstance} from "vue";
import {modelList, productTreeList} from "@/api/basicData/product.js";
import {
  getQualityUnqualifiedInfo,
@@ -139,6 +152,19 @@
const dialogFormVisible = ref(false);
const operationType = ref('')
const validateBatchNo = (rule, value, callback) => {
  if (operationType.value !== 'add') {
    callback();
    return;
  }
  if (value === undefined || value === null || String(value).trim() === '') {
    callback(new Error('请输入批号'));
    return;
  }
  callback();
};
const { rejection_handling } = proxy.useDict("rejection_handling")
const data = reactive({
  form: {
@@ -148,6 +174,8 @@
    productName: "",
    productId: "",
    model: "",
    uidNo: "",
    batchNo: "",
    unit: "",
    quantity: "",
    checkCompany: "",
@@ -169,6 +197,7 @@
    checkCompany: [{ required: false, message: "请输入", trigger: "blur" }],
    checkResult: [{ required: false, message: "请输入", trigger: "blur" }],
    dealName: [{ required: true, message: "请选择处理人", trigger: "change" }],
    batchNo: [{ validator: validateBatchNo, trigger: "blur" }],
  },
});
const { form, rules } = toRefs(data);
@@ -198,6 +227,8 @@
      checkTime: '',
      productId: '',
      model: '',
      uidNo: '',
      batchNo: '',
      unit: '',
      quantity: '',
      productName: '',
@@ -213,17 +244,31 @@
    })
  }
}
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.uidNo = modelOptions.value.find(item => item.id == value)?.uidNo || '';
}
const getProductOptions = () => {
  productTreeList().then((res) => {
    productOptions.value = convertIdToValue(res);
  });
};
const getModels = (value) => {
  form.value.model = undefined;
  form.value.unit = undefined;
  form.value.uidNo = undefined;
  form.value.batchNo = "";
  modelOptions.value = [];
  form.value.productName = findNodeById(productOptions.value, value);
  modelList({ id: value }).then((res) => {
    modelOptions.value = res;
  })
};
const findNodeById = (nodes, productId) => {
  for (let i = 0; i < nodes.length; i++) {
    if (nodes[i].value === productId) {