| 
					
				 | 
			
			
				@@ -46,7 +46,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    :style="dragStyle" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :style="{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ...dragStyle, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '--transformOrigin': transformOrigin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     class="metronomeNModal" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     v-model:show="metronomeShow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :class="[dragClass, windowMet ? 'transformOrigin' : '']" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,7 +80,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script setup lang="ts"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { NModal } from 'naive-ui'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { computed, ref, watch, onMounted, onUnmounted} from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { computed, ref, watch, onMounted, onUnmounted, nextTick } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import Metronome from './Metronome.vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { useUserStore } from '@/store/modules/users'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import useDrag from '@/hooks/useDrag'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -126,9 +129,12 @@ function handleCloseMet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   windowMet.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function handleWindowMet() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  metronomeShow.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   windowMet.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   playState.value = metronomeDom.value!.playState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    computedTransformOrigin(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    metronomeShow.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function handleSetting() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   metronomeShow.value = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -145,6 +151,22 @@ const metronomeMinConDragData = useDrag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   windowMet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   users.info.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const transformOrigin = ref('initial'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function computedTransformOrigin() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const dragDom = document.querySelector(`.${props.dragClass}`) as HTMLElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const dragRect = dragDom.getBoundingClientRect(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const metMinLeft = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    metronomeMinConDragData.pos.value.left === -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ? 12 //初始化时候窗口的left 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      : metronomeMinConDragData.pos.value.left; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const metMinTop = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    metronomeMinConDragData.pos.value.top === -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ? document.body.clientHeight - 81 - 10 //初始化时候窗口的高 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      : metronomeMinConDragData.pos.value.top; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const dragLeft = dragRect.left; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const dragTop = dragRect.top; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  transformOrigin.value = `${metMinLeft - dragLeft}Px ${metMinTop - dragTop}Px`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const isDrag = ref(false); // 拖动metronomeMin的时候防止iframe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function hanldeMetronomeMinmousedown() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   isDrag.value = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -231,7 +253,7 @@ function hanldeMetronomeMinmousedown() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   box-shadow: initial; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   &.transformOrigin { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    transform-origin: 50% 50% !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    transform-origin: var(--transformOrigin) !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .topDragDom { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     position: absolute; 
			 |