From e116897b7efb466429e1ec6871ac0702c162e99b Mon Sep 17 00:00:00 2001 From: ZSEN Date: Sat, 24 Apr 2021 13:39:10 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D=EF=BC=9A=E9=80=80?= =?UTF-8?q?=E5=87=BA=E7=99=BB=E5=BD=95=E5=90=8E=E5=86=8D=E6=AC=A1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=B8=8D=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=9B=E5=A2=9E=E5=8A=A0=E9=94=81=E5=B1=8F=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/login.js | 20 +- .../Avatar}/hooks/useUserinfo.js | 0 src/components/Avatar/index.vue | 46 +++++ src/layout/components/Topbar/LockModal.vue | 40 +--- src/layout/components/Topbar/Userinfo.vue | 6 +- src/layout/components/Topbar/hooks/useLock.js | 45 ----- src/permission.js | 19 +- src/store/modules/app.js | 9 +- src/utils/request.js | 8 +- src/views/lock/Unlock.vue | 172 +++++++++++++++++- src/views/login/index.vue | 14 +- 11 files changed, 276 insertions(+), 103 deletions(-) rename src/{layout/components/Topbar => components/Avatar}/hooks/useUserinfo.js (100%) create mode 100644 src/components/Avatar/index.vue delete mode 100644 src/layout/components/Topbar/hooks/useLock.js diff --git a/mock/login.js b/mock/login.js index 75b39ed..45e6fc9 100644 --- a/mock/login.js +++ b/mock/login.js @@ -40,13 +40,19 @@ export default [ method: 'post', timeout: 1000, statusCode: 200, - response: { - code: 200, - message: '登录成功', - data: { - token: '@word(50, 100)', // @word()是mockjs的语法 - refresh_token: '@word(50, 100)', // refresh_token是用来重新生成token的 - }, + response: ({body}) => { + // 响应内容 + return +body.password === 123456 ? { + code: 200, + message: '登录成功', + data: { + token: '@word(50, 100)', // @word()是mockjs的语法 + refresh_token: '@word(50, 100)', // refresh_token是用来重新生成token的 + } + } : { + code: 400, + message: '密码错误,请输入123456', + } }, }, { diff --git a/src/layout/components/Topbar/hooks/useUserinfo.js b/src/components/Avatar/hooks/useUserinfo.js similarity index 100% rename from src/layout/components/Topbar/hooks/useUserinfo.js rename to src/components/Avatar/hooks/useUserinfo.js diff --git a/src/components/Avatar/index.vue b/src/components/Avatar/index.vue new file mode 100644 index 0000000..a9824bc --- /dev/null +++ b/src/components/Avatar/index.vue @@ -0,0 +1,46 @@ + + + + diff --git a/src/layout/components/Topbar/LockModal.vue b/src/layout/components/Topbar/LockModal.vue index cb70457..5cba282 100644 --- a/src/layout/components/Topbar/LockModal.vue +++ b/src/layout/components/Topbar/LockModal.vue @@ -60,22 +60,14 @@ custom-class="lock-modal" append-to-body > -
- - -
+ @@ -94,16 +86,18 @@ diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 0628c88..9413928 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -58,6 +58,7 @@ import { import { Login } from '@/api/login' import { useStore } from 'vuex' import { useRouter, useRoute } from 'vue-router' + export default defineComponent({ name: 'login', setup() { @@ -100,8 +101,17 @@ export default defineComponent({ message: '登录成功', duration: 1000, }) - const targetPath = route.query.redirect - router.push(targetPath ? targetPath : '/') + + const targetPath = decodeURIComponent(route.query.redirect) + if (targetPath.startsWith('http')) { + // 如果是一个url地址 + window.location.href = targetPath + } else if (targetPath.startsWith('/')) { + // 如果是内部路由地址 + router.push(targetPath) + } else { + router.push('/') + } store.commit('app/setToken', data) } else { ctx.$message.error(message)