| 
					
				 | 
			
			
				@@ -1,5 +1,5 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Icon, Swipe, SwipeItem, Tab, Tabs } from 'vant' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { defineComponent, onMounted, reactive } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { defineComponent, onMounted, reactive, nextTick } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import iconBack from './image/back.svg' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from './index.module.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Plyr from 'plyr' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13,31 +13,38 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   setup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const route = useRoute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const data = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      detail: null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      detail: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      active: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      knowledgePointList: [] as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const getDetail = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const res: any = await request.get(state.platformApi + `/lessonCoursewareDetail/detail/${route.query.id}`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const res: any = await request.get( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          state.platformApi + `/lessonCoursewareDetail/detail/${route.query.id}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (Array.isArray(res?.data)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           data.detail = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Array.isArray(res?.data?.knowledgePointList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          data.knowledgePointList = res.data.knowledgePointList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('数据加载完成') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } catch (error) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('开始加载视频') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        videoInit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      getDetail() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const nodeList = document.querySelectorAll('.player') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      console.log('🚀 ~ nodeList', nodeList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   const player = Plyr.setup('.player', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     debug: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //     ratio: '16:9' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const player = new Plyr('#player1', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        autoplay: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const videoInit = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(document.querySelectorAll('.player')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const player = Plyr.setup('.player', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        debug: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ratio: '16:9' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // player.togglePlay() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }, 1000) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log('🚀 ~ player', player) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getDetail() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const goback = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       history.go(-1) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,57 +56,47 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class={styles.menu}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <Tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="前言"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="嘴形+长振"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="吐音"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="号角发音"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="发音练习"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <Tab title="结束语"></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <Tabs v-model:active={data.active} ellipsis={false}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              default: () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return data.knowledgePointList.map((n: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  return <Tab title={n.name} name={n.id}></Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              // 'nav-right': () => <div style={{width: '40%'}} class={styles.menuLine}></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </Tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <Swipe vertical> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.videoItem}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <video class="player" id="player1" autoplay> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  src="https://daya.ks3-cn-beijing.ksyuncs.com/12/1672210184164.mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  type="video/mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </video> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.videoItem}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <video class="player" controls> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  src="https://daya.ks3-cn-beijing.ksyuncs.com/12/1672210184164.mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  type="video/mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </video> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.videoItem}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <video class="player" controls> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  src="https://daya.ks3-cn-beijing.ksyuncs.com/12/1672210184164.mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  type="video/mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </video> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class={styles.videoItem}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              <video class="player" controls> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  src="https://daya.ks3-cn-beijing.ksyuncs.com/12/1672210184164.mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  type="video/mp4" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              </video> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </Swipe> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <Tabs class={styles.tabsContent} animated lazyRender={false} v-model:active={data.active}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          {data.knowledgePointList.map((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <Tab name={item.id}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <Swipe vertical lazyRender={false}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  {Array.isArray(item?.materialList) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.materialList.map((m: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          {m.type === 'VIDEO' ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class={styles.videoItem}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              <video class="player" controls> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <source src={m.content} type="video/mp4" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              </video> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          ) : m.type === 'IMG' ? ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class={styles.imgItem}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              <img src={m.content} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          ) : ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <div class={styles.songItem}>曲谱</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </Swipe> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </Tabs> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |