From d5e65bf5925c8cd1fe0f0bf0b8b857006d64ad94 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 一月 2026 15:26:34 +0800
Subject: [PATCH] 进销存升级 1.部分输入框(有效日期、检定周期)输入做下限制(大于0的整数数字)

---
 src/views/equipmentManagement/measurementEquipment/components/formDia.vue        |   51 +++++++++++++++++++++++++
 src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue |   55 ++++++++++++++++++++++++++-
 2 files changed, 102 insertions(+), 4 deletions(-)

diff --git a/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue b/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
index b5c1ea1..b7fa07e 100644
--- a/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
+++ b/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
@@ -51,11 +51,14 @@
 						</el-form-item>
 					</el-col>
 					<el-col :span="12">
-						<el-form-item label="鏈夋晥鏈燂細" prop="valid">
+						<el-form-item label="鏈夋晥鏃ユ湡(澶�)锛�" prop="valid">
 							<el-input
 								v-model="form.valid"
-								placeholder="璇疯緭鍏�"
+								type="number"
+								placeholder="璇疯緭鍏ユ湁鏁堟湡澶╂暟"
 								clearable
+								:min="1"
+								@input="handleValidInput"
 							>
 								<template #append>鏃�</template>
 							</el-input>
@@ -152,7 +155,32 @@
 	rules: {
 		code: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
 		name: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-		valid: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
+		valid: [
+			{required: true, message: "璇疯緭鍏�", trigger: "blur"},
+			{
+				validator: (rule, value, callback) => {
+					if (value === '' || value === null || value === undefined) {
+						callback();
+						return;
+					}
+					const numValue = Number(value);
+					if (isNaN(numValue)) {
+						callback(new Error('璇疯緭鍏ユ湁鏁堢殑鏁板瓧'));
+						return;
+					}
+					if (numValue <= 0) {
+						callback(new Error('鍙兘杈撳叆姝f暟'));
+						return;
+					}
+					if (!Number.isInteger(numValue)) {
+						callback(new Error('璇疯緭鍏ユ暣鏁�'));
+						return;
+					}
+					callback();
+				},
+				trigger: 'blur'
+			}
+		],
 		recordDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
 		userId: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
 		entryDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
@@ -233,6 +261,27 @@
 	}
 }
 
+// 澶勭悊鏈夋晥鏃ユ湡杈撳叆锛屽彧鍏佽姝f暣鏁�
+const handleValidInput = (value) => {
+	if (value === '' || value === null || value === undefined) {
+		form.value.valid = '';
+		return;
+	}
+	// 杞崲涓哄瓧绗︿覆骞剁Щ闄ゆ墍鏈夐潪鏁板瓧瀛楃锛堝寘鎷礋鍙枫�佸皬鏁扮偣绛夛級
+	const numStr = String(value).replace(/[^0-9]/g, '');
+	if (numStr === '') {
+		form.value.valid = '';
+		return;
+	}
+	const numValue = parseInt(numStr, 10);
+	// 纭繚鏄鏁存暟锛堝ぇ浜�0锛�
+	if (numValue > 0 && !isNaN(numValue)) {
+		form.value.valid = numValue;
+	} else {
+		form.value.valid = '';
+	}
+}
+
 const submitForm = () => {
 	proxy.$refs["formRef"].validate(valid => {
 		if (valid) {
diff --git a/src/views/equipmentManagement/measurementEquipment/components/formDia.vue b/src/views/equipmentManagement/measurementEquipment/components/formDia.vue
index d2a1969..8a1e302 100644
--- a/src/views/equipmentManagement/measurementEquipment/components/formDia.vue
+++ b/src/views/equipmentManagement/measurementEquipment/components/formDia.vue
@@ -74,8 +74,11 @@
             <el-form-item label="鏈夋晥鏃ユ湡(澶�)锛�" prop="valid">
               <el-input
                   v-model="form.valid"
+                  type="number"
                   placeholder="璇疯緭鍏ユ湁鏁堟湡澶╂暟"
                   clearable
+                  :min="1"
+                  @input="handleValidInput"
               >
               <template #append>鏃�</template>
               </el-input>
@@ -192,7 +195,32 @@
     instationLocation: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
     mostDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
     cycle: [{required: true, message: "璇烽�夋嫨", trigger: "blur"}],
-    valid: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
+    valid: [
+      {required: true, message: "璇疯緭鍏�", trigger: "blur"},
+      {
+        validator: (rule, value, callback) => {
+          if (value === '' || value === null || value === undefined) {
+            callback();
+            return;
+          }
+          const numValue = Number(value);
+          if (isNaN(numValue)) {
+            callback(new Error('璇疯緭鍏ユ湁鏁堢殑鏁板瓧'));
+            return;
+          }
+          if (numValue <= 0) {
+            callback(new Error('鍙兘杈撳叆姝f暟'));
+            return;
+          }
+          if (!Number.isInteger(numValue)) {
+            callback(new Error('璇疯緭鍏ユ暣鏁�'));
+            return;
+          }
+          callback();
+        },
+        trigger: 'blur'
+      }
+    ],
     unit: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
 	}
 })
@@ -254,6 +282,27 @@
 	}
 }
 
+// 澶勭悊鏈夋晥鏃ユ湡杈撳叆锛屽彧鍏佽姝f暣鏁�
+const handleValidInput = (value) => {
+	if (value === '' || value === null || value === undefined) {
+		form.value.valid = '';
+		return;
+	}
+	// 杞崲涓哄瓧绗︿覆骞剁Щ闄ゆ墍鏈夐潪鏁板瓧瀛楃锛堝寘鎷礋鍙枫�佸皬鏁扮偣绛夛級
+	const numStr = String(value).replace(/[^0-9]/g, '');
+	if (numStr === '') {
+		form.value.valid = '';
+		return;
+	}
+	const numValue = parseInt(numStr, 10);
+	// 纭繚鏄鏁存暟锛堝ぇ浜�0锛�
+	if (numValue > 0 && !isNaN(numValue)) {
+		form.value.valid = numValue;
+	} else {
+		form.value.valid = '';
+	}
+}
+
 const submitForm = () => {
 	proxy.$refs["formRef"].validate(valid => {
 		if (valid) {

--
Gitblit v1.9.3