feat: 完善课程学习与技能树体验
完善课程资源、学习进度与技能树解锁体验,统一视频播放与引导相关交互。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
No files matched your search
@@ -1,12 +1,20 @@
|
||||
<template>
|
||||
<div class="app-container" :style="containerStyle">
|
||||
<div class="app-content overflow-hidden" :style="scaleStyle">
|
||||
<div
|
||||
class="app-container"
|
||||
:style="containerStyle"
|
||||
>
|
||||
<div
|
||||
class="app-content overflow-hidden"
|
||||
:style="scaleStyle"
|
||||
>
|
||||
<router-view v-slot="{ Component }">
|
||||
<KeepAlive :include="['Action', 'Skill']">
|
||||
<component :is="Component" />
|
||||
</KeepAlive>
|
||||
</router-view>
|
||||
</div>
|
||||
|
||||
<div class="rotate-hint">请横屏观看,以获得最佳体验</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -17,9 +25,10 @@ import {
|
||||
useVlogStore,
|
||||
useFilmStore,
|
||||
useInterviewStore,
|
||||
useBasicElementsStore
|
||||
useBasicElementsStore,
|
||||
} from '@/stores'
|
||||
import { onMounted } from 'vue'
|
||||
import { syncAllCompletedYibanLessons } from '@/utils/yibanLessonProgress'
|
||||
|
||||
// 使用等比例缩放hook
|
||||
const { scaleStyle } = useScale()
|
||||
@@ -37,7 +46,7 @@ onMounted(async () => {
|
||||
if (courseId || uid) {
|
||||
userStore.setCourseInfo({
|
||||
courseId: courseId ?? null,
|
||||
uid: uid ?? null
|
||||
uid: uid ?? null,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -45,8 +54,10 @@ onMounted(async () => {
|
||||
vlogStore.loadVlogStore(),
|
||||
filmStore.loadFilmStore(),
|
||||
interviewStore.loadInterviewStore(),
|
||||
basicElementsStore.loadBasicElementsStore()
|
||||
basicElementsStore.loadBasicElementsStore(),
|
||||
])
|
||||
|
||||
await syncAllCompletedYibanLessons()
|
||||
})
|
||||
|
||||
// 容器样式
|
||||
@@ -55,11 +66,39 @@ const containerStyle = {
|
||||
height: '100vh',
|
||||
overflow: 'hidden',
|
||||
position: 'relative' as const,
|
||||
background: '#000'
|
||||
background: '#000',
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style scoped>
|
||||
.rotate-hint {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 200000;
|
||||
display: none;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 24px;
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
line-height: 1.5;
|
||||
text-align: center;
|
||||
background: rgba(0, 0, 0, 0.55)
|
||||
radial-gradient(
|
||||
circle at center,
|
||||
rgba(255, 255, 255, 0.1),
|
||||
rgba(0, 0, 0, 0.6)
|
||||
);
|
||||
}
|
||||
|
||||
@media (hover: none) and (pointer: coarse) and (orientation: portrait) {
|
||||
.rotate-hint {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- <style>
|
||||
#app {
|
||||
font-family:
|
||||
-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell',
|
||||
@@ -67,4 +106,4 @@ const containerStyle = {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
</style>
|
||||
</style> -->
|
||||
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 823 B |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 628 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 206 KiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 209 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 205 KiB |
|
After Width: | Height: | Size: 194 KiB |
|
After Width: | Height: | Size: 217 KiB |
|
After Width: | Height: | Size: 307 KiB |
|
After Width: | Height: | Size: 212 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 209 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 208 KiB |
|
After Width: | Height: | Size: 202 KiB |
|
After Width: | Height: | Size: 205 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 208 KiB |
|
After Width: | Height: | Size: 234 KiB |
|
After Width: | Height: | Size: 233 KiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 237 KiB |
|
After Width: | Height: | Size: 228 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 235 KiB |
|
After Width: | Height: | Size: 232 KiB |
|
After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 256 KiB |
|
After Width: | Height: | Size: 241 KiB |
|
After Width: | Height: | Size: 247 KiB |
|
After Width: | Height: | Size: 242 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 280 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 270 KiB |
|
After Width: | Height: | Size: 272 KiB |
|
After Width: | Height: | Size: 282 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 280 KiB |
|
After Width: | Height: | Size: 255 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 275 KiB |
|
After Width: | Height: | Size: 269 KiB |
|
After Width: | Height: | Size: 282 KiB |
|
After Width: | Height: | Size: 269 KiB |
|
After Width: | Height: | Size: 275 KiB |
|
After Width: | Height: | Size: 253 KiB |
|
After Width: | Height: | Size: 256 KiB |
|
After Width: | Height: | Size: 287 KiB |
|
After Width: | Height: | Size: 219 KiB |
|
After Width: | Height: | Size: 275 KiB |
|
After Width: | Height: | Size: 257 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
Before Width: | Height: | Size: 399 KiB After Width: | Height: | Size: 774 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 52 KiB |