| 
					
				 | 
			
			
				@@ -10,11 +10,11 @@ import { useRoute } from 'vue-router' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { postMessage } from '@/helpers/native-message' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import OHeader from '@/components/o-header' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import MusicScore from './component/musicScore' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Swiper from 'swiper' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: 'CoursewarePlay', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   setup() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const navBarHeight = ref(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const handleInit = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         api: 'setRequestedOrientation', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -25,27 +25,21 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         api: 'setBarStatus', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         content: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          status: 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          status: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        api: 'setStatusBarVisibility', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        content: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          isVisibility: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const sTitleHeight = sessionStorage.getItem('titleHeight') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (sTitleHeight) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        navBarHeight.value = Number(sTitleHeight) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        postMessage({ api: 'getNavHeight' }, (res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const { content } = res as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          console.log("🚀 ~ content", content) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const dpi = content.dpi || 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (content.titleHeight) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 导航栏的高度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const titleHeight = content.titleHeight / dpi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sessionStorage.setItem('titleHeight', String(titleHeight)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            navBarHeight.value = titleHeight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      window.addEventListener('message', (val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(val) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    handleInit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const route = useRoute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const data = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       detail: null, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,11 +68,13 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log(document.querySelectorAll('.player')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const player = Plyr.setup('.player', { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         debug: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ratio: '16:9' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ratio: '16:9', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log('🚀 ~ player', player) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      handleInit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       getDetail() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 返回 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -95,56 +91,64 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         api: 'setBarStatus', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         content: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          status: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          status: 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      postMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        api: 'setStatusBarVisibility', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        content: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          isVisibility: 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div class={styles.coursewarePlay}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class={styles.backBtn} onClick={() => goback()}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <Icon name={iconBack} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class={styles.menu}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <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 class={styles.headerContainer}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class={styles.backBtn} onClick={() => goback()}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <Icon name={iconBack} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class={styles.menu}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <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}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              <MusicScore music={m} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                </Swipe> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <Swipe style={{ height: '100vh' }} 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}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <MusicScore music={m} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            )} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          </SwipeItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </Swipe> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               </Tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           })} 
			 |