|
@@ -7,13 +7,25 @@
|
|
|
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="username">
|
|
|
<span slot="label">
|
|
|
用户名称
|
|
|
- <a-tooltip title="用户名称为邮箱格式">
|
|
|
+ <a-tooltip title="用户名称不为邮箱格式且sso中无当前用户时需设置密码">
|
|
|
<a-icon type="question-circle-o" />
|
|
|
</a-tooltip>
|
|
|
</span>
|
|
|
- <a-input v-model="model.username" placeholder="请输入用户名称" :disabled="userDisabled" ></a-input>
|
|
|
+ <a-input v-model="model.username" placeholder="请输入用户名称" :disabled="userDisabled" @blur="handleBlur"></a-input>
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
+ <template v-if="!isEmail">
|
|
|
+ <a-col :span="24">
|
|
|
+ <a-form-model-item label="登录密码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="password">
|
|
|
+ <a-input-password autocomplete="new-password" v-model="model.password" placeholder="请输入登录密码" />
|
|
|
+ </a-form-model-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="24">
|
|
|
+ <a-form-model-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmpassword" >
|
|
|
+ <a-input-password autocomplete="new-password" v-model="model.confirmpassword" @blur="handleConfirmBlur" placeholder="请再次输入登录密码"/>
|
|
|
+ </a-form-model-item>
|
|
|
+ </a-col>
|
|
|
+ </template>
|
|
|
<a-col :span="24">
|
|
|
<a-form-model-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
|
|
|
<a-input v-model="model.remark" placeholder="请输入描述" ></a-input>
|
|
@@ -105,10 +117,20 @@
|
|
|
username: [
|
|
|
{ required: true, message: '请输入用户名称!', },
|
|
|
{ validator: (rule, value, callback) => validateDuplicateValue('interlock_user', 'username', value, this.model.id, callback)},
|
|
|
- {
|
|
|
- pattern: /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/,
|
|
|
- message: '邮箱格式不正确'
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // pattern: /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/,
|
|
|
+ // message: '邮箱格式不正确'
|
|
|
+ // },
|
|
|
+ ],
|
|
|
+ password: [
|
|
|
+ { required: true,
|
|
|
+ // pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
|
|
|
+ message: '密码由8位数字、大小写字母和特殊符号组成!' },
|
|
|
+ { validator: this.validateToNextPassword,trigger: 'change' }
|
|
|
+ ],
|
|
|
+ confirmpassword: [
|
|
|
+ { required: true, message: '请重新输入登录密码!',},
|
|
|
+ { validator: this.compareToFirstPassword,}
|
|
|
],
|
|
|
},
|
|
|
url: {
|
|
@@ -148,6 +170,7 @@
|
|
|
indeterminateManageHeader: false,
|
|
|
viewHeader: false,
|
|
|
indeterminateViewHeader: false,
|
|
|
+ isEmail: true, // 用户是否为邮箱格式
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -164,6 +187,34 @@
|
|
|
this.modelDefault = JSON.parse(JSON.stringify(this.model));
|
|
|
},
|
|
|
methods: {
|
|
|
+ validateToNextPassword (rule, value, callback) {
|
|
|
+ const confirmpassword=this.model.confirmpassword;
|
|
|
+ if (value && confirmpassword && value !== confirmpassword) {
|
|
|
+ callback('两次输入的密码不一样!');
|
|
|
+ }
|
|
|
+ if (value && this.confirmDirty) {
|
|
|
+ this.$refs.form.validateField(['confirmpassword']);
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ },
|
|
|
+ compareToFirstPassword (rule, value, callback) {
|
|
|
+ if (value && value !== this.model.password) {
|
|
|
+ callback('两次输入的密码不一样!');
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleConfirmBlur(e) {
|
|
|
+ const value = e.target.value;
|
|
|
+ this.confirmDirty = this.confirmDirty || !!value
|
|
|
+ },
|
|
|
+ handleBlur(){
|
|
|
+ const emailRegExp = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/
|
|
|
+ if(emailRegExp.test(this.model.username)){
|
|
|
+ // 判断sso中是否有当前账户
|
|
|
+ }
|
|
|
+ this.isEmail = emailRegExp.test(this.model.username)
|
|
|
+ },
|
|
|
// 新增
|
|
|
async add () {
|
|
|
this.confirmLoading = true
|