ll
liukangdong
2024-10-18 e6acb39a2475e211f2c1decc45a95c868239c25f
admin/src/components/common/CommonHeader.vue
@@ -119,7 +119,8 @@
            { required: true, message: '请输入原始密码' }
          ],
          newPwd: [
            { required: true, message: '请输入新密码' }
          { required: true, message: '请输入密码', trigger: 'blur' },
          { validator: this.validatePassword, trigger: 'blur' },
          ],
          confirmPwd: [
            { required: true, message: '请再次输入新密码' }
@@ -133,6 +134,10 @@
    // title () {
    //   return this.$route.meta.title
    // }
  },
  mounted() {
    console.log('userInfo',this.userInfo);
  },
  filters: {
    // 展示名称
@@ -154,6 +159,26 @@
      this.$nextTick(() => {
        this.$refs.changePwdDataForm.resetFields()
      })
    },
    validatePassword(rule, value, callback) {
      if (!value) {
        callback(new Error('请输入密码'));
      } else {
        const lengthValid = /^.{6,20}$/.test(value);
        const hasLetter = /[a-zA-Z]/.test(value);
        const hasNumber = /[0-9]/.test(value);
        const hasSpecial = /[!@#$%^&*(),.?":{}|<>]/.test(value);
        const typesCount = [hasLetter, hasNumber, hasSpecial].filter(Boolean).length;
        if (!lengthValid) {
          callback(new Error('密码长度需为6到20个字符'));
        } else if (typesCount < 2) {
          callback(new Error('密码需包含字母、数字及特殊字符中的至少两种'));
        } else {
          callback(); // 验证通过
        }
      }
    },
    getHeaderNav(type){
      getAppHeaderNav(type).then(res => {
@@ -277,6 +302,7 @@
    background: url("../../assets/images/top_ic_bolang@2x.png") no-repeat;
    flex-shrink: 0;
    text-align: right;
    cursor: pointer;
    .el-dropdown {
      top: 2px;
      color: #fff;