修改密码和再次确认密码的js和element-ui的使用

js 复制代码
<template>
  <div>
    <!-- plan的插槽 -->
    <plan title="修改密码">
      <!-- 插槽的名字 -->
    <span slot="header">修改密码</span>
    <el-form
      :model="ruleForm2"
      status-icon
      :rules="rules2"
      ref="ruleForm2"
      label-width="100px"
      class="demo-ruleForm"
    >
      <el-form-item label="原密码" prop="oldPwd">
        <el-input v-model="ruleForm2.oldPwd"></el-input>
      </el-form-item>

      <el-form-item label="新密码" prop="newPwd">
        <el-input v-model="ruleForm2.newPwd"></el-input>
      </el-form-item>

      <el-form-item label="确认密码" prop="checkPass">
        <el-input v-model="ruleForm2.checkPass"></el-input>
      </el-form-item>

      <el-form-item>
        <el-button type="primary" @click="submitForm()">提交</el-button>
        <el-button @click="resetForm('ruleForm2')">重置</el-button>
      </el-form-item>
    </el-form>
    </plan>
  </div>
</template>

<script>
import { checkoldpwd, editpwd } from "@/api/account.api";
export default {
  data() {
    // 检查旧密码是否正确
    let validatePass = (rule, value, callback) => {
      checkoldpwd(value).then(res => {
        console.log(res);
        if (res.data.code === 200) {
          callback();
        } else {
          callback(new Error("密码不正确"));
        }
      });
    };

    // 检查新密码
    let validateNewpwd = (rule, value, callback) => {
      if (this.ruleForm2.checkPass) {
        this.$refs.ruleForm2.validateField("checkPass");
      }
      callback();
    };
    // 检查两次密码是否一样
    let validateCheckpwd = (rule, value, callback) => {
      if (value === this.ruleForm2.newPwd) {
        callback();
      } else {
        callback(new Error("密码不一"));
      }
    };

    return {
      ruleForm2: {
        oldPwd: "",
        newPwd: "",
        checkPass: ""
      },
      rules2: {
        oldPwd: [
          { required: true, message: "请输入账号", trigger: "blur" },
          { validator: validatePass, trigger: "blur" }
        ],
        newPwd: [
          { required: true, message: "请输入新密码", trigger: "change" },
          { validator: validateNewpwd, trigger: "change" }
        ],
        checkPass: [
          { required: true, message: "请确认密码", trigger: "change" },
          { validator: validateCheckpwd, trigger: "change" }
        ]
      }
    };
  },
  // 提交验证
  methods: {
    submitForm(formName) {
      this.$refs.ruleForm2.validate(valid => {
        if (valid) {
          editpwd(this.ruleForm2.newPwd).then(res => {
            if (res.data.code === 0) {
              this.$router.push("/login");
            }
          });
        }
      });
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    }
  }
};
</script>

<style lang="scss" scoped>
</style>
相关推荐
一 乐6 分钟前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
科技D人生16 分钟前
Vue.js 学习总结(20)—— Vue-Office 实战:word、pdf、excel、ppt 多种文档的在线预览
vue.js·word·vue-pdf·stylesheet·docx-preview·vue-office
vx1_Biye_Design18 分钟前
基于Spring Boot+Vue的学生管理系统设计与实现-计算机毕业设计源码46223
java·vue.js·spring boot·spring·eclipse·tomcat·maven
vx_Biye_Design19 分钟前
基于Spring Boot+vue的湖北旅游景点门票预约平台的设计--毕设附源码29593
java·vue.js·spring boot·spring cloud·servlet·eclipse·课程设计
hedley(●'◡'●)19 分钟前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
qq5_81151751521 分钟前
web城乡居民基本医疗信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
百思可瑞教育21 分钟前
构建自己的Vue UI组件库:从设计到发布
前端·javascript·vue.js·ui·百思可瑞教育·北京百思教育
百锦再21 分钟前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
hdsoft_huge24 分钟前
1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
vue.js·spring boot·后端
这儿有一堆花1 小时前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架