From dd379b1e8f0c38ceb48122ee0b6b0e52e684f3dd Mon Sep 17 00:00:00 2001 From: ouhaolan Date: Thu, 9 Apr 2026 09:32:10 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8F=9C=E5=8D=95=E3=80=81=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E3=80=822.=E4=BF=AE=E6=94=B9=E6=AF=8F=E6=97=A5=E6=B1=87?= =?UTF-8?q?=E6=8A=A5=E5=A4=A7=E5=B0=8F=E3=80=81=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/modules/remaining.ts | 76 +++++++++++++++++++++++++++++++++ src/utils/auth.ts | 17 +++++--- 2 files changed, 86 insertions(+), 7 deletions(-) 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格式) */