From 6b7a0fd284173691e6c0e9185df2a67683672a6b Mon Sep 17 00:00:00 2001 From: ZhuRui Date: Thu, 30 Jul 2026 17:16:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E6=89=93=E5=8C=85?= =?UTF-8?q?=E8=AD=A6=E5=91=8A,=E5=A4=84=E7=90=86=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/index.ts | 2 +- .../pageTabs/{PageTabs.tsx => index.tsx} | 2 +- ...PageTabs.module.less => style.module.less} | 0 src/config/mock/eventOperationLogs.ts | 57 +++++++++++++++++++ src/config/mock/operationLogs.ts | 2 +- src/router/guard.ts | 16 ++---- 6 files changed, 66 insertions(+), 13 deletions(-) rename src/components/pageTabs/{PageTabs.tsx => index.tsx} (99%) rename src/components/pageTabs/{PageTabs.module.less => style.module.less} (100%) create mode 100644 src/config/mock/eventOperationLogs.ts diff --git a/src/components/index.ts b/src/components/index.ts index fc4b600..2afbde3 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -4,6 +4,6 @@ */ export { default as HelloWorld } from './HelloWorld'; export { default as ChangePasswordModal } from './ChangePasswordModal'; -export { default as PageTabs } from './PageTabs/PageTabs'; +export { default as PageTabs } from './pageTabs'; export { StatusTag } from './StatusTag'; export type { StatusTagTone } from './StatusTag'; diff --git a/src/components/pageTabs/PageTabs.tsx b/src/components/pageTabs/index.tsx similarity index 99% rename from src/components/pageTabs/PageTabs.tsx rename to src/components/pageTabs/index.tsx index ebd4d32..a301785 100644 --- a/src/components/pageTabs/PageTabs.tsx +++ b/src/components/pageTabs/index.tsx @@ -12,7 +12,7 @@ import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue'; import type { TabView } from '@/types'; import { useState } from '@/hooks'; import { renderRouteIcon } from '@/utils/routeIcon'; -import styles from './PageTabs.module.less'; +import styles from './style.module.less'; const SCROLL_STEP = 240; diff --git a/src/components/pageTabs/PageTabs.module.less b/src/components/pageTabs/style.module.less similarity index 100% rename from src/components/pageTabs/PageTabs.module.less rename to src/components/pageTabs/style.module.less diff --git a/src/config/mock/eventOperationLogs.ts b/src/config/mock/eventOperationLogs.ts new file mode 100644 index 0000000..aabdc02 --- /dev/null +++ b/src/config/mock/eventOperationLogs.ts @@ -0,0 +1,57 @@ +/** + * 赛事操作日志假数据 + */ +import type { + OperationLogQueryParams, + PageData, + TournamentAdminOperationPageVO, +} from '@/api/logs/types'; + +const MOCK_EVENT_LOGS: TournamentAdminOperationPageVO[] = [ + { + opName: '创建赛事', + source: 'PC', + nickname: '张三', + phone: '13800000001', + tournamentName: '第二届全国地学羽毛球邀请赛', + obj: '赛事', + content: '创建赛事「第二届全国地学羽毛球邀请赛」', + createDate: '2026-07-30 08:00:00', + }, + { + opName: '修改赛事', + source: '小程序', + nickname: '李四', + phone: '13800000002', + tournamentName: '春季马拉松大赛', + obj: '赛事', + content: '修改赛事基础信息', + createDate: '2026-07-29 10:12:00', + }, +]; + +export function buildMockEventOperationLogPage( + page: number, + limit: number, + params: OperationLogQueryParams, +): PageData { + let filtered = [...MOCK_EVENT_LOGS]; + + if (params.source) { + const sourceLabel = params.source === '1' ? 'PC' : '小程序'; + filtered = filtered.filter((item) => item.source === sourceLabel); + } + if (params.sourceNickname) { + filtered = filtered.filter((item) => item.nickname.includes(params.sourceNickname!)); + } + if (params.sourcePhone) { + filtered = filtered.filter((item) => item.phone.includes(params.sourcePhone!)); + } + if (params.tournamentName) { + filtered = filtered.filter((item) => item.tournamentName.includes(params.tournamentName!)); + } + + const total = filtered.length; + const start = (page - 1) * limit; + return { total, list: filtered.slice(start, start + limit) }; +} diff --git a/src/config/mock/operationLogs.ts b/src/config/mock/operationLogs.ts index 8215b61..b2ff894 100644 --- a/src/config/mock/operationLogs.ts +++ b/src/config/mock/operationLogs.ts @@ -5,7 +5,7 @@ * 支持按 type、nickname、dateBegin/dateEnd 前端筛选, * 模拟后端分页行为。 */ -import type { SysOperationLogVO, OperationLogQueryParams, PageData } from '@/api/logs'; +import type { SysOperationLogVO, OperationLogQueryParams, PageData } from '@/api/logs/types'; const MOCK_LOGS: SysOperationLogVO[] = [ { diff --git a/src/router/guard.ts b/src/router/guard.ts index 9462d6a..b3a501b 100644 --- a/src/router/guard.ts +++ b/src/router/guard.ts @@ -1,7 +1,8 @@ import router from '@/router'; import { auth } from '@/hooks/useAuth'; -import { useTabsStore } from '@/stores/tabsStore'; import { useMenuStore } from '@/stores/menuStore'; +import { usePermissionStore } from '@/stores/permissionStore'; +import { useTabsStore } from '@/stores/tabsStore'; const appTitle = import.meta.env.VITE_APP_TITLE || 'CPMS 运营平台'; @@ -32,12 +33,9 @@ router.beforeEach(async (to, _from, next) => { // ── /login 特殊处理 ── if (to.path === '/login') { if (auth.isLoggedIn()) { - const { loadMenu, loaded, homePath, isRoutePathAvailable } = - await import('@/stores/menuStore').then((m) => m.useMenuStore()); + const { loadMenu, loaded, homePath, isRoutePathAvailable } = useMenuStore(); if (!loaded.value) { - const { loadPermissions } = await import('@/stores/permissionStore').then((m) => - m.usePermissionStore(), - ); + const { loadPermissions } = usePermissionStore(); await Promise.all([loadMenu(), loadPermissions()]); } @@ -60,11 +58,9 @@ router.beforeEach(async (to, _from, next) => { } // ── 已登录:确保菜单和动态路由已加载 ── - const { loadMenu, loaded } = await import('@/stores/menuStore').then((m) => m.useMenuStore()); + const { loadMenu, loaded } = useMenuStore(); if (!loaded.value) { - const { loadPermissions } = await import('@/stores/permissionStore').then((m) => - m.usePermissionStore(), - ); + const { loadPermissions } = usePermissionStore(); await Promise.all([loadMenu(), loadPermissions()]); // 动态路由刚注册,需要用新路由表重新匹配当前路径