chore: 更新素材资源和组件优化

- 更新陈云、鲁迅、聂耳等故居的展品图片素材
- 更新拼图细节图片
- 优化学习地图底图和详情图
- 更新音频素材
- 优化各故居 store 和页面组件
This commit is contained in:
zhongyidian committed 2026-08-12 11:35:09 +08:00
1 parent 165374b986
commit d445f81e60
159 files changed
+4238 -654

No files matched your search

+22 -37
View File
@@ -254,45 +254,29 @@ const SunzhongshanInternalization = () => {
const handleDragChange = (val: DragFillResult[]) => {
setDragQuizValues((prev) => ({ ...prev, [item.id]: val }))
setDragQuizErrors((prev) => ({ ...prev, [item.id]: '' }))
}
if (!item.blanks || val.length < item.blanks.length) return
// 如果有位置特定的答案映射,使用它进行验证
if (item.correctAnswersMap) {
const isCorrect = item.blanks.every((blank) => {
const filledResult = val.find((v) => v.blankId === blank.id)
const correctAnswer = item.correctAnswersMap![blank.id]
return filledResult?.optionValue === correctAnswer
})
if (isCorrect) {
setActiveSuccess(item.id)
setResumeCallback(() => resume)
} else {
setDragQuizErrors((prev) => ({
...prev,
[item.id]: '再想一想,选择正确答案~',
}))
}
} else {
// 如果没有位置特定的映射,使用原来的逻辑(检查是否包含了所有正确答案)
const filledAnswers = val.map((v) => v.optionValue)
const answerSet = new Set(correctAnswers)
const filledSet = new Set(filledAnswers)
const isCorrect =
answerSet.size === filledSet.size &&
[...answerSet].every((answer) => filledSet.has(answer))
if (isCorrect) {
setActiveSuccess(item.id)
setResumeCallback(() => resume)
} else {
setDragQuizErrors((prev) => ({
...prev,
[item.id]: '再想一想,选择正确答案~',
}))
}
const handleDragSubmit = (val: DragFillResult[]) => {
const isCorrect = item.correctAnswersMap
? item.blanks!.every((blank) => {
const filled = val.find((result) => result.blankId === blank.id)
return filled?.optionValue === item.correctAnswersMap![blank.id]
})
: (() => {
const filledSet = new Set(val.map((result) => result.optionValue))
const answerSet = new Set(correctAnswers)
return (
answerSet.size === filledSet.size &&
[...answerSet].every((answer) => filledSet.has(answer))
)
})()
if (isCorrect) {
setActiveSuccess(item.id)
setResumeCallback(() => resume)
return
}
setDragQuizErrors((prev) => ({ ...prev, [item.id]: '再想一想,选择正确答案~' }))
setDragQuizValues((prev) => ({ ...prev, [item.id]: [] }))
}
return (
@@ -312,6 +296,7 @@ const SunzhongshanInternalization = () => {
value={dragQuizValues[item.id] || []}
error={dragQuizErrors[item.id]}
onChange={handleDragChange}
onSubmit={handleDragSubmit}
/>
<SuccessAlert
visible={activeSuccess === item.id}