chore: 更新素材资源和组件优化
- 更新陈云、鲁迅、聂耳等故居的展品图片素材 - 更新拼图细节图片 - 优化学习地图底图和详情图 - 更新音频素材 - 优化各故居 store 和页面组件
This commit is contained in:
1 parent
165374b986
commit
d445f81e60
159 files changed
+4238
-654
No files matched your search
@@ -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}
|
||||
|
||||
Reference in new issue
Block a user