| 
					
				 | 
			
			
				@@ -1,4 +1,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { defineComponent, onMounted, onUnmounted, reactive, ref } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  defineComponent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onMounted, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onUnmounted, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  reactive, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ref, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from './index.module.less'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { postMessage } from '@/helpers/native-message'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import icon_title from './images/icon-title.png'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -37,11 +44,16 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     modeType: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       type: String, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       default: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    show: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: Boolean, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   setup(props, { expose }) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const route = useRoute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const state = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      modeType: '' as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       platform: route.query.platform, // microapp 老师端应用里面打开单独处理返回逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       win: route.query.win, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       settingStatus: false, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -150,17 +162,17 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (ev.data.api === 'resetPlay') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        reesetSetting(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resetSetting(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const reesetSetting = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const resetSetting = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let dataJson = props.dataJson; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (route.query.dataJson) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           dataJson = JSON.parse(route.query.dataJson as any); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(dataJson, 'dataJson'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(dataJson, 'dataJson', props.dataJson); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         setting.element = dataJson.element; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         setting.beat = dataJson.beat; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -176,8 +188,24 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // watch( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   () => props.show, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   val => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     console.log(val, props.show); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     if (!val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //       // resetSetting(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //       handleStop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //       resetSetting(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      reesetSetting(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (route.query.modeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        state.modeType = route.query.modeType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resetSetting(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.speedList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (item.value === setting.speed) item.color = '#1CACF1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -193,17 +221,18 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     expose({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      reesetSetting 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resetSetting 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           styles.tempoPractice, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.win === 'pc' ? styles.pc : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          state.platform === 'modal' ? styles.modal : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          state.platform === 'modal' ? styles.modal : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          state.modeType === 'courseware' ? styles.courseware : '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class={styles.head}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          {props.modeType !== 'courseware' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          {state.modeType !== 'courseware' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               class={[styles.back, styles.iconBack]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               onClick={goback} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -214,7 +243,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <div class={styles.title}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <img src={icon_title} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          {props.modeType !== 'courseware' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          {state.modeType !== 'courseware' && ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               class={styles.back} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               style={{ cursor: 'pointer' }} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -239,10 +268,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {item.map((child: any, jIndex: number) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    class={[styles.beat, child.selected ? styles.active : '']} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    onClick={(e: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      e.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    class={[styles.beat, child.selected ? styles.active : '']}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div class={styles.direction}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         class={styles.up} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -283,11 +309,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={styles.footer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          onClick={(e: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            e.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class={styles.footer}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           {/* 播放 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <div class={styles.play} onClick={handlePlay}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {setting.playState === 'pause' ? ( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -322,6 +344,15 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (setting.speed <= 40) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 setting.speed -= 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 handleStop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                state.speedList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (item.value === setting.speed) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.color = '#1CACF1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setting.speed = setting.speed; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.color = '#060606'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <Popover 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -354,6 +385,15 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (setting.speed >= 200) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 setting.speed += 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 handleStop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                state.speedList.forEach((item: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (item.value === setting.speed) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.color = '#1CACF1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setting.speed = setting.speed; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    item.color = '#060606'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> 
			 |