feat: 完善实战进度与技能树联动

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
zhongyidianandClaude Opus 4.8 committed 2026-06-23 10:15:57 +08:00
1 parent 3e258b87d9
commit dd233e102b
194 files changed
+2915 -1481

No files matched your search

+12 -3
View File
@@ -1,5 +1,5 @@
<script lang="ts" setup>
import { useRouter } from 'vue-router'
import { useRoute, useRouter } from 'vue-router'
import { Video } from '@/components'
import { ImgButton } from '@/components/Button'
import PracticeRatingModal, {
@@ -11,6 +11,7 @@ import { computed, ref } from 'vue'
import { GuideSteps, GuideStepsItem } from '@/components/Guide'
const router = useRouter()
const route = useRoute()
const store = useInterviewStore()
const guideKey = 'interview-practice-video-rating'
@@ -88,6 +89,13 @@ const handleSaveEvaluation = (items: PracticeRatingItem[]): void => {
store.setPracticeWorkRating(workKey.value, toScores(items))
}
const handleVideoEnded = (): void => {
const watchKey = route.query.watchKey
if (typeof watchKey === 'string' && watchKey) {
store.markPracticeVideoWatched(watchKey)
}
}
/** 保存弹窗 */
const showModal = ref<boolean>(false)
@@ -105,7 +113,7 @@ const handleBack = (): void => {
@click="handleBack"
/>
<ImgButton
class="absolute right-0 top-1/2 -translate-y-1/2 z-50"
class="btn-1 absolute right-0 top-1/2 -translate-y-1/2 z-50"
image="vlog/practice/评分"
@click="showModal = true"
/>
@@ -116,6 +124,7 @@ const handleBack = (): void => {
:muted="false"
:controls="true"
:loop="false"
@ended="handleVideoEnded"
/>
<PracticeRatingModal
@@ -130,7 +139,7 @@ const handleBack = (): void => {
<GuideSteps
:visible="showGuide"
highlight-selector=".btn-1"
position-offset-y="60%"
position-offset-y="85%"
@complete="handleRatingGuideComplete"
>
<GuideStepsItem audio-src="/audio/py_6_008.MP3">