|
@@ -263,7 +263,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 提问 -->
|
|
<!-- 提问 -->
|
|
|
<template v-else-if="dialogue.type === 'quest'">
|
|
<template v-else-if="dialogue.type === 'quest'">
|
|
|
<div class="dialogue-role-select">
|
|
<div class="dialogue-role-select">
|
|
@@ -404,7 +404,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<button
|
|
<button
|
|
|
- v-if="dialogue.voiceoverUrl && dialogue.type === 'digital'"
|
|
|
|
|
|
|
+ v-if="dialogue.voiceoverUrl"
|
|
|
class="play-btn small"
|
|
class="play-btn small"
|
|
|
@click="playVoiceover(dialogue.voiceoverUrl)"
|
|
@click="playVoiceover(dialogue.voiceoverUrl)"
|
|
|
>
|
|
>
|
|
@@ -631,7 +631,9 @@ const canProceed = computed(() => {
|
|
|
case 2:
|
|
case 2:
|
|
|
case 3:
|
|
case 3:
|
|
|
return scriptData.sections.every(section =>
|
|
return scriptData.sections.every(section =>
|
|
|
- section.backgroundImage.url && section.dialogues.every(dialogue => dialogue.type !== "digital" || dialogue.voiceoverUrl)
|
|
|
|
|
|
|
+ section.backgroundImage.url && section.dialogues.every(dialogue =>
|
|
|
|
|
+ ((dialogue.type === 'digital' || dialogue.type === 'quest') && dialogue.roleName && dialogue.content.trim() && dialogue.voiceoverUrl) ||
|
|
|
|
|
+ (dialogue.type === 'user' && dialogue.roleName && dialogue.content.trim()))
|
|
|
)
|
|
)
|
|
|
default:
|
|
default:
|
|
|
return false
|
|
return false
|
|
@@ -1123,10 +1125,10 @@ onMounted(async () => {
|
|
|
Object.assign(scriptData, cachedData)
|
|
Object.assign(scriptData, cachedData)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 设置初始步骤
|
|
// 设置初始步骤
|
|
|
currentStep.value = props.initialStep
|
|
currentStep.value = props.initialStep
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
const params = {
|
|
const params = {
|
|
|
pageOn: 1,
|
|
pageOn: 1,
|