dedsudiyu před 8 měsíci
rodič
revize
b141bc6ab8

+ 29 - 10
src/views/basicsModules/mine.vue

@@ -61,7 +61,7 @@
             <p :class="buttonType == '1'?'bottomColor':''">基本资料</p>
             <p :class="buttonType == '1'?'bottomBack':''"></p>
           </div>
-          <div class="title-button-min-box" @click="buttonTypeClick(2)">
+          <div class="title-button-min-box" @click="buttonTypeClick(2)" v-if="user.userType === 0">
             <p :class="buttonType == '2'?'bottomColor':''">安全设置</p>
             <p :class="buttonType == '2'?'bottomBack':''"></p>
           </div>
@@ -138,7 +138,7 @@
         <div v-if="buttonType == 2">
           <el-form :model="form" ref="form" :inline="true" :rules="rules">
             <div>
-              <el-form-item class="form-item-min" label="原始密码:" prop="oldPassword" label-width="120px">
+              <el-form-item class="form-item-min" label="原始密码:" prop="oldPassword" :validate-event="false" label-width="120px">
                 <el-input
                   maxlength="16"
                   type="password"
@@ -148,7 +148,7 @@
                   size="small"
                 />
               </el-form-item>
-              <el-form-item class="form-item-min" label="新密码:" prop="password" label-width="120px">
+              <el-form-item class="form-item-min" label="新密码:" prop="password" :validate-event="false" label-width="120px">
                 <el-input
                   maxlength="16"
                   type="password"
@@ -158,7 +158,7 @@
                   size="small"
                 />
               </el-form-item>
-              <el-form-item class="form-item-min" label="确认密码:" prop="confirmPassword" label-width="120px">
+              <el-form-item class="form-item-min" label="确认密码:" prop="confirmPassword" :validate-event="false" label-width="120px">
                 <el-input
                   maxlength="16"
                   type="password"
@@ -304,8 +304,12 @@ export default {
       }
     };
     // 不能连续字符(如123、abc)连续3位或3位以上
-    const LxStr = (str) => {
-      let arr = str.split('')
+    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()
@@ -317,6 +321,11 @@ export default {
           flag = false
         }
       }
+      if (result||result2||!flag) {
+        return callback(new Error('不能输入如:123,abc,111,aaa等形式的连续型字符'));
+      }else{
+        callback()
+      }
     }
     return{
       buttonType:'1',
@@ -353,15 +362,25 @@ export default {
         ],
         password: [
           { required: true, message: "新密码不能为空", trigger: "blur" },
-          { min: 8, max: 16, message: "长度在 8 到 16 个字符", trigger: "blur" },
+          { required: true, message: "用户密码不能为空", validator: this.spaceJudgment, trigger: "blur" },
           { required: true, validator: equalToPassword, trigger: "blur" },
-          { required: true, message: "请输入8-16位密码,不能输入纯数字或重复性的密码", validator: validatePass, 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'
+          }
         ],
         confirmPassword: [
           { required: true, message: "确认密码不能为空", trigger: "blur" },
-          { min: 8, max: 16, message: "长度在 8 到 16 个字符", trigger: "blur" },
+          { required: true, message: "用户密码不能为空", validator: this.spaceJudgment, trigger: "blur" },
           { required: true, validator: equalToPasswordTwo, trigger: "blur" },
-          { required: true, message: "请输入8-16位密码,不能输入纯数字或重复性的密码", validator: validatePass, 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'
+          }
         ],
         mobile: [
           { required: true, message: "请输入11位手机号码", trigger: "blur" },

+ 3 - 3
src/views/integratedManagement/personnelManage/studentInfo/index.vue

@@ -108,10 +108,10 @@
                   <el-dropdown-menu slot="dropdown">
                     <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;" :command="{row:scope.row,command:1}"
                                       v-hasPermiRouter="['system:user:edit']">编辑</el-dropdown-item>
-                    <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;" :command="{row:scope.row,command:2}"
+                    <el-dropdown-item style="margin:0 10px;" :command="{row:scope.row,command:2}"
                                       v-hasPermiRouter="['system:user:del']">删除</el-dropdown-item>
-                    <el-dropdown-item style="margin:0 10px;" :command="{row:scope.row,command:3}"
-                                      v-hasPermiRouter="['system:user:reset']">重置密码</el-dropdown-item>
+                    <!--<el-dropdown-item style="margin:0 10px;" :command="{row:scope.row,command:3}"-->
+                                      <!--v-hasPermiRouter="['system:user:reset']">重置密码</el-dropdown-item>-->
                   </el-dropdown-menu>
                 </el-dropdown>
                 <p class="table-button-null"></p>

+ 3 - 3
src/views/integratedManagement/personnelManage/teacherInfo/index.vue

@@ -162,10 +162,10 @@
                       <el-dropdown-menu slot="dropdown">
                         <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;" :command="{row:scope.row,command:1}"
                                           v-hasPermiRouter="['system:user:edit']">编辑</el-dropdown-item>
-                        <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;" :command="{row:scope.row,command:2}"
+                        <el-dropdown-item style="margin:0 10px;" :command="{row:scope.row,command:2}"
                                           v-hasPermiRouter="['system:user:del']">删除</el-dropdown-item>
-                        <el-dropdown-item style="margin:0 10px;" :command="{row:scope.row,command:3}"
-                                          v-hasPermiRouter="['system:user:reset']">重置密码</el-dropdown-item>
+                        <!--<el-dropdown-item style="margin:0 10px;" :command="{row:scope.row,command:3}"-->
+                                          <!--v-hasPermiRouter="['system:user:reset']">重置密码</el-dropdown-item>-->
                       </el-dropdown-menu>
                     </el-dropdown>
                     <p class="table-button-null"></p>

+ 53 - 10
src/views/systemManagement/systemUser/index.vue

@@ -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: [
           {