From f56e474c81bb25845b46cf99c85bd313dbfcd3b5 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期六, 31 一月 2026 19:26:25 +0800
Subject: [PATCH] 项目初始化+首页+公告详情页面

---
 src/utils/ruleGenerator.js |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/src/utils/ruleGenerator.js b/src/utils/ruleGenerator.js
new file mode 100644
index 0000000..a7a9c7a
--- /dev/null
+++ b/src/utils/ruleGenerator.js
@@ -0,0 +1,97 @@
+//琛ㄥ崟鏍¢獙瑙勫垯
+
+export const ruleGenerator = {
+  // 蹇呭~瀛楁
+  required(message = '姝ゅ瓧娈典负蹇呭~椤�') {
+    return { required: true, message, trigger: 'blur' }
+  },
+  
+  // 闀垮害闄愬埗
+  length(min, max, fieldName = '') {
+    const message = fieldName 
+      ? `${fieldName}闀垮害搴斿湪${min}鍒�${max}涓瓧绗︿箣闂碻
+      : `闀垮害搴斿湪${min}鍒�${max}涓瓧绗︿箣闂碻
+    
+    return { 
+      validator: (rule, value, callback) => {
+        if (!value || (value.length >= min && value.length <= max)) {
+          callback()
+        } else {
+          callback(new Error(message))
+        }
+      }, 
+      trigger: 'blur' 
+    }
+  },
+  
+  // 鎵嬫満鍙烽獙璇�
+  phone() {
+    return {
+      validator: (rule, value, callback) => {
+        const reg = /^1[3-9]\d{9}$/
+        if (!value || reg.test(value)) {
+          callback()
+        } else {
+          callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙风爜'))
+        }
+      },
+      trigger: ['blur', 'change']
+    }
+  },
+  //楠岃瘉鐮侀獙璇�
+  code() {
+    return {
+      validator: (rule, value, callback) => {
+        const reg = /^\d{4}$/
+        if (!value || reg.test(value)) {
+          callback()
+        } else {
+          callback(new Error('璇疯緭鍏ユ纭殑楠岃瘉鐮�'))
+        }
+      },
+      trigger: ['blur', 'change']
+    }
+  },
+  password() {
+    return {
+      validator: (rule, value, callback) => {
+        const reg = /^\d{6}$/
+        if (!value || reg.test(value)) {
+          callback()
+        } else {
+          callback(new Error('瀵嗙爜鏍煎紡涓�6涓瓧绗�'))
+        }
+      },
+      trigger: ['blur', 'change']
+    }
+  },
+
+  // 澶氶�夋楠岃瘉
+  checkbox(message) {
+    return { 
+      validator: (rule, value, callback) => {
+        if (!value) {
+          callback(new Error(message));
+        } else {
+          callback();
+        }
+      }, 
+      trigger: 'change' 
+    }
+  },
+
+  // 閭楠岃瘉
+  email() {
+    return {
+      validator: (rule, value, callback) => {
+        const reg = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
+        if (!value || reg.test(value)) {
+          callback()
+        } else {
+          callback(new Error('璇疯緭鍏ユ纭殑閭鍦板潃'))
+        }
+      },
+      trigger: 'blur'
+    }
+  }
+}
\ No newline at end of file

--
Gitblit v1.8.0