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)