3 天以前 8a5fd737f22ff39f045340adc91971bcedd8901b
src/views/qualityManagement/processInspection/components/formDia.vue
@@ -99,6 +99,34 @@
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="合格数量:"
                          prop="qualifiedQuantity">
              <el-input-number :step="0.01"
                               :min="0"
                               style="width: 100%"
                               v-model="form.qualifiedQuantity"
                               placeholder="请输入"
                               clearable
                               :precision="2"
                               @change="handleQualifiedQuantityChange" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="不合格数量:"
                          prop="unqualifiedQuantity">
              <el-input-number :step="0.01"
                               :min="0"
                               style="width: 100%"
                               v-model="form.unqualifiedQuantity"
                               placeholder="请输入"
                               clearable
                               :precision="2"
                               @change="handleUnqualifiedQuantityChange" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="检测单位:"
                          prop="checkCompany">
              <el-input v-model="form.checkCompany"
@@ -114,6 +142,8 @@
                           value="合格" />
                <el-option label="不合格"
                           value="不合格" />
                <el-option label="部分合格"
                           value="部分合格" />
              </el-select>
            </el-form-item>
          </el-col>
@@ -189,6 +219,7 @@
  import { userListNoPage } from "@/api/system/user.js";
  import { qualityInspectParamInfo } from "@/api/qualityManagement/qualityInspectParam.js";
  import { list } from "@/api/productionManagement/productionProcess";
  import qualified from "@/views/inventoryManagement/stockManagement/Qualified.vue";
  const { proxy } = getCurrentInstance();
  const emit = defineEmits(["close"]);
@@ -206,6 +237,8 @@
      testStandardId: "",
      unit: "",
      quantity: "",
      qualifiedQuantity: "",
      unqualifiedQuantity: "",
      checkCompany: "",
      checkResult: "",
    },
@@ -215,11 +248,11 @@
      checkName: [{ required: false, message: "请输入", trigger: "blur" }],
      productId: [{ required: true, message: "请输入", trigger: "blur" }],
      productModelId: [{ required: true, message: "请选择", trigger: "change" }],
      testStandardId: [
        { required: false, message: "请选择指标", trigger: "change" },
      ],
      testStandardId: [{ required: false, message: "请选择指标", trigger: "change" }],
      unit: [{ required: false, message: "请输入", trigger: "blur" }],
      quantity: [{ required: true, message: "请输入", trigger: "blur" }],
      qualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }],
      unqualifiedQuantity: [{ required: true, message: "请输入", trigger: "blur" }],
      checkCompany: [{ required: false, message: "请输入", trigger: "blur" }],
      checkResult: [{ required: true, message: "请输入", trigger: "change" }],
    },
@@ -400,6 +433,28 @@
      modelOptions.value.find(item => item.id == value)?.unit || "";
  };
  const handleQualifiedQuantityChange = (value) => {
    if (value === null || value === undefined) {
      form.value.qualifiedQuantity = 0;
      return;
    }
    const quantity = parseFloat(form.value.quantity) || 0;
    const qualified = parseFloat(value) || 0;
    form.value.qualifiedQuantity = qualified > quantity?quantity:qualified;
    form.value.unqualifiedQuantity = Math.max(0, quantity - qualified);
  };
  const handleUnqualifiedQuantityChange = (value) => {
    if (value === null || value === undefined) {
      form.value.unqualifiedQuantity = 0;
      return;
    }
    const quantity = parseFloat(form.value.quantity) || 0;
    const unqualified = parseFloat(value) || 0;
    form.value.unqualifiedQuantity = unqualified > quantity?quantity:unqualified;
    form.value.qualifiedQuantity = Math.max(0, quantity - unqualified);
  };
  const findNodeById = (nodes, productId) => {
    for (let i = 0; i < nodes.length; i++) {
      if (nodes[i].value === productId) {
@@ -440,6 +495,17 @@
            delete item.id;
          });
        }
        // 确保数量不为null
        const quantity = parseFloat(form.value.quantity) || 0;
        const qualified = parseFloat(form.value.qualifiedQuantity) || 0;
        const unqualified = parseFloat(form.value.unqualifiedQuantity) || 0;
        // 验证数量关系
        if (qualified + unqualified !== quantity) {
          proxy.$modal.msgError("合格数量与不合格数量之和必须等于总数量");
          return;
        }
        const data = {
          ...form.value,
          process: processName, // 保留 process 字段以兼容后端
@@ -520,4 +586,4 @@
</script>
<style scoped>
</style>
</style>