123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <template>
- <div class="forget">
- <div class="content">
- <div @click="goBack">X</div>
- <!-- 头部logo -->
- <div class="header">
- <img src="@/assets/logo-home.png" />
- </div>
- <!-- 主体 -->
- <div class="main">
- <wInput
- type="text"
- maxlength="11"
- placeholder="用户名/电话"
- v-model="phoneData"
- ></wInput>
- <wInput
- type="password"
- maxlength="11"
- placeholder="登录密码"
- v-model="passData"
- ></wInput>
- <wInput
- type="number"
- v-model="verCode"
- maxlength="4"
- placeholder="验证码1234"
- isShowCode
- ref="codeRef"
- @setCode="getVerCode()"
- ></wInput>
- </div>
- <wButton
- text="重置密码"
- :rotate="isRotate"
- @click.native="startForget"
- ></wButton>
- </div>
- </div>
- </template>
- <script>
- import wInput from "@/components/watch-login/watch-input.vue"; //input
- import wButton from "@/components/watch-login/watch-button.vue"; //button
- import { forget } from "@/api/login.js";
- import { Toast } from "vant";
- export default {
- data() {
- return {
- phoneData: "", //电话
- passData: "", //密码
- verCode: "", //验证码
- isRotate: false //是否加载旋转
- };
- },
- methods: {
- goBack() {
- this.$router.go(-1);
- },
- getVerCode() {
- //获取验证码
- if (this.phoneData.length != 11) {
- Toast("手机号不正确");
- return false;
- }
- console.log("获取验证码");
- this.$refs.runCode.$emit("runCode"); //触发倒计时(一般用于请求成功验证码后调用)
- setTimeout(() => {
- this.$refs.runCode.$emit("runCode", 0); //假装模拟下需要 终止倒计时
- }, 60000);
- },
- async startForget() {
- //注册
- if (this.isRotate) {
- //判断是否加载中,避免重复点击请求
- return false;
- }
- if (this.phoneData.length != 11) {
- Toast("手机号不正确");
- return false;
- }
- if (this.passData.length < 6) {
- Toast("密码长度最少六位");
- return false;
- }
- if (this.verCode !== "1234") {
- Toast("验证码不正确");
- return false;
- }
- this.isRotate = true;
- try {
- await forget({ userName: this.phoneData, password: this.passData });
- Toast("重置密码成功");
- this.isRotate = false;
- this.goBack();
- } catch (error) {
- console.log(error);
- this.isRotate = false;
- }
- }
- },
- components: {
- wInput,
- wButton
- }
- };
- </script>
- <style>
- @import url("../components/watch-login/css/icon.css");
- @import url("../assets/css/main.css");
- </style>
|