diff --git a/frontend/src/views/system/user/UserEditer.vue b/frontend/src/views/system/user/UserEditer.vue index 08d0d571c9..e3cf2b0a13 100644 --- a/frontend/src/views/system/user/UserEditer.vue +++ b/frontend/src/views/system/user/UserEditer.vue @@ -261,12 +261,7 @@ export default { message: this.$t('commons.input_limit', [1, 50]), trigger: 'blur' }, - { - required: true, - pattern: '^[a-zA-Z][a-zA-Z0-9\._-]*$', - message: this.$t('user.user_name_pattern_error'), - trigger: 'blur' - } + { required: true, validator: this.validateUsername, trigger: 'blur' } ], nickName: [ { @@ -418,6 +413,16 @@ export default { callback() } }, + validateUsername(rule, value, callback) { + const pattern = '^[a-zA-Z][a-zA-Z0-9\._-]*$' + const regep = new RegExp(pattern) + if (!regep.test(value) && this.formType === 'add') { + const msg = this.$t('user.user_name_pattern_error') + callback(new Error(msg)) + } else { + callback() + } + }, create() { this.formType = 'add' this.form = Object.assign({}, JSON.parse(JSON.stringify(this.defaultForm)))