From 4b4622c9f74150ca60eb7c4f038e55fb98be02d7 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期五, 06 五月 2022 16:34:32 +0800 Subject: [PATCH] 修改密码:v1 --- src/permission.js | 2 src/views/login/pwdChange.vue | 174 +++++++++++++++++++++++++++++++++++++++++++ src/api/user.js | 9 ++ src/router/index.js | 6 + src/views/login/components/login-form.vue | 8 + 5 files changed, 197 insertions(+), 2 deletions(-) diff --git a/src/api/user.js b/src/api/user.js index da92fd9..268dd5c 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -244,3 +244,12 @@ data }) } + + +export function pwdChange(data) { + return request({ + url: process.env.BASE_API + '/pwd-change', + method: 'post', + data + }) +} diff --git a/src/permission.js b/src/permission.js index 3e68d61..e5247a6 100644 --- a/src/permission.js +++ b/src/permission.js @@ -17,7 +17,7 @@ return roles.some(role => permissionRoles.indexOf(role) >= 0) } -const whiteList = ['/login', '/auth-redirect','/agreement','/register','/productionEquipment','/instrumentData','/equipmentAlarm'] // no redirect whitelist +const whiteList = ['/login','/pwdChange', '/auth-redirect','/agreement','/register','/productionEquipment','/instrumentData','/equipmentAlarm'] // no redirect whitelist router.beforeEach((to, from, next) => { NProgress.start() // start progress bar diff --git a/src/router/index.js b/src/router/index.js index 13fe121..e545e78 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -53,6 +53,12 @@ hidden: true }, { + path: '/pwdChange', + // 密码变更 + component: () => import('@/views/login/pwdChange'), + hidden: true + }, + { path: '/', component: Layout, redirect: '/specialWorkManage/index/specialWorkManage/workPlan/index/specialWorkManage/workPlan/reserve', diff --git a/src/views/login/components/login-form.vue b/src/views/login/components/login-form.vue index c62ea37..5ab39c8 100644 --- a/src/views/login/components/login-form.vue +++ b/src/views/login/components/login-form.vue @@ -1,6 +1,7 @@ <template> <div class="login-form"> <div class="login-form-title"><span>登录</span></div> + <div style="position: relative" ><div class="pwd-change-redirect"><el-link :underline="false" type="primary" @click="()=>{ this.$router.push({path:'/pwdChange'})}">忘记密码</el-link></div></div> <div class="login-form-main"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" :inline="false" class="loginForm" @keydown.enter.native="handleSubmit"> <div class="login-form-main-user"><span>用户名</span></div> @@ -187,7 +188,7 @@ } .login-form-title{ width: 60px; - height: 143px; + height: 130px; font-size: 30px; font-family: PingFangSC-Medium, PingFang SC; font-weight: 600; @@ -252,4 +253,9 @@ color: white; border-radius: 4px; } + .pwd-change-redirect{ + position: relative; + left: 340px; + top: 0; + } </style> diff --git a/src/views/login/pwdChange.vue b/src/views/login/pwdChange.vue new file mode 100644 index 0000000..a246398 --- /dev/null +++ b/src/views/login/pwdChange.vue @@ -0,0 +1,174 @@ +<template> + <div class="register_main"> + <div class="register_main_body"> + <span class="register_main_body_span">密码重置</span> + </div> + <div class="register_main_form"> + <el-form :model="pwdForm" :rules="rules" ref="ruleForm" label-width="150px"> + <el-row> + <el-col :span="20"> + <el-form-item label="姓名" prop="username"> + <el-input v-model="pwdForm.username"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="20"> + <el-form-item label="手机号(账户)" prop="phone"> + <el-input v-model="pwdForm.phone" ref="tel"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="20"> + <el-form-item label="密码" prop="password"> + <el-input v-model="pwdForm.password"></el-input> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :span="20"> + <el-form-item label="确认密码" prop="repassword"> + <el-input v-model="pwdForm.repassword"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + </el-row> + </el-form> + <div align="center" style="padding-bottom: 30px"> + <el-button type="primary" :disabled="submitting" @click="submit()">修改密码</el-button> + </div> + </div> + </div> +</template> + +<script> +import {pwdChange} from "../../api/user"; +import {parseError} from "../../utils/messageDialog"; + +export default { + name: "register", + data(){ + return{ + submitting: false, + pwdForm:{ + username:'', + password:'', + repassword:'', + phone:'', + }, + rules:{ + username:[ + { required: true, message: '请填写姓名', trigger: 'blur' }, + ], + phone:[ + { required: true, message: '请填写手机号', trigger: 'blur' }, + ], + password:[ + { required: true, message: '请填写密码', trigger: 'blur' }, + ], + repassword:[ + { required: true, message: '请填写确认密码', trigger: 'blur' }, + ], + + + }, + } + }, + watch:{ + }, + created(){ + + }, + methods:{ + async submit(){ + if (this.pwdForm.password !== this.pwdForm.repassword) { + this.$message({ + type:'warning', + message:'两次密码输入不一致' + }) + return + } + if (this.pwdForm.phone.length !== 11) { + this.$message({ + type:'warning', + message:'手机号长度不为11' + }) + return + } + this.$refs["ruleForm"].validate((valid) =>{ + if(valid){ + this.register() + }else{ + this.$message({ + type:'warning', + message:'请填写基本信息' + }) + } + }); + + }, + + register(){ + this.submitting = true + pwdChange(this.pwdForm) + .then(res=>{ + if (res.data.code === '200') { + this.$message({ + type:'success', + message:'修改成功' + }) + setTimeout(()=>{ + this.$router.push({path:'/login'}) + },1000) + }else{ + this.$message({ + type:'warning', + message:res.data.message + }) + } + }) + .catch(err=>{ + console.log(err) + this.$message({ + type:'warning', + message:'请求超时' + }) + }) + .finally(()=>{ + this.submitting = false + }); + } + } +} +</script> + +<style rel="stylesheet/scss" lang="scss"> +$dark_gray:#889aa4; +.register_main{ + display: block; + width: 100%; + max-width: 1200px; + padding: 0 20px; + margin: 30px auto +} +.register_main_body{ + font-size: 24px; +} +.register_main_form{ + padding-top: 70px; + margin: 30px auto; + max-width: 800px; + display: block; + width: 100%; +} +.register_main_body_span{ + padding: 6px 5px 6px 15px; + color: $dark_gray; + vertical-align: middle; + width: 30px; + display: inline-block; +} +</style> -- Gitblit v1.9.2