Files
shanghai-residences/src/pages/chenyun/reflection/mimian/MimianQuizzes.tsx
T
2026-04-30 09:17:31 +08:00

293 lines
12 KiB
TypeScript

/**
* 米棉之战题目组件
* 包含单选题1-5、旁白1-3、成功提示框、结束语
*/
import { Narration, SingleChoiceQuizPanel, EndingOverlay } from '@/components'
import SuccessAlert from '@/components/layout/alert/success-alert'
import { getPublicPath } from '@/lib/utils'
export interface MimianQuizzesProps {
/** 是否显示单选题1 */
showQuiz1: boolean
/** 是否显示旁白1 */
showNarration1: boolean
/** 是否显示单选题2 */
showQuiz2: boolean
/** 是否显示旁白2 */
showNarration2: boolean
/** 是否显示单选题3 */
showQuiz3: boolean
/** 是否显示单选题4 */
showQuiz4: boolean
/** 是否显示旁白3 */
showNarration3: boolean
/** 是否显示单选题5 */
showQuiz5: boolean
/** 是否显示旁白5(结束语) */
showNarration5: boolean
/** 是否显示成功提示框 */
showSuccessAlert: boolean
/** 成功提示框内容 */
successAlertContent: string
/** 单选题1提交回调 */
onQuiz1Submit: (value: string, isCorrect: boolean) => void
/** 成功提示框1继续回调 */
onSuccessAlert1Continue: () => void
/** 旁白1关闭回调 */
onNarration1Close: () => void
/** 单选题2提交回调 */
onQuiz2Submit: (value: string, isCorrect: boolean) => void
/** 成功提示框2继续回调 */
onSuccessAlert2Continue: () => void
/** 错误提示框继续回调 */
onErrorAlertContinue: () => void
/** 旁白2关闭回调 */
onNarration2Close: () => void
/** 单选题3提交回调 */
onQuiz3Submit: (value: string, isCorrect: boolean) => void
/** 单选题3成功/错误提示继续回调 */
onQuiz3AlertContinue: (isCorrect: boolean) => void
/** 单选题4提交回调 */
onQuiz4Submit: (value: string, isCorrect: boolean) => void
/** 单选题4成功/错误提示继续回调 */
onQuiz4AlertContinue: (isCorrect: boolean) => void
/** 旁白3关闭回调 */
onNarration3Close: () => void
/** 单选题5提交回调 */
onQuiz5Submit: (value: string, isCorrect: boolean) => void
/** 单选题5成功/错误提示继续回调 */
onQuiz5AlertContinue: (isEndSuccess: boolean) => void
/** 结束语继续回调 */
onNarration5Continue: () => void
}
/**
* 米棉之战题目组件
* 显示所有题目、旁白和提示框
*/
export const MimianQuizzes = ({
showQuiz1,
showNarration1,
showQuiz2,
showNarration2,
showQuiz3,
showQuiz4,
showNarration3,
showQuiz5,
showNarration5,
showSuccessAlert,
successAlertContent,
onQuiz1Submit,
onSuccessAlert1Continue,
onNarration1Close,
onQuiz2Submit,
onSuccessAlert2Continue,
onErrorAlertContinue,
onNarration2Close,
onQuiz3Submit,
onQuiz3AlertContinue,
onQuiz4Submit,
onQuiz4AlertContinue,
onNarration3Close,
onQuiz5Submit,
onQuiz5AlertContinue,
onNarration5Continue,
}: MimianQuizzesProps) => {
return (
<>
{/* 米棉之战 - 单选题1(图1) */}
<SingleChoiceQuizPanel
visible={showQuiz1}
title={`【单选】投机商集中冲击“两白一黑”的核心目的是:`}
options={[
{ value: 'A', label: 'A. 满足市场需求' },
{ value: 'B', label: 'B. 扰乱经济秩序、动摇政权' },
]}
correctAnswer="B"
errorMessage="很抱歉,你选错了!请你再思考一下吧!"
onSubmit={onQuiz1Submit}
/>
{/* 米棉之战 - 成功提示框1 */}
<SuccessAlert
visible={showSuccessAlert && successAlertContent === '恭喜你,选择正确!'}
title="恭喜你,选择正确!"
onContinue={onSuccessAlert1Continue}
/>
{/* 米棉之战 - 旁白1(图2) */}
<Narration
text="为了打击投机资本势力,面对上海米价、纱价等上涨,又同时影响到整个华东和华北、中南等地的情况,陈云于1949年7月17日率领中财委抵达上海,展开了一系列的举措,7月27日至8月15日,陈云主持召开了华东、华北、华中、东北、西北5个大区的财经会议,商讨解决上海和全国面临的严峻经济形势问题和对策。"
visible={showNarration1}
onClose={onNarration1Close}
enableAnimation={false}
audioSrc={getPublicPath('audio/chenyun/mp3_chenyun_32.mp3')}
/>
{/* 米棉之战 - 单选题2(图3) */}
<SingleChoiceQuizPanel
visible={showQuiz2}
title={`【单选】你觉得此时解决上海和全国面临的严峻经济形势问题的对策应该是:`}
options={[
{ value: 'A', label: 'A. 局部限购' },
{ value: 'B', label: 'B. 增发货币' },
{ value: 'C', label: 'C. 全国调运+集中抛售' },
]}
correctAnswer="C"
onWrongSelect={(value) => {
if (value === 'A') {
return '很抱歉,你选错了!当时物价上涨已波及多地区,局部限购无法阻止投机商转移物资炒作。上海米、棉依赖外部供应,本地物资匮乏,限购既不解决缺口,还会加剧民众恐慌,扰乱市场秩序。请你再思考一下吧!'
} else if (value === 'B') {
return '很抱歉,你选错了!当时国民党滥发货币导致的贬值阴影未消,民众对新货币缺乏信任。此时增发人民币,会使货币供应量远超物资总量,重蹈贬值覆辙,削弱人民币信用,让投机气焰更盛。请你再思考一下吧!'
}
}}
onSubmit={onQuiz2Submit}
/>
{/* 米棉之战 - 成功提示框2(单选题2答对后) */}
<SuccessAlert
visible={showSuccessAlert && successAlertContent.includes('全国一盘棋')}
title="恭喜你,选择正确!"
content={successAlertContent}
onContinue={onSuccessAlert2Continue}
/>
{/* 米棉之战 - 错误提示框(单选题2答错后) */}
{/* <SuccessAlert
visible={
showSuccessAlert &&
successAlertContent.includes("很抱歉") &&
!successAlertContent.includes("全国一盘棋")
}
title="很抱歉,你选错了!"
content={successAlertContent}
onContinue={onErrorAlertContinue}
/> */}
{/* 米棉之战 - 旁白2(图4) */}
<Narration
text={`根据“全国一盘棋”的指示,中央政府通过全国范围内的物资调配体系,从多个区域调运米、棉、煤等关键物资支援上海。可是地方在落实推进过程中碰到了现实问题,作为陈云同志的特派员,你应该如何与地方沟通。`}
visible={showNarration2}
onClose={onNarration2Close}
enableAnimation={false}
audioSrc={getPublicPath('audio/chenyun/mp3_chenyun_33.mp3')}
/>
{/* 米棉之战 - 单选题3(图5) */}
<SingleChoiceQuizPanel
visible={showQuiz3}
title="【单选】某地方粮站反馈“本地冬储粮不足,不愿外运”。"
options={[
{ value: 'A', label: 'A. 强制调运,否则追责' },
{
value: 'B',
label: 'B. 中央已协调东北补充常州冬储粮,先保障全国物价稳定',
},
]}
correctAnswer="B"
errorMessage="地方抵触,调运延误多天。请你再思考一下吧!"
onSubmit={onQuiz3Submit}
/>
{/* 米棉之战 - 单选题3成功/错误提示 */}
<SuccessAlert
visible={
showSuccessAlert &&
(successAlertContent.includes('地方配合') || successAlertContent.includes('地方抵触'))
}
title={'恭喜你,选择正确!'}
content={successAlertContent}
onContinue={() => {
const isCorrect = successAlertContent.includes('地方配合')
onQuiz3AlertContinue(isCorrect)
}}
/>
{/* 米棉之战 - 单选题4(图6) */}
<SingleChoiceQuizPanel
visible={showQuiz4}
title="【单选】某地方棉农担心外运后本地纱厂缺原料。"
options={[
{ value: 'A', label: 'A. 全国优先上海,本地暂时忍耐' },
{
value: 'B',
label: 'B. 上海纱厂稳定后,会优先供应本地布匹,实现全国共赢',
},
]}
correctAnswer="B"
errorMessage="棉农抵触,调运量减少。请你再思考一下吧!"
onSubmit={onQuiz4Submit}
/>
{/* 米棉之战 - 单选题4成功/错误提示 */}
<SuccessAlert
visible={
showSuccessAlert &&
(successAlertContent.includes('棉农支持') || successAlertContent.includes('棉农抵触'))
}
title={'恭喜你,选择正确!'}
content={successAlertContent}
onContinue={() => {
const isCorrect = successAlertContent.includes('棉农支持')
onQuiz4AlertContinue(isCorrect)
}}
/>
{/* 米棉之战 - 旁白3(图7) */}
<Narration
text="在以陈云为首的中财委的统一部署下,人民政府在全国范围内调配粮食、棉布和煤炭等商品,在准备充分后,政府开始行动。11月25日,市场物价处在高峰,进入总攻阶段。"
visible={showNarration3}
onClose={onNarration3Close}
enableAnimation={false}
audioSrc={getPublicPath('audio/chenyun/mp3_chenyun_34.mp3')}
/>
{/* 米棉之战 - 单选题5(图8) */}
<SingleChoiceQuizPanel
visible={showQuiz5}
title="【单选】此时,以下哪种举措能够一举获得胜利?"
options={[
{
value: 'A',
label:
'A.突然性、连续性大量抛售,在全国各地同时行动,上海、武汉、西安等地国营公司连续降价抛售粮棉,不给投机资本喘息之机',
},
{
value: 'B',
label: `B.逐步降价,配合舆论引导,每日小幅降价,并通过报纸宣传政府物资充足,试图"劝退"投机商`,
},
]}
correctAnswer="A"
errorMessage="很抱歉,你选错了!投机商此前曾吃下政府平价抛售物资获利。逐步降价加舆论引导难让其信服,他们会持续囤货,政府储备会被消耗,反而让投机商掌控节奏,无法遏制物价上涨。请你再思考一下吧!"
onSubmit={onQuiz5Submit}
/>
{/* 米棉之战 - 单选题5成功/错误提示 */}
<SuccessAlert
visible={
showSuccessAlert &&
(successAlertContent.includes('这契合米棉之战史实') ||
successAlertContent.includes('投机商此前曾吃下'))
}
title={'恭喜你,选择正确!'}
content={successAlertContent}
onContinue={() => {
const isEndSuccess = successAlertContent.includes('这契合米棉之战史实')
onQuiz5AlertContinue(isEndSuccess)
}}
/>
{/* 米棉之战 - 旁白5(结束语)使用统一结语覆盖层组件 */}
<EndingOverlay
visible={showNarration5}
onContinue={onNarration5Continue}
text={
'从“银元之战”查封投机枢纽、稳固人民币根基,到“米棉之战”全国统筹调运、集中抛售击溃投机势力,这场经济战线的“淮海战役”,不仅平定了物价、安定了民心,更印证了“全国一盘棋” strategic智慧与制度优势。当市场秩序重归稳定,新生政权在经济领域站稳脚跟,这份由陈云同志等老一辈革命家铸就的治理经验,也为新时代经济建设埋下了思想伏笔,等待我们在传承中探索新的实践路径。'
}
animationSpeed={200}
audioSrc={getPublicPath('audio/chenyun/mp3_chenyun_35.mp3')}
/>
</>
)
}