|
@@ -229,13 +229,15 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<!--修改密码-->
|
|
|
- <el-dialog title="修改密码" :visible.sync="reviseOpen" width="600px" append-to-body class="teacher-revise-dialog-box">
|
|
|
+ <el-dialog title="修改密码" :visible.sync="reviseOpen" v-if="reviseOpen" width="600px" append-to-body class="teacher-revise-dialog-box">
|
|
|
<el-form :model="passwordForm" ref="passwordForm" :inline="true" :rules="rules" class="addCheckPage-min">
|
|
|
<el-form-item label="新密码" prop="password" label-width="110px" >
|
|
|
- <el-input type="password" v-model="passwordForm.password" clearable maxlength="20" style="width:420px;" placeholder="请输入新密码"/>
|
|
|
+ <el-input type="password" v-model="passwordForm.password" :validate-event="false"
|
|
|
+ clearable maxlength="20" style="width:420px;" placeholder="请输入新密码"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="确认新密码" prop="newPassword" label-width="110px">
|
|
|
- <el-input type="password" v-model="passwordForm.newPassword" clearable maxlength="20" style="width:420px;" placeholder="请确认新密码"/>
|
|
|
+ <el-form-item label="确认新密码" prop="newPassword" label-width="110px" style="margin-top: 15px;">
|
|
|
+ <el-input type="password" v-model="passwordForm.newPassword" :validate-event="false"
|
|
|
+ clearable maxlength="20" style="width:420px;" placeholder="请确认新密码"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<!--<p class="teacher-text-p">确定要重置该账号的密码吗?</p>-->
|
|
@@ -268,12 +270,43 @@ export default {
|
|
|
components: { Treeselect },
|
|
|
data() {
|
|
|
const equalToPassword = (rule, value, callback) => {
|
|
|
+ if (this.passwordForm.newPassword !== value) {
|
|
|
+ callback(new Error("两次输入的密码不一致"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const equalToPasswordTwo = (rule, value, callback) => {
|
|
|
if (this.passwordForm.password !== value) {
|
|
|
callback(new Error("两次输入的密码不一致"));
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
|
};
|
|
|
+ // 不能连续字符(如123、abc)连续3位或3位以上
|
|
|
+ const LxStr = (rule, value, callback) => {
|
|
|
+ const regex = /([a-zA-Z])\1{2}/;
|
|
|
+ const regex2 = /(\d)\1{2}/;
|
|
|
+ const result = value.match(regex);
|
|
|
+ const result2 = value.match(regex2);
|
|
|
+ let arr = value.split('')
|
|
|
+ let flag = true
|
|
|
+ for (let i = 1; i < arr.length - 1; i++) {
|
|
|
+ let firstIndex = arr[i - 1].charCodeAt()
|
|
|
+ let secondIndex = arr[i].charCodeAt()
|
|
|
+ let thirdIndex = arr[i + 1].charCodeAt()
|
|
|
+ thirdIndex - secondIndex == 1
|
|
|
+ secondIndex - firstIndex == 1
|
|
|
+ if ((thirdIndex - secondIndex == 1) && (secondIndex - firstIndex == 1)) {
|
|
|
+ flag = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (result||result2||!flag) {
|
|
|
+ return callback(new Error('不能输入如:123,abc,111,aaa等形式的连续型字符'));
|
|
|
+ }else{
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
return {
|
|
|
tableButtonType:this.hasPermiDom(['system:user:edit','system:user:detail','system:user:del','system:user:reset']),
|
|
|
// 身份
|
|
@@ -381,14 +414,24 @@ export default {
|
|
|
{ required: true, message: "用户名不能为空", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
],
|
|
|
password: [
|
|
|
- { required: true, message: "用户密码不能为空", trigger: "blur" },
|
|
|
- { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' },
|
|
|
- { required: true, message: "用户密码不能为空", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
+ { required: true, message: "用户密码不能为空",trigger :"blur"},
|
|
|
+ { required: true, message: "用户密码不能为空", validator: this.spaceJudgment,trigger :"blur"},
|
|
|
+ { required: true, validator: equalToPassword,trigger :"blur"},
|
|
|
+ { required: true, message: "不能输入如:123,abc,111,aaa等形式的连续型字符", validator: LxStr,trigger :"blur"},
|
|
|
+ {
|
|
|
+ pattern: /^(?=(?:.*[A-Z]){1})(?=(?:.*[a-z]){1})(?=(?:.*[0-9]){1})(?=(?:.*[!@#*?&]){1})(?!(.)\1)(.{10,16})$/,
|
|
|
+ message: '密码长度最少10位 最多16位,必须同时包含一个大写字母、一个小写字母、一个数字和一个特殊字符!@#*?&',trigger :"blur"
|
|
|
+ }
|
|
|
],
|
|
|
newPassword: [
|
|
|
- { required: true, message: "确认新密码不能为空", trigger: "blur" },
|
|
|
- { min: 5, max: 20, message: '确认新密码长度必须介于 5 和 20 之间', trigger: 'blur' },
|
|
|
- { required: true, validator: equalToPassword, trigger: "blur" }
|
|
|
+ { required: true, message: "确认新密码不能为空",trigger :"blur"},
|
|
|
+ { required: true, message: "用户密码不能为空", validator: this.spaceJudgment,trigger :"blur"},
|
|
|
+ { required: true, validator: equalToPasswordTwo,trigger :"blur"},
|
|
|
+ { required: true, message: "不能输入如:123,abc,111,aaa等形式的连续型字符", validator: LxStr,trigger :"blur"},
|
|
|
+ {
|
|
|
+ pattern: /^(?=(?:.*[A-Z]){1})(?=(?:.*[a-z]){1})(?=(?:.*[0-9]){1})(?=(?:.*[!@#*?&]){1})(?!(.)\1)(.{10,16})$/,
|
|
|
+ message: '密码长度最少10位 最多16位,必须同时包含一个大写字母、一个小写字母、一个数字和一个特殊字符!@#*?&',trigger :"blur"
|
|
|
+ }
|
|
|
],
|
|
|
email: [
|
|
|
{
|