From 2d3530a7c11557a40807ad7c0b9e302ce6ce3a9f Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期五, 28 八月 2026 10:16:32 +0800
Subject: [PATCH] feat: 综合业务模块页面重构与交互完善

---
 src/views/qualityManagement/metricMaintenance/ParamFormDialog.vue |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 52 insertions(+), 4 deletions(-)

diff --git a/src/views/qualityManagement/metricMaintenance/ParamFormDialog.vue b/src/views/qualityManagement/metricMaintenance/ParamFormDialog.vue
index 4c958a0..6aed3dd 100644
--- a/src/views/qualityManagement/metricMaintenance/ParamFormDialog.vue
+++ b/src/views/qualityManagement/metricMaintenance/ParamFormDialog.vue
@@ -20,9 +20,23 @@
       <el-form-item label="鍗曚綅" prop="unit">
         <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" />
       </el-form-item>
-      <el-form-item label="鏍囧噯鍊�" prop="standardValue">
+      <el-form-item label="鍙傛暟绫诲瀷" prop="parameterType">
+        <el-radio-group v-model="form.parameterType">
+          <el-radio :label="0">鏂囧瓧</el-radio>
+          <el-radio :label="1">鏁板瓧</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="鏍囧噯鍊�" prop="standardValue" v-if="form.parameterType === 0">
         <el-input v-model="form.standardValue" placeholder="璇疯緭鍏ユ爣鍑嗗��" />
       </el-form-item>
+      <template v-if="form.parameterType === 1">
+        <el-form-item label="鏈�澶у��" prop="maxValue">
+          <el-input-number v-model="form.maxValue" :controls="false" placeholder="璇疯緭鍏ユ渶澶у��" style="width: 100%" />
+        </el-form-item>
+        <el-form-item label="鏈�灏忓��" prop="minValue">
+          <el-input-number v-model="form.minValue" :controls="false" placeholder="璇疯緭鍏ユ渶灏忓��" style="width: 100%" />
+        </el-form-item>
+      </template>
       <el-form-item label="鍐呮帶鍊�" prop="controlValue">
         <el-input v-model="form.controlValue" placeholder="璇疯緭鍏ュ唴鎺у��" />
       </el-form-item>
@@ -52,11 +66,45 @@
 
 const formRef = ref(null)
 
-const rules = {
-  parameterItem: [{ required: true, message: '璇疯緭鍏ュ弬鏁伴」', trigger: 'blur' }],
-  unit: [{ required: true, message: '璇疯緭鍏ュ崟浣�', trigger: 'blur' }]
+const validateMaxValue = (rule, value, callback) => {
+  if (value === undefined || value === null || value === '') {
+    callback(new Error('璇疯緭鍏ユ渶澶у��'))
+  } else if (props.form.minValue !== undefined && props.form.minValue !== null && props.form.minValue !== '' && Number(value) < Number(props.form.minValue)) {
+    callback(new Error('鏈�澶у�间笉鑳藉皬浜庢渶灏忓��'))
+  } else {
+    if (props.form.minValue !== undefined && props.form.minValue !== null && props.form.minValue !== '') {
+      formRef.value?.clearValidate('minValue')
+    }
+    callback()
+  }
 }
 
+const validateMinValue = (rule, value, callback) => {
+  if (value === undefined || value === null || value === '') {
+    callback(new Error('璇疯緭鍏ユ渶灏忓��'))
+  } else if (props.form.maxValue !== undefined && props.form.maxValue !== null && props.form.maxValue !== '' && Number(value) > Number(props.form.maxValue)) {
+    callback(new Error('鏈�灏忓�间笉鑳藉ぇ浜庢渶澶у��'))
+  } else {
+    if (props.form.maxValue !== undefined && props.form.maxValue !== null && props.form.maxValue !== '') {
+      formRef.value?.clearValidate('maxValue')
+    }
+    callback()
+  }
+}
+
+const rules = computed(() => {
+  const baseRules = {
+    parameterItem: [{ required: true, message: '璇疯緭鍏ュ弬鏁伴」', trigger: 'blur' }],
+    unit: [{ required: true, message: '璇疯緭鍏ュ崟浣�', trigger: 'blur' }],
+    parameterType: [{ required: true, message: '璇烽�夋嫨鍙傛暟绫诲瀷', trigger: 'change' }]
+  };
+  if (props.form.parameterType === 1) {
+    baseRules.maxValue = [{ required: true, validator: validateMaxValue, trigger: 'blur' }];
+    baseRules.minValue = [{ required: true, validator: validateMinValue, trigger: 'blur' }];
+  }
+  return baseRules;
+})
+
 const computedTitle = computed(() => (props.operationType === 'edit' ? '缂栬緫鏍囧噯鍙傛暟' : '鏂板鏍囧噯鍙傛暟'))
 
 const handleConfirm = () => {

--
Gitblit v1.9.3