feat: 更新场景和组件,优化用户体验

- 更新多个场景中的引导对话,提升学习互动性。
- 修改组件以清理不必要的学习引导弹窗,简化用户流程。
- 调整文本内容,确保信息准确性和一致性。
- 添加背景音乐控制,增强沉浸式体验。
This commit is contained in:
zhongyidian committed 2026-01-13 18:48:10 +08:00
1 parent d226283e15
commit 71f607f6a3
46 files changed
+423 -372

No files matched your search

@@ -21,6 +21,8 @@ export interface YinyuanBattleProps {
isAllViewed: boolean;
/** 线索状态 */
clueStates: Record<string, boolean>;
/** 米棉之战是否已解决 */
isMimianSolved: boolean;
/** 文件点击回调 */
onFileClick: () => void;
/** 线索点击回调 */
@@ -37,6 +39,7 @@ export const YinyuanBattle = ({
expandedFile,
isAllViewed,
clueStates,
isMimianSolved,
onFileClick,
onClueClick,
onPlayVideo,
@@ -45,6 +48,18 @@ export const YinyuanBattle = ({
const { triggerPuzzleAnimation } = usePuzzleAnimation();
const { isPuzzleUnlocked } = usePuzzleStore();
// 当米棉之战解决后,隐藏银元之战的走势图
useEffect(() => {
if (isMimianSolved) {
state.setShowTrendChartIcon(false);
// 如果 guide2 正在显示,也关闭它
if (state.showGuide2) {
state.setShowGuide2(false);
}
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isMimianSolved]);
// 监听"前往解决"按钮出现的条件,显示第一个提示
useEffect(() => {
const shouldShowGuide1 =
@@ -77,11 +92,13 @@ export const YinyuanBattle = ({
]);
// 监听走势图图标出现的条件,显示第二个提示
// 注意:如果米棉之战已解决,则不显示走势图提示
useEffect(() => {
const shouldShowGuide2 =
state.isYinyuanSolved &&
state.showTrendChartIcon &&
!state.hasShownGuide2;
!state.hasShownGuide2 &&
!isMimianSolved; // 米棉之战解决后不再显示提示
if (shouldShowGuide2) {
// 延迟一下,确保走势图已经渲染
@@ -97,6 +114,7 @@ export const YinyuanBattle = ({
state.hasShownGuide2,
state.setShowGuide2,
state.setHasShownGuide2,
isMimianSolved,
]);
// 监听走势图大图打开的条件,显示第三个提示
@@ -125,7 +143,7 @@ export const YinyuanBattle = ({
// 关闭多选题1,显示旁白文字(图2)
state.setShowQuiz1(false);
state.setNarration2Text(
`六月五日,上海政府抛出十万银元,力图以银元制服银元,使价格回跌。全市举行了"反对银元投机,保障人民生活"的游行和宣传。上海市军委会主任陈毅在全市集会上警告投机奸商"赶快洗手不干,否则勿谓言之不预"。但这两手收效仍微。十万银元被投机商人一吸而空,六月七日银元每元的价格涨到一千八百元人民币。陈云同志判断:'单纯的经济手段已不足以震慑敌人,必须辅以坚定的行政与法律手段。`
`六月五日,上海政府抛出十万银元,力图以银元制服银元,使价格回跌。全市举行了"反对银元投机,保障人民生活"的游行和宣传。上海市军委会主任陈毅在全市集会上警告投机奸商"赶快洗手不干,否则勿谓言之不预"。但这两手收效仍微。十万银元被投机商人一吸而空,六月七日银元每元的价格涨到一千八百元人民币。陈云同志判断:"单纯的经济手段已不足以震慑敌人,必须辅以坚定的行政与法律手段。"`
);
state.setShowNarration2(true);
}
@@ -46,7 +46,7 @@ export const YinyuanQuizzes = ({
{/* 多选题1 - 点击引导图标后显示 */}
<MultipleChoiceQuizPanel
visible={showQuiz1}
title="(多选题)面对银元投机狂潮,你认为首要突破口是? ()"
title="(多选题)面对银元投机狂潮,你认为首要突破口是? "
options={[
{ value: "A", label: "A. 政治攻势(警告、约谈)" },
{ value: "B", label: "B. 经济手段(抛售银元,以银元打银元)" },
@@ -75,11 +75,11 @@ export const YinyuanQuizzes = ({
{/* 多选题2(图3)- 关闭旁白后显示 */}
<MultipleChoiceQuizPanel
visible={showQuiz2}
title="(多选题)面对投机商的猖狂反扑,下一步应采取何种决定性措施?"
title="(多选题)面对投机商的猖狂反扑,下一步应采取哪些决定性措施?"
options={[
{ value: "A", label: "A. 加大银元抛售量,耗尽投机资本。" },
{ value: "B", label: "B. 查封投机核心场所,逮捕首要分子。" },
{ value: "C", label: "C. 颁布法令,严禁银元计价流通。" },
{ value: "A", label: "A. 加大银元抛售量,耗尽投机资本" },
{ value: "B", label: "B. 查封投机核心场所,逮捕首要分子" },
{ value: "C", label: "C. 颁布法令,严禁银元计价流通" },
]}
correctAnswer={["A", "B", "C"]}
errorMessage="单一措施效果有限,请尝试综合施策。"
@@ -103,4 +103,3 @@ export const YinyuanQuizzes = ({
</>
);
};