src/views/system/modules/PasswordModal.vue
@@ -31,6 +31,7 @@
<script>
  import {changePassword} from '@/api/api'
  import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
  export default {
    name: "PasswordModal",
@@ -71,6 +72,13 @@
        form:this.$form.createForm(this)
      }
    },
    watch:{
      visible:{
        handler(value){
          if(value) this.initDictData('password_length')
        }
      }
    },
    created () {
      console.log("created");
    },
@@ -97,11 +105,17 @@
            this.confirmLoading = true;
            let formData = Object.assign(this.model, values);
            changePassword(formData).then((res)=>{
              if(res.success){
                this.$message.success(res.message);
              if(res.success){;
                this.$notification.success({
                  message:'消息',
                  description:res.message
                });
                this.$emit('ok');
              }else{
                this.$message.warning(res.message);
                this.$notification.warning({
                  message:'消息',
                  description:res.message
                });
              }
            }).finally(() => {
              this.confirmLoading = false;
@@ -136,7 +150,20 @@
      handleConfirmBlur  (e) {
        const value = e.target.value
        this.confirmDirty = this.confirmDirty || !!value
      }
      },
      initDictData(dictCode) {
        //根据字典Code, 初始化字典数组
        ajaxGetDictItems(dictCode, null).then((res) => {
          if (res.success) {
            const regExp = new RegExp("^(?=.*[a-zA-Z])(?=.*\\\d)(?=.*[~!@#$%^&*()_+`\\-={}:\";'<>?,./]).{"+Number(res.result[0].value)+",}$");
            this.validatorRules.password.rules[0]={
              required:true,
              pattern: regExp,
              message: `密码由${res.result[0].value}位数字、大小写字母和特殊符号组成!`,
            }
          }
        })
      },
    }
  }
</script>