408249787@qq.com 1 týždeň pred
rodič
commit
f11378f26b
3 zmenil súbory, kde vykonal 28 pridanie a 11 odobranie
  1. 11 2
      components/lock.uvue
  2. 16 8
      pages/catalog/detail.uvue
  3. 1 1
      pages/test/index.uvue

+ 11 - 2
components/lock.uvue

@@ -12,7 +12,7 @@ const props = defineProps({
     default: () => ({})
   },
   type: {
-    type: String as PropType<'vip' | 'course'>,
+    type: String as PropType<'vip' | 'course' | 'test'>,
     default: 'vip'
   },
   finish: {
@@ -28,6 +28,7 @@ const visible = ref(false)
 const visible2 = ref(false)
 const visible3 = ref(false)
 const visible4 = ref(false)
+const visible5 = ref(false)
 const msg = ref('')
 function handleOpen() {
   console.log(1)
@@ -49,6 +50,9 @@ function handleOpen() {
     case 'vip':
       visible3.value = true
       break;
+    case 'test':
+      visible5.value = true
+      break;
   }
 
 }
@@ -132,7 +136,12 @@ const handlePay = async () => {
       <cl-button class="mt-4" size="large" type="warn" block @tap="visible2 = false"> 返回 </cl-button>
     </view>
   </cl-popup>
-
+  <cl-popup v-model="visible5" showClose :size="400" :show-header="false" direction="center">
+    <view class="p-[40px] ">
+      <cl-text class="text-center" color="#000" :size="20"> 请先学习完本章节课程再来解锁! </cl-text>
+      <cl-button class="mt-4" size="large" type="warn" block @tap="visible5 = false"> 返回 </cl-button>
+    </view>
+  </cl-popup>
   <cl-popup v-model="visible3" showClose :size="400" :show-header="false" direction="center">
     <view class="p-[40px] ">
       <cl-text class="text-center" color="#000" :size="20"> 小朋友,快叫爸爸妈妈帮忙成为会员,解锁更多精彩内容吧! </cl-text>

+ 16 - 8
pages/catalog/detail.uvue

@@ -50,11 +50,12 @@ function initOnlibeRecord() {
 }
 
 const course = ref<SubjectCourseResult>()
+const nextCourse = ref<SubjectCourseResult>()
 //通过路由参数获取课程id
-async function fetchCatalog(isRefresh = false) {
+async function fetchCatalog() {
   course.value = await fetchSubjectCourseApp({ id: user.courseId.value })
   progressStatus.value = course.value?.courseUserProgress.status
-  progress2.value = isRefresh ? 1 : Number(router.query().progress)
+  progress2.value = Number(router.query().progress)
   console.log(progress2.value);
   // if (!course.value?.courseUserProgress) {
   //   await updateSubjectProgress({
@@ -72,6 +73,10 @@ async function fetchCatalog(isRefresh = false) {
   //   progress2.value = 1
   // }
 }
+async function fetchNextCatalog(id: string) {
+  nextCourse.value = await fetchSubjectCourseApp({ id })
+
+}
 onMounted(async () => {
   isLoading.value = true
   await fetchCatalog()
@@ -103,7 +108,7 @@ onShow(async () => {
         })
         console.log(nextCourseId);
         user.setCourseId(nextCourseId)
-        await fetchCatalog(true)
+        await fetchNextCatalog(nextCourseId)
         uni.createVideoContext('video1').pause()
         console.log(222);
         isLoading.value = false
@@ -114,7 +119,7 @@ onShow(async () => {
         })
         console.log(nextCourseId);
         user.setCourseId(nextCourseId)
-        await fetchCatalog(true)
+        await fetchNextCatalog(nextCourseId)
         uni.createVideoContext('video1').pause()
         console.log(222);
         isLoading.value = false
@@ -184,6 +189,7 @@ watch(() => progress2.value, (newVal, oldVal) => {
       }, 2000)
       break
     case 6:
+      console.log(course.value?.testItem?.animationPath);
       data.value.webviewSrc = course.value?.testItem?.animationPath
       router.push({
         path: "/pages/catalog/web-view",
@@ -229,6 +235,8 @@ function handleLoadedMetadata() {
 }
 function playNext() {
   visible.value = false
+  course.value = nextCourse.value
+  progressStatus.value = nextCourse.value?.courseUserProgress.status
   progress2.value = 1
 }
 
@@ -355,13 +363,13 @@ onUnmounted(() => {
     </view>
 
   </cl-page>
-  <cl-popup v-model="visible" direction="center" title="诗词欣赏" :show-header="false" :maskClosable="false">
+  <cl-popup v-model="visible" direction="center" :show-header="false" :maskClosable="false">
     <view class="p-2">
-      <cl-image lazy-load :src="course?.ossIconPath" mode="heightFix"
+      <cl-image lazy-load :src="nextCourse?.ossIconPath" mode="heightFix"
         class="!w-full !h-[28vh] mb-[2vh] rounded-xl"></cl-image>
       <cl-row :gutter="12">
-        <cl-col :span="12"> <cl-button type="info" @click="router.back()">返回</cl-button></cl-col>
-        <cl-col :span="12"> <cl-button type="success" @click="playNext">播放下集</cl-button></cl-col>
+        <cl-col :span="12"> <cl-button size="small" type="info" @click="router.back()">返回</cl-button></cl-col>
+        <cl-col :span="12"> <cl-button size="small" type="success" @click="playNext">播放下集</cl-button></cl-col>
       </cl-row>
     </view>
   </cl-popup>

+ 1 - 1
pages/test/index.uvue

@@ -121,7 +121,7 @@ async function handleSelect(val: SubjectCatalogResult) {
             class="!w-full !h-[28vh] mb-[10px] rounded-xl"></cl-image>
           <text class="text-[4vh] font-bold">{{
             test.name }}</text>
-          <Lock v-if="test?.lockFlag" :record="test" type="course" :finish="!test.lockFlag" />
+          <Lock v-if="test?.lockFlag" type="test" />
         </view>
       </scroll-view>
     </view>