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 @@
-
+