| 
					
				 | 
			
			
				@@ -1,11 +1,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <div v-if="isDrag" class="metronomeMinConMask"></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    v-if="windowMet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     class="metronomeMinCon" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :class="[metronomeMinConBoxClass]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :style="metronomeMinConDragData.styleDrag.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @mousedown="hanldeMetronomeMinmousedown" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    v-if="metronomeShow || windowMet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    v-show="!metronomeShow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="topMetronomeMin"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <img 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13,7 +14,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :style="{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           '--rotateWagTime': rotateWagTime + 's' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :class="{ pausedWagAnimation: playState === 'pause' }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :class="{ playWagAnimation: playState === 'play' }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         src="./imgs/zhen.png" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <img class="bai" src="./imgs/bai.png" /> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,7 +27,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         @click=" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             metronomeDom?.startPlay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            playState = 'play'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         src="./imgs/paly.png" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -36,7 +36,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         @click=" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             metronomeDom?.pausePlay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            playState = 'pause'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         v-else 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,6 +72,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         @closeMet="handleCloseMet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         @windowMet="handleWindowMet" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         @speedNumChange="handleSpeedNumChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        @playStateChange="handlePlayStateChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ></Metronome> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </NModal> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -111,7 +111,13 @@ watch(metronomeShow, () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const playState = ref<'play' | 'pause'>('pause'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function handlePlayStateChange(state: 'play' | 'pause') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  playState.value = state; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const rotateWagTime = ref((60 * 2) / 90); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function handleSpeedNumChange(num: number) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  rotateWagTime.value = parseFloat(((60 * 2) / num).toFixed(4)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   document.addEventListener('visibilitychange', documentHidePause); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -121,16 +127,15 @@ onUnmounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function documentHidePause() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (document.visibilityState === 'hidden') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     metronomeDom.value?.pausePlay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    playState.value = 'pause'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function handleCloseMet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   metronomeShow.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   windowMet.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  playState.value = 'pause'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function handleWindowMet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   windowMet.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  playState.value = metronomeDom.value!.playState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     computedTransformOrigin(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     metronomeShow.value = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,9 +144,6 @@ function handleWindowMet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function handleSetting() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   metronomeShow.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function handleSpeedNumChange(num: number) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  rotateWagTime.value = parseFloat(((60 * 2) / num).toFixed(4)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* 指针拖动 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const users = useUserStore(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const metronomeMinConBoxClass = 'metronomeMinConBoxClass_drag'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -208,29 +210,28 @@ function hanldeMetronomeMinmousedown() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       width: 13Px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       height: 35Px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      bottom: 6Px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      bottom: 8Px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       left: 50%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       transform: translateX(-50%); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       transform-origin: 50% 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      animation: rotateWag var(--rotateWagTime) linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      &.pausedWagAnimation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        animation-play-state: paused; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      &.playWagAnimation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        animation: rotateWag var(--rotateWagTime) linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       @keyframes rotateWag { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         0% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transform: translateX(-50%) rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          transform: translateX(-50%) rotate(-90deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         25% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transform: translateX(-50%) rotate(90deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          transform: translateX(-50%) rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         50% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transform: translateX(-50%) rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          transform: translateX(-50%) rotate(90deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         75% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transform: translateX(-50%) rotate(-90deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          transform: translateX(-50%) rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         100% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          transform: translateX(-50%) rotate(0deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          transform: translateX(-50%) rotate(-90deg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |