feat: 更新音频和引导对话,优化用户体验
- 在多个场景中添加音频资源,增强学习互动性。 - 更新引导对话文本,确保信息准确性和一致性。 - 调整组件结构,清理不必要的代码,提升可维护性。 - 引入结束窗口,鼓励用户深入了解历史背景。
This commit is contained in:
1 parent
d7ff7d3a45
commit
6e106032fd
141 files changed
+1375
-479
No files matched your search
@@ -6,6 +6,7 @@ import { getBackgroundImage, getStaticImage, getPublicPath } from "@/lib/utils";
|
||||
import { useNavigate, useParams } from "react-router-dom";
|
||||
import ViseAssemblyDialog from "./scene3/ViseAssemblyDialog";
|
||||
import type { VideoRef } from "@/components/video";
|
||||
import { QuizDialog } from "./components";
|
||||
|
||||
const starName = "huangyanpei";
|
||||
|
||||
@@ -15,6 +16,9 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
moduleName: string;
|
||||
}>();
|
||||
|
||||
//喇叭考题弹窗
|
||||
const [showQuizDialog, setShowQuizDialog] = useState(false);
|
||||
|
||||
const [showGuide1, setShowGuide1] = useState(true);
|
||||
const [showDialog, setShowDialog] = useState(false);
|
||||
const [showQuiz, setShowQuiz] = useState(false);
|
||||
@@ -30,11 +34,11 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
}
|
||||
|
||||
const progressCount = visited.size;
|
||||
const total = 2;
|
||||
const total = 3;
|
||||
const completed = progressCount >= total;
|
||||
const subtitle = completed
|
||||
? "探索中华职业学院·立业之本·铁工科(已完成)"
|
||||
: `探索中华职业学院·立业之本·铁工科(${progressCount}/${total})`;
|
||||
? "探索中华职业学校·立业之本·铁工科(已完成)"
|
||||
: `探索中华职业学校·立业之本·铁工科(${progressCount}/${total})`;
|
||||
const subtitleClassName = completed
|
||||
? "text-[#fff998] [text-shadow:_0_8px_8px_rgba(0,0,0,0.35),_0_0_16px_rgba(0,0,0,0.25)]"
|
||||
: undefined;
|
||||
@@ -64,6 +68,15 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
}}
|
||||
/>
|
||||
|
||||
<Image
|
||||
className="absolute left-5 top-5"
|
||||
src={getStaticImage("huangyanpei/reflection/components/喇叭1")}
|
||||
button
|
||||
onClick={() => {
|
||||
setShowQuizDialog(true);
|
||||
}}
|
||||
/>
|
||||
|
||||
{/* 第一段引导 */}
|
||||
<StudyGuideModal
|
||||
visible={showGuide1}
|
||||
@@ -73,7 +86,7 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
>
|
||||
终于到中华职业学校啦!这里是中国近代职教的摇篮,"免学费、包分配",还能学真手艺,快来练就一技之长。
|
||||
{"\n"}
|
||||
你选了学技术,那就来挑战制作中华职校的"明星产品"——台钳吧!当年这台钳还拿过巴拿马万国博览会金奖呢
|
||||
你选了学技术,那就来挑战制作中华职校的"明星产品"——台钳吧!当年这台钳还拿过巴拿马万国博览会金奖呢!
|
||||
</StudyGuideModal>
|
||||
|
||||
{/* 互动展品光标:组装台钳互动 */}
|
||||
@@ -120,7 +133,7 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
{/* 多选题答题框 */}
|
||||
<MultipleChoiceQuizPanel
|
||||
visible={showQuiz}
|
||||
title="题目1 (多选题) 制作台钳需要哪些工具?(多选)"
|
||||
title="【多选】 制作台钳需要哪些工具?"
|
||||
options={[
|
||||
{ value: "A", label: "A. 锯子" },
|
||||
{ value: "B", label: "B. 毛笔" },
|
||||
@@ -128,7 +141,14 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
{ value: "D", label: "D. 铁锤" },
|
||||
]}
|
||||
correctAnswer={["A", "C", "D"]}
|
||||
errorMessage="毛笔是写字的哦! 台钳是铁制品,得用锯子、锉刀、铁锤这些工具,再选一次。"
|
||||
errorMessage={(selectedValues) => {
|
||||
// 如果选择了B,显示包含"毛笔是写字的哦"的提示
|
||||
if (selectedValues.includes("B")) {
|
||||
return "毛笔是写字的哦!台钳是铁制品,得用锯子、锉刀、铁锤这些工具,再选一次吧!";
|
||||
}
|
||||
// 其他情况(单选A或C或D,或者AC、CD、AD等组合)
|
||||
return "台钳是铁制品,得用锯子、锉刀、铁锤这些工具,再选一次吧!";
|
||||
}}
|
||||
minSelections={1}
|
||||
onSubmit={(values, isCorrect) => {
|
||||
if (isCorrect) {
|
||||
@@ -194,6 +214,15 @@ const HuangyanpeiReflectionScene3 = () => {
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
<QuizDialog
|
||||
visible={showQuizDialog}
|
||||
onClose={() => setShowQuizDialog(false)}
|
||||
onComplete={() => {
|
||||
setShowQuizDialog(false);
|
||||
setVisited((prev) => new Set(prev).add(3));
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user