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