diff --git a/src/components/BowTargetEdit.vue b/src/components/BowTargetEdit.vue index 45e10ef..ae0a3d3 100644 --- a/src/components/BowTargetEdit.vue +++ b/src/components/BowTargetEdit.vue @@ -33,17 +33,12 @@ const onClick = async (e) => { x: e.detail.x - (rect.value.width * 0.1) / 2, y: e.detail.y - rect.value.top - 10, }; - newArrow.ring = calcRing( - props.id, - newArrow.x, - newArrow.y, - rect.value.width * 0.9, - rect.value.height - rect.value.top - ); + const side = rect.value.width * 0.9; + newArrow.ring = calcRing(props.id, newArrow.x, newArrow.y, side, side); arrow.value = { ...newArrow, - x: newArrow.x / (rect.value.width * 0.9), - y: newArrow.y / (rect.value.width * 0.9), + x: newArrow.x / side, + y: newArrow.y / side, }; }; @@ -80,27 +75,20 @@ const onDrag = async (e) => { const deltaX = clientX - dragStartPos.value.x; const deltaY = clientY - dragStartPos.value.y; - const width = rect.value.width * 0.9; - const height = rect.value.height - rect.value.top; + const side = rect.value.width * 0.9; // 更新坐标 - arrow.value.x = Math.max( - 0, - Math.min(width, arrow.value.x * (rect.value.width * 0.9) + deltaX) - ); - arrow.value.y = Math.max( - 0, - Math.min(height, arrow.value.y * (rect.value.width * 0.9) + deltaY) - ); + arrow.value.x = Math.max(0, Math.min(side, arrow.value.x * side + deltaX)); + arrow.value.y = Math.max(0, Math.min(side, arrow.value.y * side + deltaY)); arrow.value.ring = calcRing( props.id, arrow.value.x, arrow.value.y, - width, - height + side, + side ); - arrow.value.x = arrow.value.x / (rect.value.width * 0.9); - arrow.value.y = arrow.value.y / (rect.value.width * 0.9); + arrow.value.x = arrow.value.x / side; + arrow.value.y = arrow.value.y / side; // 更新拖拽起始位置 dragStartPos.value = { x: clientX, y: clientY }; @@ -118,71 +106,81 @@ onMounted(async () => {