diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 39a10c0..ac7aca4 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -757,6 +757,82 @@ const remainingRouter: AppRouteRecordRaw[] = [ } ] }, + { + path: '/reports', + component: Layout, + name: 'Reports', + meta: { + hidden: true, + title: '数据报表' + }, + children: [ + { + path: 'lijun/category-diagnostic', + name: 'CategoryDiagnostic', + meta: { + title: '品类诊断', + noCache: true, + hidden: true, + canTo: true + }, + component: () => import('@/views/ydoyun/report/lijun/reportpage6/components/categoryCardListComponents.vue') + }, + { + path: 'lijun/supplier-ranking', + name: 'SupplierRanking', + meta: { + title: '供货商销售排行', + noCache: true, + hidden: true, + canTo: true + }, + component: () => import('@/views/ydoyun/report/lijun/reportpage6/components/SupplierRanking.vue') + }, + { + path: 'lijun/supplier-performance', + name: 'SupplierPerformance', + meta: { + title: '供应商详情', + hidden: true, + canTo: true + }, + component: () => import('@/views/ydoyun/report/lijun/reportpage6/components/SupplierPerformancePage.vue') + }, + { + path: 'lijun/middle-class-ranking', + name: 'MiddleClassRanking', + meta: { + title: '中类销售排名', + noCache: true, + hidden: true, + canTo: true + }, + component: () => import('@/views/ydoyun/report/lijun/reportpage6/components/MiddleClassRanking.vue') + }, + { + path: 'lijun/product-cards', + name: 'ProductCards', + meta: { + title: '查看更多产品卡片', + noCache: true, + hidden: true, + canTo: true + }, + component: () => import('@/views/ydoyun/report/lijun/reportpage6/components/ProductCardsPage.vue') + }, + { + path: 'lijun/reportpage6/detail', + name: 'ProductDetailPage', + meta: { + title: '商品明细详情', + noCache: true, + hidden: true, + canTo: true + }, + component: () => import('@/views/ydoyun/report/lijun/reportpage6/detail.vue') + } + ] + }, { path: '/ydoyuntag', component: Layout, diff --git a/src/utils/auth.ts b/src/utils/auth.ts index ad67440..0bd6e06 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -2,6 +2,9 @@ import { useCache, CACHE_KEY } from '@/hooks/web/useCache' import { TokenType } from '@/api/login/types' import { decrypt, encrypt } from '@/utils/jsencrypt' +// 登录态使用 sessionStorage:每个浏览器标签页独立会话,新标签打开同一 URL 需重新登录 +const { wsCache: tokenCache } = useCache('sessionStorage') +// 租户、记住密码等仍用 localStorage,便于跨标签保持 const { wsCache } = useCache() const AccessTokenKey = 'ACCESS_TOKEN' @@ -10,25 +13,25 @@ const RefreshTokenKey = 'REFRESH_TOKEN' // 获取token export const getAccessToken = () => { // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错 - const accessToken = wsCache.get(AccessTokenKey) - return accessToken ? accessToken : wsCache.get('ACCESS_TOKEN') + const accessToken = tokenCache.get(AccessTokenKey) + return accessToken ? accessToken : tokenCache.get('ACCESS_TOKEN') } // 刷新token export const getRefreshToken = () => { - return wsCache.get(RefreshTokenKey) + return tokenCache.get(RefreshTokenKey) } // 设置token export const setToken = (token: TokenType) => { - wsCache.set(RefreshTokenKey, token.refreshToken) - wsCache.set(AccessTokenKey, token.accessToken) + tokenCache.set(RefreshTokenKey, token.refreshToken) + tokenCache.set(AccessTokenKey, token.accessToken) } // 删除token export const removeToken = () => { - wsCache.delete(AccessTokenKey) - wsCache.delete(RefreshTokenKey) + tokenCache.delete(AccessTokenKey) + tokenCache.delete(RefreshTokenKey) } /** 格式化token(jwt格式) */