lex 1 year ago
parent
commit
907e9321f3

+ 29 - 21
src/views/courseware-list/component/book/index.tsx

@@ -19,7 +19,10 @@ import CoursewareDetail from '@/custom-plugins/guide-page/courseware-detail';
 import { usePageVisibility } from '@vant/use';
 import { state } from '@/state';
 import TheNoticeBar from '@/components/the-noticeBar';
-import { api_lessonDetailCourseware, api_classDetailCourseware } from '../../api';
+import {
+  api_lessonDetailCourseware,
+  api_classDetailCourseware
+} from '../../api';
 import SelectCoursewarePop from '@/components/select-courseware-pop';
 
 export default defineComponent({
@@ -59,7 +62,7 @@ export default defineComponent({
       list: [] as any[][],
       lastTime: localStorage.getItem(lastTimeKey),
       isClick: false,
-      coursewareList: [] as any,
+      coursewareList: [] as any
     });
     const showSelectCourseware = ref(false);
     const showGuide = ref(false);
@@ -287,34 +290,41 @@ export default defineComponent({
           showToast('暂无资源');
           return;
         }
+
         if (item.coursewareNum) {
           try {
-            const res = props.tab == 'all' ? await api_lessonDetailCourseware({
-              lessonCoursewareKnowledgeDetailId: item.id,
-            }): await api_classDetailCourseware({
-              lessonCoursewareKnowledgeDetailId: item.id,
-            })
+            const res =
+              props.tab == 'all'
+                ? await api_lessonDetailCourseware({
+                    lessonCoursewareKnowledgeDetailId: item.id
+                  })
+                : await api_classDetailCourseware({
+                    lessonCoursewareKnowledgeDetailId: item.id
+                  });
             if (res?.code == 200 && res.data?.length) {
               // console.log(res.data)
               res.data.forEach((n: any) => {
-                n.coursewareDetailKnowledgeId = n.coursewareDetailKnowledgeId || item.id
-                n.zjName = item.name // 章节name
-              })             
+                n.coursewareDetailKnowledgeId =
+                  n.coursewareDetailKnowledgeId || item.id;
+                n.lessonCoursewareId = item.lessonCoursewareId;
+                n.lessonCoursewareDetailId = item.lessonCoursewareDetailId;
+                n.zjName = item.name; // 章节name
+              });
               data.coursewareList = res.data;
               // 如果只有一个课件,直接进入该课件
               if (res.data.length == 1) {
-                handleOpenPlay(res.data[0])
+                handleOpenPlay(res.data[0]);
               } else {
                 // 如果有多个课件,需要选择一个课件进入上课页面
                 showSelectCourseware.value = true;
               }
-            } 
+            }
           } catch {
             //
           }
         }
       }
-    }
+    };
     const handleOpenPlay = async (item: any) => {
       if (item.id) {
         localStorage.setItem(lastTimeKey, item.id);
@@ -326,7 +336,7 @@ export default defineComponent({
           name: item.zjName,
           subjectId: props.subjectId,
           tab: props.tab, // 当前切换的是哪个类型
-          coursewareDetailKnowledgeId: item.coursewareDetailKnowledgeId, // 章节id
+          coursewareDetailKnowledgeId: item.coursewareDetailKnowledgeId // 章节id
         });
         const url =
           location.origin + location.pathname + '#/courseware-play?' + query;
@@ -474,16 +484,14 @@ export default defineComponent({
           )}
         </div>
         {/* {showGuide.value ? <CoursewareDetail onChangeShowGuide={changeShowGuide} ref={CoursewareDetailRef}></CoursewareDetail> : null} */}
-        {
-          showSelectCourseware.value && 
-          <SelectCoursewarePop 
-            list={data.coursewareList} 
+        {showSelectCourseware.value && (
+          <SelectCoursewarePop
+            list={data.coursewareList}
             onClose={() => {
               showSelectCourseware.value = false;
             }}
-            onSelect={(item) => handleOpenPlay(item)}
-          ></SelectCoursewarePop>
-        }
+            onSelect={item => handleOpenPlay(item)}></SelectCoursewarePop>
+        )}
       </div>
     );
   }

+ 12 - 7
src/views/courseware-play/index.tsx

@@ -181,7 +181,7 @@ export default defineComponent({
     //  切换单元临时数据
     const temporaryData = reactive({
       dyId: '', // 单元id
-      zjId: '', // 章节id
+      zjId: '' // 章节id
     });
     const getDetail = async () => {
       data.allList = [];
@@ -248,7 +248,7 @@ export default defineComponent({
       let resourceId: any = null;
       // 课程
       if (courseList.length > 0) {
-        resourceId = courseList[0].id
+        resourceId = courseList[0].id;
         data.knowledgePointList = courseList.map((item: any) => {
           return {
             ...item,
@@ -297,11 +297,13 @@ export default defineComponent({
           isRender: false // 是否渲染了
         };
       });
-      const resourceIndex = data.itemList.findIndex((resource: any) => resource.id === resourceId)
+      const resourceIndex = data.itemList.findIndex(
+        (resource: any) => resource.id === resourceId
+      );
       setTimeout(() => {
-        handleSwipeChange(resourceIndex)
+        handleSwipeChange(resourceIndex);
       }, 0);
-      
+
       console.log('资源', data.itemList, resourceIndex);
       setTimeout(() => {
         data.animationState = 'end';
@@ -819,6 +821,7 @@ export default defineComponent({
           }
         }
       }
+
       // 判断当前章节下面课程是否有内容,否则往下一个章节走
       if (lessonStatus) {
         return true;
@@ -842,6 +845,7 @@ export default defineComponent({
         }
 
         if (nextLessonStatus) {
+          console.log(nextLessonStatus, 'nextLessonStatus');
           return true;
         }
       }
@@ -859,12 +863,13 @@ export default defineComponent({
 
     // 加载新的章节里的课件
     const loadNewCourseware = async (item: any) => {
-      data.itemList = []
+      data.itemList = [];
       loadingClass.value = true;
       // activeData.coursewareDetailKnowledgeId = item.coursewareDetailKnowledgeId;
       // activeData.lessonCoursewareDetailId = item.lessonCoursewareDetailId;
       if (route.query.tab == 'all') {
-        activeData.coursewareDetailKnowledgeId = item.coursewareDetailKnowledgeId;
+        activeData.coursewareDetailKnowledgeId =
+          item.coursewareDetailKnowledgeId;
         localStorage.setItem(lastTimeKey, item.coursewareDetailKnowledgeId);
       } else {
         activeData.lessonCoursewareDetailId = temporaryData.dyId;

+ 13 - 2
src/views/tempo-practice/index.tsx

@@ -39,7 +39,7 @@ export default defineComponent({
       default: ''
     }
   },
-  setup(props) {
+  setup(props, { expose }) {
     const route = useRoute();
     const state = reactive({
       platform: route.query.platform, // microapp 老师端应用里面打开单独处理返回逻辑
@@ -148,9 +148,13 @@ export default defineComponent({
           handleStop();
         }
       }
+
+      if (ev.data.api === 'resetPlay') {
+        reesetSetting();
+      }
     };
 
-    onMounted(() => {
+    const reesetSetting = () => {
       try {
         let dataJson = props.dataJson;
         if (route.query.dataJson) {
@@ -169,7 +173,10 @@ export default defineComponent({
       } catch {
         //
       }
+    };
 
+    onMounted(() => {
+      reesetSetting();
       state.speedList.forEach((item: any) => {
         if (item.value === setting.speed) item.color = '#1CACF1';
       });
@@ -183,6 +190,10 @@ export default defineComponent({
     onUnmounted(() => {
       window.removeEventListener('message', onIframeHandle);
     });
+
+    expose({
+      reesetSetting
+    });
     return () => (
       <div
         class={[