From 4d41bccfbf71c55cde1b35cde6045ad20f068d8f Mon Sep 17 00:00:00 2001 From: valarchie <343928303@qq.com> Date: Thu, 29 Jun 2023 23:00:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/plugins.ts | 24 ++++++++++++------------ src/api/routes.ts | 2 +- src/store/modules/permission.ts | 2 +- src/utils/http/index.ts | 4 +++- src/views/login/index.vue | 11 ++++++++++- 5 files changed, 27 insertions(+), 16 deletions(-) diff --git a/build/plugins.ts b/build/plugins.ts index 896527b..1f06a59 100644 --- a/build/plugins.ts +++ b/build/plugins.ts @@ -3,7 +3,7 @@ import vue from "@vitejs/plugin-vue"; import { viteBuildInfo } from "./info"; import svgLoader from "vite-svg-loader"; import vueJsx from "@vitejs/plugin-vue-jsx"; -import { viteMockServe } from "vite-plugin-mock"; +// import { viteMockServe } from "vite-plugin-mock"; import { configCompressPlugin } from "./compress"; // import ElementPlus from "unplugin-element-plus/vite"; import { visualizer } from "rollup-plugin-visualizer"; @@ -16,7 +16,7 @@ export function getPluginsList( VITE_CDN: boolean, VITE_COMPRESSION: ViteCompression ) { - const prodMock = true; + // const prodMock = true; const lifecycle = process.env.npm_lifecycle_event; return [ vue(), @@ -38,16 +38,16 @@ export function getPluginsList( svgLoader(), // ElementPlus({}), // mock支持 - viteMockServe({ - mockPath: "mock", - localEnabled: command === "serve", - prodEnabled: command !== "serve" && prodMock, - injectCode: ` - import { setupProdMockServer } from './mockProdServer'; - setupProdMockServer(); - `, - logger: false - }), + // viteMockServe({ + // mockPath: "mock", + // localEnabled: command === "serve", + // prodEnabled: command !== "serve" && prodMock, + // injectCode: ` + // import { setupProdMockServer } from './mockProdServer'; + // setupProdMockServer(); + // `, + // logger: false + // }), // 打包分析 lifecycle === "report" ? visualizer({ open: true, brotliSize: true, filename: "report.html" }) diff --git a/src/api/routes.ts b/src/api/routes.ts index 277c5f3..7b0c13a 100644 --- a/src/api/routes.ts +++ b/src/api/routes.ts @@ -6,5 +6,5 @@ type Result = { }; export const getAsyncRoutes = () => { - return http.request("get", "/getAsyncRoutes"); + return http.request("get", "/getRouters"); }; diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts index 33fd0dd..343710c 100644 --- a/src/store/modules/permission.ts +++ b/src/store/modules/permission.ts @@ -7,7 +7,7 @@ import { debounce, getKeyList } from "@pureadmin/utils"; import { ascending, filterTree, filterNoPermissionTree } from "@/router/utils"; export const usePermissionStore = defineStore({ - id: "pure-permission", + id: "ag-permission", state: () => ({ // 静态路由生成的菜单 constantMenus, diff --git a/src/utils/http/index.ts b/src/utils/http/index.ts index 2d53af7..a77210b 100644 --- a/src/utils/http/index.ts +++ b/src/utils/http/index.ts @@ -76,11 +76,13 @@ class PureHttp { return config; } /** 请求白名单,放置一些不需要token的接口(通过设置请求白名单,防止token过期后再请求造成的死循环问题) */ - const whiteList = ["/refreshToken", "/login"]; + const whiteList = ["/refreshToken", "/login", "/captchaImage"]; return whiteList.some(v => config.url.indexOf(v) > -1) ? config : new Promise(resolve => { const data = getToken(); + + console.log("当前token:" + data.accessToken); if (data) { const now = new Date().getTime(); const expired = parseInt(data.expires) - now <= 0; diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 523cf60..25be3eb 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -31,7 +31,9 @@ import { getIsRememberMe, savePassword, getPassword, - removePassword + removePassword, + setToken, + DataInfo } from "@/utils/auth"; import dayIcon from "@/assets/svg/day.svg?component"; @@ -81,6 +83,13 @@ const onLogin = async (formEl: FormInstance | undefined) => { captchaCodeKey: ruleForm.captchaCodeKey }).then(res => { if (res.code === 0) { + // 登录成功后 将token存储到sessionStorage中 + const tokenData: DataInfo = { + accessToken: res.data.token, + expires: undefined, + refreshToken: "" + }; + setToken(tokenData); // 获取后端路由 initRouter().then(() => { router.push(getTopMenu(true).path);