Compare commits
2 Commits
1638643811
...
6b7a0fd284
| Author | SHA1 | Date | |
|---|---|---|---|
| 6b7a0fd284 | |||
| c57273296f |
@@ -4,6 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
export { default as HelloWorld } from './HelloWorld';
|
export { default as HelloWorld } from './HelloWorld';
|
||||||
export { default as ChangePasswordModal } from './ChangePasswordModal';
|
export { default as ChangePasswordModal } from './ChangePasswordModal';
|
||||||
export { default as PageTabs } from './PageTabs/PageTabs';
|
export { default as PageTabs } from './pageTabs';
|
||||||
export { StatusTag } from './StatusTag';
|
export { StatusTag } from './StatusTag';
|
||||||
export type { StatusTagTone } from './StatusTag';
|
export type { StatusTagTone } from './StatusTag';
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue';
|
|||||||
import type { TabView } from '@/types';
|
import type { TabView } from '@/types';
|
||||||
import { useState } from '@/hooks';
|
import { useState } from '@/hooks';
|
||||||
import { renderRouteIcon } from '@/utils/routeIcon';
|
import { renderRouteIcon } from '@/utils/routeIcon';
|
||||||
import styles from './PageTabs.module.less';
|
import styles from './style.module.less';
|
||||||
|
|
||||||
const SCROLL_STEP = 240;
|
const SCROLL_STEP = 240;
|
||||||
|
|
||||||
@@ -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<TournamentAdminOperationPageVO> {
|
||||||
|
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) };
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
* 支持按 type、nickname、dateBegin/dateEnd 前端筛选,
|
* 支持按 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[] = [
|
const MOCK_LOGS: SysOperationLogVO[] = [
|
||||||
{
|
{
|
||||||
|
|||||||
+6
-10
@@ -1,7 +1,8 @@
|
|||||||
import router from '@/router';
|
import router from '@/router';
|
||||||
import { auth } from '@/hooks/useAuth';
|
import { auth } from '@/hooks/useAuth';
|
||||||
import { useTabsStore } from '@/stores/tabsStore';
|
|
||||||
import { useMenuStore } from '@/stores/menuStore';
|
import { useMenuStore } from '@/stores/menuStore';
|
||||||
|
import { usePermissionStore } from '@/stores/permissionStore';
|
||||||
|
import { useTabsStore } from '@/stores/tabsStore';
|
||||||
|
|
||||||
const appTitle = import.meta.env.VITE_APP_TITLE || 'CPMS 运营平台';
|
const appTitle = import.meta.env.VITE_APP_TITLE || 'CPMS 运营平台';
|
||||||
|
|
||||||
@@ -32,12 +33,9 @@ router.beforeEach(async (to, _from, next) => {
|
|||||||
// ── /login 特殊处理 ──
|
// ── /login 特殊处理 ──
|
||||||
if (to.path === '/login') {
|
if (to.path === '/login') {
|
||||||
if (auth.isLoggedIn()) {
|
if (auth.isLoggedIn()) {
|
||||||
const { loadMenu, loaded, homePath, isRoutePathAvailable } =
|
const { loadMenu, loaded, homePath, isRoutePathAvailable } = useMenuStore();
|
||||||
await import('@/stores/menuStore').then((m) => m.useMenuStore());
|
|
||||||
if (!loaded.value) {
|
if (!loaded.value) {
|
||||||
const { loadPermissions } = await import('@/stores/permissionStore').then((m) =>
|
const { loadPermissions } = usePermissionStore();
|
||||||
m.usePermissionStore(),
|
|
||||||
);
|
|
||||||
await Promise.all([loadMenu(), loadPermissions()]);
|
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) {
|
if (!loaded.value) {
|
||||||
const { loadPermissions } = await import('@/stores/permissionStore').then((m) =>
|
const { loadPermissions } = usePermissionStore();
|
||||||
m.usePermissionStore(),
|
|
||||||
);
|
|
||||||
await Promise.all([loadMenu(), loadPermissions()]);
|
await Promise.all([loadMenu(), loadPermissions()]);
|
||||||
|
|
||||||
// 动态路由刚注册,需要用新路由表重新匹配当前路径
|
// 动态路由刚注册,需要用新路由表重新匹配当前路径
|
||||||
|
|||||||
Reference in New Issue
Block a user