feat: 完善课程学习与技能树体验

完善课程资源、学习进度与技能树解锁体验,统一视频播放与引导相关交互。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
zhongyidianandClaude Opus 4.7 committed 2026-05-24 10:30:18 +08:00
1 parent 6f289959be
commit 3e258b87d9
314 files changed
+7020 -3386

No files matched your search

@@ -9,7 +9,12 @@ import { Video } from '@/components'
import QuestionQuiz, {
type Question,
} from '@/components/QuestionQuiz/QuestionQuiz.vue'
import { getPublicPath, getStaticImage, IMAGE_PATHS } from '@/utils'
import {
getPublicPath,
getStaticImage,
IMAGE_PATHS,
getVideoPoster,
} from '@/utils'
import { useBasicElementsStore } from '@/stores/modules/basic-elements'
const router = useRouter()
@@ -62,7 +67,9 @@ const rawSteps = [
id: 'step6',
label: '摄影基础',
content: '神奇的微距摄影',
videoUrl: getPublicPath('video/new/shooting-skills/xsdh_sqdwjsy_batch.mp4'),
videoUrl: getPublicPath(
'video/new/shooting-skills/xinshou_shenqideweijusheying.mp4',
),
type: 'post' as const,
},
{
@@ -222,10 +229,7 @@ const handleVideoChange = () => {
status.value = true
return
}
nextTick(() => {
// 使用受控播放来触发下一个视频自动播放
playing.value = true
})
playing.value = true
}
const handleClose = () => {
@@ -257,9 +261,7 @@ const handleStepClick = (index: number) => {
showQuiz.value = false
currentVideoIndex.value = index
currentNavigationStep.value = index
nextTick(() => {
playing.value = true
})
playing.value = true
}
const handleStepNavigationClose = () => {
@@ -330,6 +332,7 @@ onBeforeRouteLeave((to) => {
<Video
v-if="currentVideo"
:src="currentVideo"
:poster="getVideoPoster(currentVideo)"
v-model="playing"
:muted="false"
:volume="1"
@@ -357,7 +360,6 @@ onBeforeRouteLeave((to) => {
<!-- 步骤导航抽屉 -->
<StepNavigation
:visible="showStepNavigation"
:background-image="getStaticImage('work/vlog背景全屏待定')"
:steps="navigationSteps"
:current-step-index="currentNavigationStep"
:completed-steps="completedNavigationSteps"