更新依赖项及历史人物相关内容资源

- 更新 package.json 和 package-lock.json 中的依赖项
- 新增/更新陈云、黄炎培、鲁迅、孙中山的音频文件
- 新增场景和组件的图片资源
- 清理未使用的音频和图片文件
- 优化多个组件和页面的实现逻辑
This commit is contained in:
zhongyidian committed 2026-04-20 13:27:18 +08:00
1 parent b1d55b9464
commit e0fa47d21a
629 files changed
+24390 -2991

No files matched your search

+4
View File
@@ -13,7 +13,9 @@ import {
HuangyanpeiRoutes,
LuxunRoutes,
ZhanglepingRoutes,
NieerRoutes,
} from './modules'
import { RongdeshengRoutes } from './modules/rongdesheng'
const baseRoutes: RouteObject[] = [
{
@@ -57,6 +59,8 @@ const router = createHashRouter([
...HuangyanpeiRoutes,
...LuxunRoutes,
...ZhanglepingRoutes,
...NieerRoutes,
...RongdeshengRoutes,
{
path: '*',
element: <NotFound />,
+2
View File
@@ -4,3 +4,5 @@ export * from './sunzhongshan'
export * from './huangyanpei'
export * from './luxun'
export * from './zhangleping'
export * from './nieer'
export * from './rongdesheng'
+23 -5
View File
@@ -3,12 +3,13 @@ import { RouteObject } from 'react-router-dom'
import { ResidenceLayout } from '@/components/layout'
import type { VideoRouteHandle } from '../types'
const DemoPage = lazy(() => import('@/pages/maozedong/demo'))
const ReflectionPage = lazy(() => import('@/pages/maozedong/reflection'))
const HomePage = lazy(() => import('@/pages/maozedong/home'))
const MaozedongPlace1 = lazy(() => import('@/pages/maozedong/place/place1'))
const MaozedongPlace2 = lazy(() => import('@/pages/maozedong/place/place2'))
const MaozedongPlace3 = lazy(() => import('@/pages/maozedong/place/place3'))
const MaozedongPlace4 = lazy(() => import('@/pages/maozedong/place/place4'))
const MaozedongInternalization = lazy(() => import('@/pages/maozedong/internalization'))
//毛泽东 router
// 路径格式:/:moduleName/:starName/:page
@@ -31,28 +32,45 @@ export const MaozedongRoutes: RouteObject[] = [
videoSrc: 'video/maozedong/mzd_guju_map.mp4',
} as VideoRouteHandle,
},
//演示视频
// 内化模块
{
path: 'demo',
element: <DemoPage />,
// 没有 handle.videoSrc,直接渲染内容
path: 'internalization',
element: <MaozedongInternalization />,
},
// 对话模块
{
path: 'place1',
element: <MaozedongPlace1 />,
handle: {
videoSrc: 'video/maozedong/mzd_1.mp4',
} as VideoRouteHandle,
},
{
path: 'place2',
element: <MaozedongPlace2 />,
handle: {
videoSrc: 'video/maozedong/mzd_2.mp4',
} as VideoRouteHandle,
},
{
path: 'place3',
element: <MaozedongPlace3 />,
handle: {
videoSrc: 'video/maozedong/mzd_3.mp4',
} as VideoRouteHandle,
},
{
path: 'place4',
element: <MaozedongPlace4 />,
handle: {
videoSrc: 'video/maozedong/mzd_4.mp4',
} as VideoRouteHandle,
},
//演示视频
{
path: 'reflection',
element: <ReflectionPage />,
// 没有 handle.videoSrc,直接渲染内容
},
],
},
+88
View File
@@ -0,0 +1,88 @@
import { lazy } from 'react'
import { RouteObject } from 'react-router-dom'
import { ResidenceLayout } from '@/components/layout'
import { VideoRouteHandle } from '../types'
const HomePage = lazy(() => import('@/pages/nieer/home'))
const NieerPlace1 = lazy(() => import('@/pages/nieer/place/place1'))
const NieerPlace2 = lazy(() => import('@/pages/nieer/place/place2'))
const NieerPlace3 = lazy(() => import('@/pages/nieer/place/place3'))
const NieerPlace4 = lazy(() => import('@/pages/nieer/place/place4'))
const NieerPlace5 = lazy(() => import('@/pages/nieer/place/place5'))
const NieerPlace6 = lazy(() => import('@/pages/nieer/place/place6'))
const NieerReflection = lazy(() => import('@/pages/nieer/reflection'))
const NieerReflectionBox = lazy(() => import('@/pages/nieer/reflection/box'))
const NieerInternalization = lazy(() => import('@/pages/nieer/internalization'))
// 聂耳 router
// 路径格式:/:moduleName/nieer/:page
export const NieerRoutes: RouteObject[] = [
{
path: '/:moduleName/nieer',
element: <ResidenceLayout />,
children: [
{
index: true,
element: <HomePage />,
},
{
path: 'home',
element: <HomePage />,
},
// 对话模块(6 个场景)
{
path: 'place1',
element: <NieerPlace1 />,
},
{
path: 'place2',
element: <NieerPlace2 />,
handle: {
videoSrc: 'video/nieer/nieer_3.mp4',
} as VideoRouteHandle,
},
{
path: 'place3',
element: <NieerPlace3 />,
handle: {
videoSrc: 'video/nieer/nieer_04.mp4',
} as VideoRouteHandle,
},
{
path: 'place4',
element: <NieerPlace4 />,
handle: {
videoSrc: 'video/nieer/nieer_6.mp4',
} as VideoRouteHandle,
},
{
path: 'place5',
element: <NieerPlace5 />,
handle: {
videoSrc: 'video/nieer/nieer_7.mp4',
} as VideoRouteHandle,
},
{
path: 'place6',
element: <NieerPlace6 />,
handle: {
videoSrc: 'video/nieer/nieer_8.mp4',
} as VideoRouteHandle,
},
// 体悟模块
{
path: 'reflection',
element: <NieerReflection />,
},
{
path: 'reflection/box',
element: <NieerReflectionBox />,
},
// 内化模块
{
path: 'internalization',
element: <NieerInternalization />,
},
],
},
]
+64
View File
@@ -0,0 +1,64 @@
import { lazy } from 'react'
import { RouteObject } from 'react-router-dom'
import { ResidenceLayout } from '@/components/layout'
import { VideoRouteHandle } from '../types'
const HomePage = lazy(() => import('@/pages/rongdesheng/home'))
const RongdeshengPlace1 = lazy(() => import('@/pages/rongdesheng/place/place1'))
const RongdeshengPlace2 = lazy(() => import('@/pages/rongdesheng/place/place2'))
const RongdeshengPlace3 = lazy(() => import('@/pages/rongdesheng/place/place3'))
const RongdeshengPlace4 = lazy(() => import('@/pages/rongdesheng/place/place4'))
const RongdeshengReflection = lazy(() => import('@/pages/rongdesheng/reflection'))
const RongdeshengInternalization = lazy(() => import('@/pages/rongdesheng/internalization'))
// 荣德生 router
// 路径格式:/:moduleName/rongdesheng/:page
export const RongdeshengRoutes: RouteObject[] = [
{
path: '/:moduleName/rongdesheng',
element: <ResidenceLayout />,
children: [
{
index: true,
element: <HomePage />,
},
{
path: 'home',
element: <HomePage />,
},
{
path: 'place1',
element: <RongdeshengPlace1 />,
},
{
path: 'place2',
element: <RongdeshengPlace2 />,
handle: {
videoSrc: 'video/rongdesheng/rongdesheng_2.mp4',
} as VideoRouteHandle,
},
{
path: 'place3',
element: <RongdeshengPlace3 />,
handle: {
videoSrc: 'video/rongdesheng/rongdesheng_7.mp4',
} as VideoRouteHandle,
},
{
path: 'place4',
element: <RongdeshengPlace4 />,
handle: {
videoSrc: 'video/rongdesheng/rongdesheng_9.mp4',
} as VideoRouteHandle,
},
{
path: 'reflection',
element: <RongdeshengReflection />,
},
{
path: 'internalization',
element: <RongdeshengInternalization />,
},
],
},
]
+61
View File
@@ -1,6 +1,7 @@
import { lazy } from 'react'
import { RouteObject } from 'react-router-dom'
import { ResidenceLayout } from '@/components/layout'
import { VideoRouteHandle } from '../types'
const HomePage = lazy(() => import('@/pages/zhangleping/home'))
const ZhanglepingPlace1 = lazy(() => import('@/pages/zhangleping/place/place1'))
@@ -8,6 +9,15 @@ const ZhanglepingPlace2 = lazy(() => import('@/pages/zhangleping/place/place2'))
const ZhanglepingPlace3 = lazy(() => import('@/pages/zhangleping/place/place3'))
const ZhanglepingPlace4 = lazy(() => import('@/pages/zhangleping/place/place4'))
const ZhanglepingPlace5 = lazy(() => import('@/pages/zhangleping/place/place5'))
const ZhanglepingReflection = lazy(() => import('@/pages/zhangleping/reflection'))
const ZhanglepingReflection1 = lazy(() => import('@/pages/zhangleping/reflection/scene1'))
const ZhanglepingReflection2 = lazy(() => import('@/pages/zhangleping/reflection/scene2'))
const ZhanglepingReflection3 = lazy(() => import('@/pages/zhangleping/reflection/scene3'))
const ZhanglepingReflection4 = lazy(() => import('@/pages/zhangleping/reflection/scene4'))
const ZhanglepingReflection5 = lazy(() => import('@/pages/zhangleping/reflection/scene5'))
const ZhanglepingDraw = lazy(() => import('@/pages/zhangleping/draw'))
const ZhanglepingDraw1 = lazy(() => import('@/pages/zhangleping/draw/draw1'))
const ZhanglepingInternalization = lazy(() => import('@/pages/zhangleping/internalization'))
// 张乐平 router
// 路径格式:/:moduleName/zhangleping/:page
@@ -32,18 +42,69 @@ export const ZhanglepingRoutes: RouteObject[] = [
{
path: 'place2',
element: <ZhanglepingPlace2 />,
handle: {
videoSrc: 'video/zhangleping/zhangleping_2.mp4',
} as VideoRouteHandle,
},
{
path: 'place3',
element: <ZhanglepingPlace3 />,
handle: {
videoSrc: 'video/zhangleping/zhangleping_4.mp4',
} as VideoRouteHandle,
},
{
path: 'place4',
element: <ZhanglepingPlace4 />,
handle: {
videoSrc: 'video/zhangleping/zhangleping_6.mp4',
} as VideoRouteHandle,
},
{
path: 'place5',
element: <ZhanglepingPlace5 />,
handle: {
videoSrc: 'video/zhangleping/zhangleping_7.mp4',
} as VideoRouteHandle,
},
// 体悟模块(导览 + 5 个场景)
{
path: 'reflection',
element: <ZhanglepingReflection />,
},
{
path: 'reflection1',
element: <ZhanglepingReflection1 />,
},
{
path: 'reflection2',
element: <ZhanglepingReflection2 />,
},
{
path: 'reflection3',
element: <ZhanglepingReflection3 />,
},
{
path: 'reflection4',
element: <ZhanglepingReflection4 />,
},
{
path: 'reflection5',
element: <ZhanglepingReflection5 />,
},
// 绘制模块
{
path: 'draw',
element: <ZhanglepingDraw />,
},
{
path: 'draw1',
element: <ZhanglepingDraw1 />,
},
// 内化模块
{
path: 'internalization',
element: <ZhanglepingInternalization />,
},
],
},