|  | @@ -20,7 +20,12 @@
 | 
	
		
			
				|  |  |          />
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |        <div class="beatWrap">
 | 
	
		
			
				|  |  | -        <div class="dot" ref="dotDom" @mousedown="handleDotMousedown"></div>
 | 
	
		
			
				|  |  | +        <div
 | 
	
		
			
				|  |  | +          class="dot"
 | 
	
		
			
				|  |  | +          ref="dotDom"
 | 
	
		
			
				|  |  | +          @mousedown="handleDotMousedown"
 | 
	
		
			
				|  |  | +          @touchstart="handleDotTouchstart"
 | 
	
		
			
				|  |  | +        ></div>
 | 
	
		
			
				|  |  |          <div class="round"></div>
 | 
	
		
			
				|  |  |          <canvas
 | 
	
		
			
				|  |  |            ref="mycanvasDom"
 | 
	
	
		
			
				|  | @@ -310,12 +315,10 @@ function speedToScalc(speed: number) {
 | 
	
		
			
				|  |  |  function scalcToSpeed(scalc: number) {
 | 
	
		
			
				|  |  |    return Math.round((scalc * 150) / 100 + 50);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -const handleclickCanvas = (e: MouseEvent) => {
 | 
	
		
			
				|  |  | +const handleclickCanvas = (clickX: number, clickY: number) => {
 | 
	
		
			
				|  |  |    const circle = mycanvasDom.value!.getBoundingClientRect();
 | 
	
		
			
				|  |  |    const centerX = circle.left + circle.width / 2;
 | 
	
		
			
				|  |  |    const centerY = circle.top + circle.height / 2;
 | 
	
		
			
				|  |  | -  const clickX = e.clientX;
 | 
	
		
			
				|  |  | -  const clickY = e.clientY;
 | 
	
		
			
				|  |  |    const angle = Math.atan2(clickY - centerY, clickX - centerX);
 | 
	
		
			
				|  |  |    const percentage = (angle * (180 / Math.PI) + 180) / 360;
 | 
	
		
			
				|  |  |    const scalc = Math.round(percentage * 100) - 25;
 | 
	
	
		
			
				|  | @@ -323,14 +326,26 @@ const handleclickCanvas = (e: MouseEvent) => {
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  function handleDotMousedown() {
 | 
	
		
			
				|  |  |    function onMouseup() {
 | 
	
		
			
				|  |  | -    mycanvasDom.value!.removeEventListener('mousemove', onMousemove);
 | 
	
		
			
				|  |  | +    document.removeEventListener('mousemove', onMousemove);
 | 
	
		
			
				|  |  |      document.removeEventListener('mouseup', onMouseup);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  mycanvasDom.value!.addEventListener('mousemove', onMousemove);
 | 
	
		
			
				|  |  | +  document.addEventListener('mousemove', onMousemove);
 | 
	
		
			
				|  |  |    document.addEventListener('mouseup', onMouseup);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +function handleDotTouchstart() {
 | 
	
		
			
				|  |  | +  function onTouchend() {
 | 
	
		
			
				|  |  | +    document.removeEventListener('touchmove', onTouchmove);
 | 
	
		
			
				|  |  | +    document.removeEventListener('touchend', onTouchend);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  document.addEventListener('touchmove', onTouchmove);
 | 
	
		
			
				|  |  | +  document.addEventListener('touchend', onTouchend);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  function onMousemove(e: MouseEvent) {
 | 
	
		
			
				|  |  | -  handleclickCanvas(e);
 | 
	
		
			
				|  |  | +  handleclickCanvas(e.clientX, e.clientY);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function onTouchmove(e: TouchEvent) {
 | 
	
		
			
				|  |  | +  const touche = e.touches[0];
 | 
	
		
			
				|  |  | +  handleclickCanvas(touche.clientX, touche.clientY);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  // 根据百分比画圆
 | 
	
		
			
				|  |  |  function getCircleBar(steps: number) {
 | 
	
	
		
			
				|  | @@ -804,9 +819,9 @@ defineExpose({
 | 
	
		
			
				|  |  |    .v-binder-follower-container
 | 
	
		
			
				|  |  |    .n-base-select-menu.n-select-menu {
 | 
	
		
			
				|  |  |    --n-border-radius: 10Px !important;
 | 
	
		
			
				|  |  | -  .n-scrollbar-rail.n-scrollbar-rail--vertical{
 | 
	
		
			
				|  |  | +  .n-scrollbar-rail.n-scrollbar-rail--vertical {
 | 
	
		
			
				|  |  |      right: 3Px;
 | 
	
		
			
				|  |  | -    --n-scrollbar-width:3Px !important;
 | 
	
		
			
				|  |  | +    --n-scrollbar-width: 3Px !important;
 | 
	
		
			
				|  |  |      opacity: 0.4;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 |