feat: 新增路由代码

This commit is contained in:
valarchie 2023-06-29 23:00:44 +08:00
parent 03d9b2b6f8
commit 4d41bccfbf
5 changed files with 27 additions and 16 deletions

View File

@ -3,7 +3,7 @@ import vue from "@vitejs/plugin-vue";
import { viteBuildInfo } from "./info"; import { viteBuildInfo } from "./info";
import svgLoader from "vite-svg-loader"; import svgLoader from "vite-svg-loader";
import vueJsx from "@vitejs/plugin-vue-jsx"; import vueJsx from "@vitejs/plugin-vue-jsx";
import { viteMockServe } from "vite-plugin-mock"; // import { viteMockServe } from "vite-plugin-mock";
import { configCompressPlugin } from "./compress"; import { configCompressPlugin } from "./compress";
// import ElementPlus from "unplugin-element-plus/vite"; // import ElementPlus from "unplugin-element-plus/vite";
import { visualizer } from "rollup-plugin-visualizer"; import { visualizer } from "rollup-plugin-visualizer";
@ -16,7 +16,7 @@ export function getPluginsList(
VITE_CDN: boolean, VITE_CDN: boolean,
VITE_COMPRESSION: ViteCompression VITE_COMPRESSION: ViteCompression
) { ) {
const prodMock = true; // const prodMock = true;
const lifecycle = process.env.npm_lifecycle_event; const lifecycle = process.env.npm_lifecycle_event;
return [ return [
vue(), vue(),
@ -38,16 +38,16 @@ export function getPluginsList(
svgLoader(), svgLoader(),
// ElementPlus({}), // ElementPlus({}),
// mock支持 // mock支持
viteMockServe({ // viteMockServe({
mockPath: "mock", // mockPath: "mock",
localEnabled: command === "serve", // localEnabled: command === "serve",
prodEnabled: command !== "serve" && prodMock, // prodEnabled: command !== "serve" && prodMock,
injectCode: ` // injectCode: `
import { setupProdMockServer } from './mockProdServer'; // import { setupProdMockServer } from './mockProdServer';
setupProdMockServer(); // setupProdMockServer();
`, // `,
logger: false // logger: false
}), // }),
// 打包分析 // 打包分析
lifecycle === "report" lifecycle === "report"
? visualizer({ open: true, brotliSize: true, filename: "report.html" }) ? visualizer({ open: true, brotliSize: true, filename: "report.html" })

View File

@ -6,5 +6,5 @@ type Result = {
}; };
export const getAsyncRoutes = () => { export const getAsyncRoutes = () => {
return http.request<Result>("get", "/getAsyncRoutes"); return http.request<Result>("get", "/getRouters");
}; };

View File

@ -7,7 +7,7 @@ import { debounce, getKeyList } from "@pureadmin/utils";
import { ascending, filterTree, filterNoPermissionTree } from "@/router/utils"; import { ascending, filterTree, filterNoPermissionTree } from "@/router/utils";
export const usePermissionStore = defineStore({ export const usePermissionStore = defineStore({
id: "pure-permission", id: "ag-permission",
state: () => ({ state: () => ({
// 静态路由生成的菜单 // 静态路由生成的菜单
constantMenus, constantMenus,

View File

@ -76,11 +76,13 @@ class PureHttp {
return config; return config;
} }
/** 请求白名单放置一些不需要token的接口通过设置请求白名单防止token过期后再请求造成的死循环问题 */ /** 请求白名单放置一些不需要token的接口通过设置请求白名单防止token过期后再请求造成的死循环问题 */
const whiteList = ["/refreshToken", "/login"]; const whiteList = ["/refreshToken", "/login", "/captchaImage"];
return whiteList.some(v => config.url.indexOf(v) > -1) return whiteList.some(v => config.url.indexOf(v) > -1)
? config ? config
: new Promise(resolve => { : new Promise(resolve => {
const data = getToken(); const data = getToken();
console.log("当前token:" + data.accessToken);
if (data) { if (data) {
const now = new Date().getTime(); const now = new Date().getTime();
const expired = parseInt(data.expires) - now <= 0; const expired = parseInt(data.expires) - now <= 0;

View File

@ -31,7 +31,9 @@ import {
getIsRememberMe, getIsRememberMe,
savePassword, savePassword,
getPassword, getPassword,
removePassword removePassword,
setToken,
DataInfo
} from "@/utils/auth"; } from "@/utils/auth";
import dayIcon from "@/assets/svg/day.svg?component"; import dayIcon from "@/assets/svg/day.svg?component";
@ -81,6 +83,13 @@ const onLogin = async (formEl: FormInstance | undefined) => {
captchaCodeKey: ruleForm.captchaCodeKey captchaCodeKey: ruleForm.captchaCodeKey
}).then(res => { }).then(res => {
if (res.code === 0) { if (res.code === 0) {
// tokensessionStorage
const tokenData: DataInfo<Number> = {
accessToken: res.data.token,
expires: undefined,
refreshToken: ""
};
setToken(tokenData);
// //
initRouter().then(() => { initRouter().then(() => {
router.push(getTopMenu(true).path); router.push(getTopMenu(true).path);