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