Browse Source

联络人通讯录添加正则校验

Luka 1 month ago
parent
commit
3c720b3e79

+ 1 - 1
.env.development

@@ -15,7 +15,7 @@ VITE_APP_AES_KY = cgRUqDDXqUiySqib
 VITE_APP_TOKEN =  6617e72a5a7e41eb6c30aa4fa3000022
 
 # 开发接口地址
-VITE_APP_API_URL = "http://f4c888ec.natappfree.cc"
+VITE_APP_API_URL = "http://106.75.213.212:8080/"
 
 # 是否在打包时开启压缩,支持 gzip 和 brotli
 VITE_BUILD_COMPRESS = gzip

BIN
public/favicon.ico


+ 2 - 2
src/permission.ts

@@ -68,7 +68,7 @@ router.beforeEach((to, from, next) => {
 	} else {
 		// TODO 暂时使用 待联调登陆的时候删除
 		setToken(
-			'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJEZDdhT3JWSkxOWHBjUXFmWXVqQjRLWWlmaVJ0ZGJ5cSIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCIsImRlcHRDYXRlZ29yeSI6IiJ9.ewmlCaJqd6bzIeFCUX7ebOfDilhC0Qd6fRQjembIpoQ'
+			'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJkbWs2R2l0bzRrSHBCYTFZZnA2OHA4Q2VPbVhIYUFybCIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6IjEwMyIsImRlcHROYW1lIjoi56CU5Y-R6YOo6ZeoIiwiZGVwdENhdGVnb3J5IjoiIn0.j89Ch2S2Z9jxdcpKZwzco_zrHElx-yhZ_JkQoPgky6w'
 		);
 		next();
 		// 没有token
@@ -118,7 +118,7 @@ router.beforeEach((to, from, next) => {
 				}
 				next();
 			});
-		} else if (process.env.NODE_ENV === 'production') {
+		} else if (process.env.NODE_ENV === 'pr222oduction') {
 			// 单点登录
 			if (to.fullPath.includes('manage')) {
 				next('/login');

+ 72 - 2
src/views/notificationInfoManage/addressBook/config/detail.config.ts

@@ -9,8 +9,78 @@ const modalConfig = {
 		contactName: [{ required: true, message: '请输入联络人名称', trigger: 'change' }],
 		belongsDept: [{ required: true, message: '请选择所属部门', trigger: 'change' }],
 		position: [{ required: true, message: '请选择所属职位', trigger: 'change' }],
-		contactNumber: [{ required: true, message: '请输入联络电话', trigger: 'change' }],
+		contactNumber: [
+			{ required: true, message: '输入正确的联系电话', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					const digits = (val || '').replace(/\D/g, '');
+					if (!/^1[3-9]\d{9}$/.test(digits)) {
+						cb(new Error('请输入正确的 11 位联系电话'));
+					} else {
+						cb();
+					}
+				},
+				trigger: 'blur',
+			},
+		],
 		msgRecipient: [{ required: true, message: '请选择短信接收人', trigger: 'change' }],
+		wxNumber: [
+			{ required: false, message: '请输入正确的微信号', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					if (!/^[a-zA-Z0-9_-]{6,20}$/.test(val.trim())) {
+						cb(new Error('微信号只能为字母、数字、下划线或减号,且6-20位'));
+					} else {
+						cb();
+					}
+				},
+				trigger: 'blur',
+			},
+		],
+		fixedTelephone: [
+			{ required: false, message: '请输入正确的固定电话', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					const digits = val.replace(/\D/g, '');
+					if (!/^\d{10,12}$/.test(digits)) {
+						// 区号+号码 10~12 位
+						return cb(new Error('固定电话格式错误'));
+					}
+					cb();
+				},
+				trigger: 'blur',
+			},
+		],
+		email: [
+			{ required: false, message: '请输入正确的电子邮箱', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					if (!/^[\w.-]+@[\w.-]+\.\w+$/.test(val.trim())) {
+						return cb(new Error('电子邮箱格式错误'));
+					}
+					cb();
+				},
+				trigger: 'blur',
+			},
+		],
+		faxNumber: [
+			{ required: false, message: '请输入正确的传真号', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					const digits = val.replace(/\D/g, '');
+					if (!/^\d{10,12}$/.test(digits)) {
+						// 区号+号码 10~12 位
+						return cb(new Error('传真号格式错误'));
+					}
+					cb();
+				},
+				trigger: 'blur', // 失焦再校验,不打断输入
+			},
+		],
 	},
 	pageListParams: {
 		industryType: '1',
@@ -71,7 +141,7 @@ const modalConfig = {
 		{
 			label: '联系电话',
 			prop: 'contactNumber',
-			type: 'number',
+			type: 'input',
 			placeholder: '请输入联系电话',
 		},
 		{

+ 71 - 1
src/views/notificationInfoManage/addressBook/config/detail.nonIndustry.config.ts

@@ -9,7 +9,77 @@ const modalConfig = {
 		contactName: [{ required: true, message: '请输入联络人名称', trigger: 'change' }],
 		belongsDept: [{ required: true, message: '请选择所属部门', trigger: 'change' }],
 		position: [{ required: true, message: '请选择所属职位', trigger: 'change' }],
-		contactNumber: [{ required: true, message: '请输入联络电话', trigger: 'change' }],
+		contactNumber: [
+			{ required: true, message: '输入正确的联系电话', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					const digits = (val || '').replace(/\D/g, '');
+					if (!/^1[3-9]\d{9}$/.test(digits)) {
+						cb(new Error('请输入正确的 11 位联系电话'));
+					} else {
+						cb();
+					}
+				},
+				trigger: 'blur',
+			},
+		],
+		wxNumber: [
+			{ required: false, message: '请输入正确的微信号', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					if (!/^[a-zA-Z0-9_-]{6,20}$/.test(val.trim())) {
+						cb(new Error('微信号只能为字母、数字、下划线或减号,且6-20位'));
+					} else {
+						cb();
+					}
+				},
+				trigger: 'blur',
+			},
+		],
+		fixedTelephone: [
+			{ required: false, message: '请输入正确的固定电话', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					const digits = val.replace(/\D/g, '');
+					if (!/^\d{10,12}$/.test(digits)) {
+						// 区号+号码 10~12 位
+						return cb(new Error('固定电话格式错误'));
+					}
+					cb();
+				},
+				trigger: 'blur',
+			},
+		],
+		email: [
+			{ required: false, message: '请输入正确的电子邮箱', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					if (!/^[\w.-]+@[\w.-]+\.\w+$/.test(val.trim())) {
+						return cb(new Error('电子邮箱格式错误'));
+					}
+					cb();
+				},
+				trigger: 'blur',
+			},
+		],
+		faxNumber: [
+			{ required: false, message: '请输入正确的传真号', trigger: 'change' },
+			{
+				validator: (_, val, cb) => {
+					if (!val) return cb(); // 允许空
+					const digits = val.replace(/\D/g, '');
+					if (!/^\d{10,12}$/.test(digits)) {
+						// 区号+号码 10~12 位
+						return cb(new Error('传真号格式错误'));
+					}
+					cb();
+				},
+				trigger: 'blur', // 失焦再校验,不打断输入
+			},
+		],
 	},
 	pageListParams: {
 		industryType: '2',

+ 1 - 0
src/views/notificationInfoManage/notificationListManage/components/detail.vue

@@ -143,6 +143,7 @@
 										<el-select
 											v-model="formData[item.prop]"
 											:placeholder="item.placeholder"
+											filterable
 											style="width: 100%"
 											:disabled="item.disabled"
 										>