Parcourir la source

feat: 表单key 正则校验字母+数字

luoyali il y a 1 an
Parent
commit
314bdd27d9

+ 3 - 0
src/components/packages/formEditor/components/Panels/Config/index.vue

@@ -59,6 +59,9 @@ const validator = (rule, value, callback) => {
       case 2:
         callback(new Error(t('er.validateMsg.idUnique')))
         break
+			case 3:
+				callback(new Error(t('er.validateMsg.chartAndNumber')))
+				break
     }
   }
   if (props.mode === 'editor') {

+ 7 - 0
src/components/packages/formEditor/index.vue

@@ -103,6 +103,13 @@ state.validator = (target, fn) => {
 			_.find(state.validateStates, { data: { key: target.key } }).isWarning = true
 			fn && fn(0)
 			return false
+		} else {
+			const regex = /^[A-Za-z0-9]+$/g // 字母+数字
+			if (!newValue.match(regex)) {
+				_.find(state.validateStates, { data: { key: target.key } }).isWarning = true
+				fn && fn(3)
+				return false
+			}
 		}
 		state.validateStates.forEach(e => {
 			if (count[e.data.key] > 1) {

+ 1 - 0
src/components/packages/formEditor/locale/en.js

@@ -213,6 +213,7 @@ export default {
       http: 'Please enter the valid Url',
       fileSize: 'File size cannot exceed <%= size %> MB',
       idUnique: 'ID must be unique',
+			chartAndNumber: 'Only characters and Numbers',
       placeholder1: 'Please enter',
       placeholder2: 'Please select'
     },

+ 1 - 0
src/components/packages/formEditor/locale/zh-cn.js

@@ -213,6 +213,7 @@ export default {
       http: '请输入正确的网址',
       fileSize: '文件大小不能超过 <%= size %> MB',
       idUnique: '字段标识重复',
+			chartAndNumber: '字母数字组合',
       placeholder1: '请输入',
       placeholder2: '请选择'
     },

+ 4 - 0
test.js

@@ -0,0 +1,4 @@
+const modelContent = "{\"key\":\"123\",\"name\":\"121\",\"nodeConfig\":{\"nodeName\":\"发起人\",\"type\":0,\"nodeRoleList\":[],\"childNode\":{\"nodeName\":\"审核人\",\"type\":1,\"setType\":4,\"nodeAssigneeList\":[],\"examineLevel\":1,\"directorLevel\":1,\"selectMode\":1,\"termAuto\":false,\"term\":0,\"termMode\":1,\"examineMode\":1,\"approveSelf\":0,\"directorMode\":0,\"typeOfApprover\":\"1\",\"extendConfig\":{\"formConfig\":[{\"label\":\"邮箱\",\"id\":1715156358510,\"opera\":\"0\"},{\"label\":\"手机号\",\"id\":1715156366206,\"opera\":\"2\"},{\"label\":\"人员\",\"id\":1715237919813,\"opera\":\"1\"},{\"label\":\"单选框\",\"id\":1715237925345,\"opera\":\"1\"}]},\"childNode\":{\"nodeName\":\"审核人1\",\"type\":1,\"setType\":2,\"nodeAssigneeList\":[],\"examineLevel\":1,\"directorLevel\":1,\"selectMode\":1,\"termAuto\":false,\"term\":0,\"termMode\":1,\"examineMode\":1,\"approveSelf\":0,\"directorMode\":0,\"childNode\":{\"nodeName\":\"抄送人\",\"type\":2,\"allowSelection\":true,\"nodeAssigneeList\":[{\"id\":\"0\",\"name\":\"CEO\"}]},\"typeOfApprover\":\"1\",\"extendConfig\":{\"formConfig\":[{\"label\":\"邮箱\",\"id\":1715156358510,\"opera\":\"0\"},{\"label\":\"手机号\",\"id\":1715156366206,\"opera\":\"2\"},{\"label\":\"人员\",\"id\":1715237919813,\"opera\":\"1\"},{\"label\":\"单选框\",\"id\":1715237925345,\"opera\":\"1\"}]}}}}}"
+
+const i = JSON.parse(modelContent)
+console.log(i);