| 
					
				 | 
			
			
				@@ -4,7 +4,6 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   reactive, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   onUnmounted, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ref, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  watch, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Transition 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from './index.module.less'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,9 +15,9 @@ import iconDown from './image/icon-down.svg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import iconNote from './image/icon-note.png'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import iconWhiteboard from './image/icon-whiteboard.png'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import iconAssignHomework from './image/icon-assignHomework.svg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import iconOverPreivew from './image/icon-over-preview.svg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Vue3Lottie } from 'vue3-lottie'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import playLoadData from './datas/data.json'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { usePageVisibility } from '@vant/use'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import VideoPlay from './component/video-play'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   useMessage, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -33,6 +32,8 @@ import CardType from '@/components/card-type'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Pen from './component/tools/pen'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import AudioPay from './component/audio-pay'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TrainSettings from './model/train-settings'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { useRoute } from 'vue-router'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { queryCourseware } from '../prepare-lessons/api'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export type ToolType = 'init' | 'pen' | 'whiteboard'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export type ToolItem = { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,6 +46,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: 'CoursewarePlay', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   setup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const message = useMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const route = useRoute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 设置播放容器 16:9 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const parentContainer = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       width: '100vw' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,96 +72,69 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const data = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      detail: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: '' as any, // 预览类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      subjectId: '' as any, // 声部编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      detailId: '' as any, // 编号 - 章节编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // detail: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       knowledgePointList: [] as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       itemList: [] as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showHead: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      isCourse: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      isRecordPlay: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // showHead: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // isCourse: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // isRecordPlay: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       videoRefs: {} as any[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       audioRefs: {} as any[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       modelAttendStatus: false, // 布置作业提示弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       modelTrainStatus: false // 训练设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const activeData = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      isAutoPlay: false, // 是否自动播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // isAutoPlay: false, // 是否自动播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       nowTime: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       model: true, // 遮罩 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       isAnimation: true, // 是否动画 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      videoBtns: true, // 视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      currentTime: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      duration: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // videoBtns: true, // 视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // currentTime: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // duration: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       timer: null as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       item: null as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // const getTempList = async (materialList: any, name: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   const list: any = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   const browserInfo = browser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   for (let j = 0; j < materialList.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     const material = materialList[j]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     list.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       ...material, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       iframeRef: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       videoEle: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       tabName: name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       autoPlay: false, //加载完成是否自动播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       isprepare: false, // 视频是否加载完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //       isRender: false // 是否渲染了 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const getDetail = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.knowledgePointList = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: '1', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          name: '其多列', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title: '其多列', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'VIDEO', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          content: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'https://gyt.ks3-cn-beijing.ksyuncs.com/courseware/1687844560120.mp4', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          url: 'https://gyt.ks3-cn-beijing.ksyuncs.com/courseware/1687844640957.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: '5', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          name: '歌曲表演 大鹿', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title: '歌曲表演 大鹿', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'SONG', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          content: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'https://cloud-coach.ks3-cn-beijing.ksyuncs.com/1686819360752.mp3', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          url: 'https://gyt.ks3-cn-beijing.ksyuncs.com/courseware/1687916228530.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // https://gyt.ks3-cn-beijing.ksyuncs.com/courseware/1687915984210.png 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: '2', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          name: '其多列', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title: '其多列', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'IMG', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          content: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'https://gyt.ks3-cn-beijing.ksyuncs.com/courseware/1688007481564.jpg', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          url: 'https://gyt.ks3-cn-beijing.ksyuncs.com/courseware/1688007481564.jpg' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          id: '4', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          name: '歌曲 其多列', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          title: '其多列', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'MUSIC', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          content: '43541', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          url: 'https://cloud-coach.ks3-cn-beijing.ksyuncs.com/music-sheet-first/1687847690372-1.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      data.itemList = data.knowledgePointList.map((m: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ...m, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          iframeRef: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          videoEle: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          audioEle: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          autoPlay: false, //加载完成是否自动播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          isprepare: false, // 视频是否加载完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          isRender: false // 是否渲染了 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const res = await queryCourseware({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          coursewareDetailKnowledgeId: data.detailId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          subjectId: data.subjectId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pag: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          rows: 99 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const tempRows = res.data.rows || []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const temp: any = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tempRows.forEach((row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          temp.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            id: row.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            materialId: row.materialId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            coverImg: row.coverImg, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: row.materialType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            title: row.materialName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isCollect: !!row.favoriteFlag, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isSelected: row.source === 'PLATFORM' ? true : false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            content: row.content 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(temp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data.knowledgePointList = temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data.itemList = data.knowledgePointList.map((m: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...m, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            iframeRef: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            videoEle: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            audioEle: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            autoPlay: false, //加载完成是否自动播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isprepare: false, // 视频是否加载完成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            isRender: false // 是否渲染了 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // ifram事件处理 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -171,28 +146,17 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const query = route.query; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      data.type = query.type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      data.subjectId = query.subjectId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      data.detailId = query.detailId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      window.addEventListener('message', iframeHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       getDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // const playRef = ref(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // const goback = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     playRef.value?.handleOut(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   } catch { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //   postMessage({ api: 'goBack' }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const popupData = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       open: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       activeIndex: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // tabActive: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // tabName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // itemActive: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // itemName: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // guideOpen: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       toolOpen: false // 工具弹窗控制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -245,13 +209,17 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       clearTimeout(activeData.timer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       message.destroyAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       activeData.model = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Object.values(data.videoRefs).map((n: any) => n.toggleHideControl(false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Object.values(data.audioRefs).map((n: any) => n.toggleHideControl(false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Object.values(data.videoRefs).map((n: any) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        n?.toggleHideControl(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Object.values(data.audioRefs).map((n: any) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        n?.toggleHideControl(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const toggleModel = (type = true) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       activeData.model = type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Object.values(data.videoRefs).map((n: any) => n.toggleHideControl(type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Object.values(data.audioRefs).map((n: any) => n.toggleHideControl(type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Object.values(data.videoRefs).map((n: any) => n?.toggleHideControl(type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Object.values(data.audioRefs).map((n: any) => n?.toggleHideControl(type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 双击 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -271,15 +239,15 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 切换播放 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const togglePlay = (m: any, isPlay: boolean) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (isPlay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        m.videoEle?.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        m.videoEle?.pause(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const togglePlay = (m: any, isPlay: boolean) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   if (isPlay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     m.videoEle?.play(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     m.videoEle?.pause(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const showIndex = ref(-4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const showIndex = ref(-4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const effectIndex = ref(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const effects = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -485,18 +453,6 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       toggleModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      window.addEventListener('message', iframeHandle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // window.onbeforeunload = e => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   console.log(e, 'e'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   if (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     e.returnValue = '关闭提示'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div id="playContent" class={styles.playContent}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -709,8 +665,16 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             styles.assignHomework, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             activeData.model ? '' : styles.sectionAnimateUp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          onClick={() => (data.modelAttendStatus = true)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <img src={iconAssignHomework} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (data.type === 'preview') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              window.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              data.modelAttendStatus = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            src={data.type === 'preview' ? iconOverPreivew : iconAssignHomework} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {/* 白板 批注 */} 
			 |