修改密码完整功能

修改密码完整功能

结构

<el-dropdown @command="userAction">
          <span class="userInfo">{{ username }}</span>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item command="修改密码">修改密码</el-dropdown-item>
            <el-dropdown-item command="退出">退出</el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
    <el-dialog
      title="修改密码"
      :visible.sync="dialogEdit"
      :append-to-body="true"
      width="30%"
    >
      <el-form :model="form" ref="form" :rules="rule">
        <el-form-item>
          <el-col :span="24">
            <el-form-item
              label="原始密码:"
              prop="originalpassword"
              label-width="110px"
            >
              <el-input
                v-model="form.originalpassword"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-form-item>
        <el-form-item>
          <el-col :span="24">
            <el-form-item label="新密码:" prop="password" label-width="110px">
              <el-input
                maxlength="10"
                minlength="3"
                v-model="form.password"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-form-item>
        <el-form-item>
          <el-col :span="24">
            <el-form-item
              label="确认新密码:"
              prop="checkPassword"
              label-width="110px"
            >
              <el-input
                maxlength="10"
                minlength="3"
                v-model="form.checkPassword"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-form-item>
        <el-form-item style="text-align: center">
          <el-col :span="24">
            <el-button @click="resetForm('form')">取消</el-button>
            <el-button type="primary" @click="submitForm('form')"
              >提交</el-button
            >
          </el-col>
        </el-form-item>
      </el-form>
    </el-dialog>

js

export default{
  data(){
      var validatePass = (rule, value, callback) => {
      var pass = /^(?=.*?[a-z)(?=.*>[A-Z])(?=.*?[0-9])[a-zA_Z0-9]{8,10}$/gi;
      if (!pass.test(value)) {
        callback(new Error("请输入8-10位英文和数字组成的密码"));
      } else {
        if (this.form.checkPassword !== "") {
          this.$refs.form.validateField("checkPassword");
        }
        callback();
      }
    };
    var validatePass2 = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请再次输入新密码"));
      } else if (value !== this.form.password) {
        callback(new Error("两次输入密码不一致!"));
      } else {
        callback();
      }
    };
    return{
       form: {
        originalpassword: "", //原始密码
        password: "", //新密码
        checkPassword: "", //确认密码
      },
      rule: {
        originalpassword: [
          { required: true, message: "请输入原始密码", trigger: "blur" },
          // { validator: validateoriginalPass, trigger: "blur" },
        ],
        password: [
          { required: true, message: "请输入新密码", trigger: "blur" },
          { validator: validatePass, trigger: "blur" },
        ],
        checkPassword: [
          { required: true, message: "请再次输入新密码", trigger: "blur" },
          { validator: validatePass2, trigger: "blur" },
        ],
      },
    }

  },
  methods:{
     userAction(type) {
      if (type === "退出") {
        this.$router.push({ path: "/" });
        sessionStorage.removeItem("token");
        sessionStorage.removeItem("user");
      } else if (type == "修改密码") {
        console.log("修改密码");
        this.dialogEdit = true;
        this.title = "修改密码";
        this.form = {
          originalpassword: "", //原始密码
          password: "",//新密码
          checkPassword: "",//确认密码
        };
      }
    },
   submitForm(formName) {
      this.$refs[formName].validate(async (valid) => {
        if (valid) {
          let userSecurityInputDTO = {
            account: this.$store.getters.account,
            newPassword: this.form.password,
            oldPassword: this.form.originalpassword,
          };
          const res = await changePasswordFn(userSecurityInputDTO);
          console.log(res, "res");
          if (res.data.code == 200) {
            this.$message.success("修改成功!");
            this.dialogEdit = false;
          } else {
            this.$message.error(res.msg);
          }
        }
      });
    },
    resetForm(formName) {
      this.dialogEdit = false;
      this.$refs[formName].resetFields();
    },
  }
}
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值