zhaowei
7 天以前 008245cbe95c63a80f9a255378a5ffbe25d15085
src/components/tools/UserPassword.vue
@@ -31,14 +31,13 @@
          label="确认新密码">
          <a-input type="password" @blur="handleConfirmBlur" placeholder="请确认新密码" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
        </a-form-item>
      </a-form>
    </a-spin>
  </a-modal>
</template>
<script>
  import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
  import { putAction } from '@/api/manage'
  export default {
@@ -55,13 +54,17 @@
              required: true, message: '请输入旧密码!',
            }],
          },
          password:{
            rules: [{
              required: true, message: '请输入新密码!',
            }, {
              validator: this.validateToNextPassword,
            }],
          },
          // password:{
          //   rules: [{
          //     required: true, message: '请输入新密码!',trigger:'blur'
          //   }, {
          //     validator: this.validateToNextPassword,
          //   },
          //     {
          //       pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
          //       message: '密码由8位数字、大小写字母和特殊符号组成!',
          //     }],
          // },
          confirmpassword:{
            rules: [{
              required: true, message: '请确认新密码!',
@@ -85,6 +88,13 @@
        username:"",
      }
    },
    watch:{
      visible:{
        handler(value){
          if(value) this.initDictData('password_length')
        }
      }
    },
    methods: {
      show(uname){
        if(!uname){
@@ -95,6 +105,18 @@
          this.form.resetFields();
          this.visible = true;
        }
      },
      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[2]={
              pattern: regExp,
              message: `密码由${res.result[0].value}位数字、大小写字母和特殊符号组成!`,
            }
          }
        })
      },
      handleCancel () {
        this.close()
@@ -110,20 +132,24 @@
        // 触发表单验证
        this.form.validateFields((err, values) => {
          if (!err) {
            that.confirmLoading = true;
            let params = Object.assign({username:this.username},values)
            console.log("修改密码提交数据",params)
            putAction(this.url,params).then((res)=>{
              if(res.success){
                console.log(res)
                that.$message.success(res.message);
                that.close();
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
            })
            if(values.oldpassword!==values.confirmpassword){
              that.confirmLoading = true;
              let params = Object.assign({username:this.username},values)
              console.log("修改密码提交数据",params)
              putAction(this.url,params).then((res)=>{
                if(res.success){
                  console.log(res)
                  that.$message.success(res.message);
                  that.close();
                }else{
                  that.$message.warning(res.message);
                }
              }).finally(() => {
                that.confirmLoading = false;
              })
            }else{
              that.$message.warning('新密码与旧密码不能相同');
            }
          }
        })
      },