wl
2022-12-20 58aebf343084d71f0db27287c645c14400f8cb6d
src/views/layout/components/Header/updatePassword/index.vue
@@ -2,16 +2,16 @@
  <div class="createUser">
    <main>
      <div class="mainContent">
        <el-form ref="password" label-width="140px" :rules="passwordRules" autoComplete="on" :model="password"
                 label-position="right">
          <el-form-item class="optionItem" label="当前密码:" prop="oldPassword">
            <el-input type="password" v-model="password.oldPassword" placeholder="请填写当前密码"></el-input>
        <el-form ref="password" label-width="120px" :rules="passwordRules" autoComplete="on" :model="password"
          label-position="right">
          <el-form-item class="optionItem" label="当前密码:" prop="oldPassword" show-password>
            <el-input type="password" v-model="password.oldPassword" placeholder="请填写当前密码" show-password> </el-input>
          </el-form-item>
          <el-form-item class="optionItems" label="新密码:" prop="newPassword">
            <el-input type="password" v-model="password.newPassword" placeholder="请填写新密码"></el-input>
          <el-form-item class="optionItems" label="新密码:" prop="newPassword" show-password>
            <el-input type="password" v-model="password.newPassword" placeholder="请填写新密码" show-password></el-input>
          </el-form-item>
          <el-form-item class="optionItems" label="确定新密码:" prop="confirmPassword">
            <el-input type="password" v-model="password.confirmPassword" placeholder="请再次填写新密码"></el-input>
          <el-form-item class="optionItems" label="确定新密码:" prop="confirmPassword" >
            <el-input type="password" v-model="password.confirmPassword" placeholder="请再次填写新密码" show-password></el-input>
          </el-form-item>
          <el-form-item class="optionItems">
            <el-button type="primary" @click="onSubmit">提交</el-button>
@@ -27,20 +27,12 @@
export default {
  data() {
    const validatePass = (rule, value, callback) => {
      if (!value) {
        callback(new Error("用户密码不能为空"));
      } else {
        if (value.length < 6 || value.length > 16) {
          callback(new Error("用户密码长度不合法"));
        } else {
          const rep = /^\w+$/;
          if (!rep.test(value)) {
            callback(new Error("密码只能是以数字、26个英文字母或者下划线组成的字符串"));
          var rep =/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$/;
          if (!rep.test(value) ) {
            callback(new Error("密码长度8到16位且密码中的字符必须包含字母大写和字母小写和必须包含数字,不能包含空格"));
          } else {
            callback();
          }
        }
      }
    };
    return {
      updatePasswordParam: {
@@ -55,16 +47,16 @@
      },
      passwordRules: {
        newPassword: [
          {required: true, trigger: 'blur', message: '密码不能为空'},
          {validator: validatePass, trigger: 'blur'}
          { required: true, trigger: 'blur', message: '新密码不能为空' },
          { validator: validatePass, trigger: 'blur' }
        ],
        oldPassword: [
          {required: true, trigger: 'blur', message: '新密码不能为空'},
          {validator: validatePass, trigger: 'blur'}
          { required: true, trigger: 'blur', message: '当前密码不能为空' },
          // { validator: validatePass, trigger: 'blur' }
        ],
        confirmPassword: [
          {required: true, trigger: 'blur', message: '新密码不能为空'},
          {validator: validatePass, trigger: 'blur'}
          { required: true, trigger: 'blur', message: '新密码不能为空' },
          { validator: validatePass, trigger: 'blur' }
        ],
      }
    }
@@ -79,22 +71,22 @@
          this.updatePasswordParam.username = sessionStorage.getItem('name');
          this.updatePasswordParam.newPassword = this.password.newPassword;
          users.updatePassword(this.updatePasswordParam)
              .then(() => {
                this.$message.success('修改密码成功, 即将重新登录');
                this.logout();
                location.reload();
              })
              .catch(err => this.$message.error(err))
            .then(() => {
              this.$message.success('修改密码成功, 即将重新登录');
              this.logout();
              location.reload();
            })
            .catch(err => this.$message.error(err))
        }
      })
    }
    ,
    logout() {
      users.logout()
          .then(() => {
            sessionStorage.clear();
          })
          .catch(err => this.$message.error(err))
        .then(() => {
          sessionStorage.clear();
        })
        .catch(err => this.$message.error(err))
    }
  },
}
@@ -161,5 +153,10 @@
    background-color: #09152f;
    border: 1px solid #17324c;
  }
 ::v-deep .el-form-item__error {
  position:unset;
}
}
</style>