初始提交:全国记者站管理系统

This commit is contained in:
selfrelease
2026-08-01 23:09:49 +08:00
commit 45fbba0308
96 changed files with 21514 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
// 路由 Page key(替代 types.ts 中的 Page
export type PageKey = 'dashboard' | 'work' | 'review' | 'people' | 'stations'
| 'archive' | 'notices' | 'settings' | 'rules' | 'scores' | 'leaderboard'
| 'appeals' | 'logs' | 'stationmap' | 'cockpit' | 'profile'
import {
LayoutDashboard, FilePenLine, ClipboardCheck, Users, Building2,
Archive, Bell, Settings, ScrollText, BarChart3, Trophy, Gavel,
FileText, MapPin, Gauge, UserCircle,
} from 'lucide-react'
export const pageIcons: Record<PageKey, typeof LayoutDashboard> = {
dashboard: LayoutDashboard, work: FilePenLine, review: ClipboardCheck,
people: Users, stations: Building2, archive: Archive,
notices: Bell, settings: Settings, rules: ScrollText,
scores: BarChart3, leaderboard: Trophy, appeals: Gavel,
logs: FileText, stationmap: MapPin, cockpit: Gauge, profile: UserCircle,
}
export const pathMap: Record<PageKey, string> = {
dashboard: '/', work: '/work', review: '/review',
people: '/people', stations: '/stations', archive: '/archive',
notices: '/notices', settings: '/settings',
rules: '/rules', scores: '/scores', leaderboard: '/leaderboard',
appeals: '/appeals', logs: '/logs',
stationmap: '/stationmap', cockpit: '/cockpit', profile: '/profile',
}
export const navLabels: Record<PageKey, string> = {
dashboard: '工作台', work: '工作记录', review: '审核中心',
people: '人员管理', stations: '记者站管理', archive: '电子档案',
notices: '通知公告', settings: '系统设置',
rules: '考核规则', scores: '评分结果', leaderboard: '积分排行',
appeals: '申诉复议', logs: '操作日志',
stationmap: '全国地图', cockpit: '管理驾驶舱', profile: '能力画像',
}
export function pathToPage(pathname: string): PageKey {
const entry = Object.entries(pathMap).find(([, p]) => p === pathname)
return (entry ? entry[0] : 'dashboard') as PageKey
}