feat: 更新音频和引导对话,优化用户体验

- 在多个场景中添加音频资源,增强学习互动性。
- 更新引导对话文本,确保信息准确性和一致性。
- 调整组件结构,清理不必要的代码,提升可维护性。
- 引入结束窗口,鼓励用户深入了解历史背景。
This commit is contained in:
zhongyidian committed 2026-01-15 19:30:17 +08:00
1 parent d7ff7d3a45
commit 6e106032fd
141 files changed
+1375 -479

No files matched your search

+26 -7
View File
@@ -6,6 +6,7 @@ import { getBackgroundImage, getStaticImage, getPublicPath } from "@/lib/utils";
import { useNavigate, useParams } from "react-router-dom";
import TowelSalesDialog from "./scene4/TowelSalesDialog";
import type { VideoRef } from "@/components/video";
import { QuizDialog } from "./components";
const starName = "huangyanpei";
@@ -24,6 +25,9 @@ const HuangyanpeiReflectionScene4 = () => {
const videoRef = useRef<VideoRef>(null);
const [showGuide1, setShowGuide1] = useState(true);
//喇叭考题弹窗
const [showQuizDialog, setShowQuizDialog] = useState(false);
// 处理成功提示的继续和关闭
const handleSuccessAlertContinue = useCallback(() => {
setShowSuccessAlert(false);
@@ -50,7 +54,7 @@ const HuangyanpeiReflectionScene4 = () => {
}
const progressCount = visited.size;
const total = 2;
const total = 3;
const completed = progressCount >= total;
const subtitle = completed
? "探索中华职业学院·立业之本·商科(已完成)"
@@ -75,6 +79,15 @@ const HuangyanpeiReflectionScene4 = () => {
className="absolute top-10 left-1/2 -translate-x-1/2"
/>
<Image
className="absolute left-5 top-5"
src={getStaticImage("huangyanpei/reflection/components/喇叭2")}
button
onClick={() => {
setShowQuizDialog(true);
}}
/>
<Image
className="absolute right-5 top-5"
src={getStaticImage("components/离开")}
@@ -101,7 +114,7 @@ const HuangyanpeiReflectionScene4 = () => {
{/* 选择题1:中华职校商科的核心教学目标 */}
<MultipleChoiceQuizPanel
visible={showQuiz1}
title={`题目 1 (多选题)\n\n中华职校商科的核心教学目标是什么? (多选)`}
title={`【选题】中华职校商科的核心教学目标是什么? `}
options={[
{
value: "A",
@@ -121,7 +134,7 @@ const HuangyanpeiReflectionScene4 = () => {
},
]}
correctAnswer={["B", "C"]}
errorMessage='不对哦! 黄先生倡导"商科要为民族工商业服务", 商科是要培养诚信经营、助力国货发展的人才, 可不能想着投机发财呀, 再选一次;'
errorMessage="不对哦!黄先生倡导“商科要为民族工商业服务”,商科是要培养诚信经营、助力国货发展的人才,可不能想着投机发财呀,再选一次吧!"
minSelections={1}
onSubmit={(values: string[], isCorrect: boolean) => {
if (isCorrect) {
@@ -130,9 +143,6 @@ const HuangyanpeiReflectionScene4 = () => {
setShowSuccessAlert(true);
}
}}
onError={(_error: string) => {
// 答题错误时的处理(组件内部已显示错误信息)
}}
/>
{/* 答题成功提示 */}
@@ -178,7 +188,7 @@ const HuangyanpeiReflectionScene4 = () => {
>
终于到中华职业学校啦!这里是中国近代职教的摇篮,“免学费、包分配”,还能学真手艺,快来练就一技之长。
{"\n"}
现在要完成你的第一个任务:推销中华职校生产的“国货精品”——手工纽扣和纯棉毛巾!当年学生们就是带着这些国货,走街串巷做推销呢
现在要完成你的第一个任务:推销中华职校生产的“国货精品”——手工纽扣和纯棉毛巾!当年学生们就是带着这些国货,走街串巷做推销呢!
</StudyGuideModal>
{showVideo && (
@@ -195,6 +205,15 @@ const HuangyanpeiReflectionScene4 = () => {
}}
/>
)}
<QuizDialog
visible={showQuizDialog}
onClose={() => setShowQuizDialog(false)}
onComplete={() => {
setShowQuizDialog(false);
setVisited((prev) => new Set(prev).add(3));
}}
/>
</div>
);
};