From b495926968b44931517d5df1dc1efed8e8ff04ff Mon Sep 17 00:00:00 2001 From: gyq <875626088@qq.com> Date: Sat, 3 Aug 2024 16:49:57 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E5=AF=86?= =?UTF-8?q?=E7=A0=81=202.=E5=8F=96=E6=B6=88=E5=87=BA=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.js | 13 +++ src/layout/components/Navbar.vue | 115 +++++++++++++++++++++++++- src/store/modules/user.js | 1 + src/views/invoicing/operation_in.vue | 2 +- src/views/invoicing/operation_out.vue | 2 +- 5 files changed, 130 insertions(+), 3 deletions(-) diff --git a/src/api/login.js b/src/api/login.js index 7cb40d7..6f5efce 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -28,3 +28,16 @@ export function logout() { method: "delete" }); } + +/** + * 个人中心 修改密码 + * @param {*} data + * @returns + */ +export function updatePass(data) { + return request({ + url: "/api/users/updatePass", + method: "post", + data + }); +} diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 652ee2d..9112d05 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -33,6 +33,11 @@ 个人中心 + + + 修改密码 + + 退出登录 @@ -41,6 +46,32 @@ + + + + + + + + + + + + + + + + + + + + 取 消 + 确 定 + + @@ -53,6 +84,8 @@ import Screenfull from '@/components/Screenfull' import SizeSelect from '@/components/SizeSelect' import Search from '@/components/HeaderSearch' import Avatar from '@/assets/images/avatar.png' +import { updatePass } from '@/api/login.js' +import { encrypt } from '@/utils/rsaEncrypt' export default { components: { @@ -64,11 +97,61 @@ export default { Doc }, data() { + const validateNewPass = (rule, value, callback) => { + if (!this.form.newPass) { + callback(new Error(' ')) + } else if (this.form.newPass === this.form.oldPass) { + callback(new Error('请输入与旧密码不同的新密码')) + } else { + callback() + } + } + const validateRnewPass = (rule, value, callback) => { + if (!this.form.rnewPass) { + callback(new Error(' ')) + } else if (this.form.rnewPass !== this.form.newPass) { + callback(new Error('两次密码输入不一致')) + } else { + callback() + } + } return { Avatar: Avatar, dialogVisible: false, logo: localStorage.getItem('logo'), - shopName: localStorage.getItem('shopName') + shopName: localStorage.getItem('shopName'), + ip1Type: 'password', + ip2Type: 'password', + ip3Type: 'password', + formLoading: false, + form: { + oldPass: '', + newPass: '', + rnewPass: '' + }, + rules: { + oldPass: [ + { + required: true, + message: ' ', + trigger: 'blur' + } + ], + newPass: [ + { + required: true, + validator: validateNewPass, + trigger: 'blur' + } + ], + rnewPass: [ + { + required: true, + validator: validateRnewPass, + trigger: 'blur' + } + ] + } } }, computed: { @@ -91,6 +174,36 @@ export default { } }, methods: { + // 修改密码框类型 + changeInputType(key) { + if (this[key] == 'text') { + this[key] = 'password' + } else { + this[key] = 'text' + } + }, + // 提交修改密码 + submitHandle() { + this.$refs.form.validate(async vaild => { + if (vaild) { + try { + this.formLoading = true + const res = await updatePass({ + loginType: localStorage.getItem('loginType'), + oldPass: encrypt(this.form.oldPass), + newPass: this.form.newPass + }) + this.$notify.success('修改成功,请重新登陆') + setTimeout(() => { + this.logout() + }, 1000) + } catch (error) { + this.formLoading = false + console.log(error); + } + } + }) + }, toggleSideBar() { this.$store.dispatch('app/toggleSideBar') }, diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 3b1e6d0..8bdfbd2 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -41,6 +41,7 @@ const user = { localStorage.setItem("shopId", res.shopId); localStorage.setItem("shopName", res.shopName); localStorage.setItem("logo", res.logo); + localStorage.setItem("loginType", res.loginType); setToken(res.token, rememberMe); commit("SET_TOKEN", res.token); setUserInfo(res.user, commit); diff --git a/src/views/invoicing/operation_in.vue b/src/views/invoicing/operation_in.vue index 7738bf1..61ad8d3 100644 --- a/src/views/invoicing/operation_in.vue +++ b/src/views/invoicing/operation_in.vue @@ -37,7 +37,7 @@ - + diff --git a/src/views/invoicing/operation_out.vue b/src/views/invoicing/operation_out.vue index 85fecb2..9e64d0b 100644 --- a/src/views/invoicing/operation_out.vue +++ b/src/views/invoicing/operation_out.vue @@ -37,7 +37,7 @@ - +