|
@@ -20,7 +20,7 @@ export const dragHandle = async (e: DragEvent) => {
|
|
|
loadingStart()
|
|
loadingStart()
|
|
|
|
|
|
|
|
// 获取拖拽数据
|
|
// 获取拖拽数据
|
|
|
- const drayDataString = e!.dataTransfer!.getData(DragKeyEnum.DROG_KEY)
|
|
|
|
|
|
|
+ const drayDataString = e!.dataTransfer!.getData(DragKeyEnum.DRAG_KEY)
|
|
|
if (!drayDataString) {
|
|
if (!drayDataString) {
|
|
|
loadingFinish()
|
|
loadingFinish()
|
|
|
return
|
|
return
|
|
@@ -60,6 +60,38 @@ export const mousedownHandleUnStop = (e: MouseEvent, item?: CreateComponentType
|
|
|
chartEditStore.setTargetSelectChart(undefined)
|
|
chartEditStore.setTargetSelectChart(undefined)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// * 框选
|
|
|
|
|
+export const mousedownBoxSelect = (e: MouseEvent, item?: CreateComponentType | CreateComponentGroupType) => {
|
|
|
|
|
+ mousedownHandleUnStop(e)
|
|
|
|
|
+
|
|
|
|
|
+ // 记录点击初始位置
|
|
|
|
|
+ const startOffsetX = e.offsetX
|
|
|
|
|
+ const startOffsetY = e.offsetY
|
|
|
|
|
+ const startScreenX = e.screenX
|
|
|
|
|
+ const startScreenY = e.screenY
|
|
|
|
|
+
|
|
|
|
|
+ chartEditStore.setMousePosition(undefined, undefined, startOffsetX, startOffsetY)
|
|
|
|
|
+
|
|
|
|
|
+ // 移动框选
|
|
|
|
|
+ const mousemove = throttle((moveEvent: MouseEvent) => {
|
|
|
|
|
+ const currX = startOffsetX + moveEvent.screenX - startScreenX
|
|
|
|
|
+ const currY = startOffsetY + moveEvent.screenY - startScreenY
|
|
|
|
|
+
|
|
|
|
|
+ chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_SELECT, true)
|
|
|
|
|
+ chartEditStore.setMousePosition(currX, currY)
|
|
|
|
|
+ }, 50)
|
|
|
|
|
+
|
|
|
|
|
+ // 鼠标抬起
|
|
|
|
|
+ const mouseup = () => {
|
|
|
|
|
+ chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_SELECT, false)
|
|
|
|
|
+ chartEditStore.setMousePosition(0, 0, 0, 0)
|
|
|
|
|
+ document.removeEventListener('mousemove', mousemove)
|
|
|
|
|
+ document.removeEventListener('mouseup', mouseup)
|
|
|
|
|
+ }
|
|
|
|
|
+ document.addEventListener('mousemove', mousemove)
|
|
|
|
|
+ document.addEventListener('mouseup', mouseup)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// * 鼠标事件
|
|
// * 鼠标事件
|
|
|
export const useMouseHandle = () => {
|
|
export const useMouseHandle = () => {
|
|
|
// * Click 事件, 松开鼠标触发
|
|
// * Click 事件, 松开鼠标触发
|
|
@@ -86,7 +118,6 @@ export const useMouseHandle = () => {
|
|
|
e.preventDefault()
|
|
e.preventDefault()
|
|
|
e.stopPropagation()
|
|
e.stopPropagation()
|
|
|
onClickOutSide()
|
|
onClickOutSide()
|
|
|
-
|
|
|
|
|
// 按下左键 + CTRL
|
|
// 按下左键 + CTRL
|
|
|
if (
|
|
if (
|
|
|
e.buttons === MouseEventButton.LEFT &&
|
|
e.buttons === MouseEventButton.LEFT &&
|
|
@@ -124,11 +155,10 @@ export const useMouseHandle = () => {
|
|
|
const startY = e.screenY
|
|
const startY = e.screenY
|
|
|
|
|
|
|
|
// 记录初始位置
|
|
// 记录初始位置
|
|
|
- chartEditStore.setMousePosition(startX, startY)
|
|
|
|
|
|
|
+ chartEditStore.setMousePosition(undefined, undefined, startX, startY)
|
|
|
|
|
|
|
|
// 移动-计算偏移量
|
|
// 移动-计算偏移量
|
|
|
const mousemove = throttle((moveEvent: MouseEvent) => {
|
|
const mousemove = throttle((moveEvent: MouseEvent) => {
|
|
|
- chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, true)
|
|
|
|
|
chartEditStore.setMousePosition(moveEvent.screenX, moveEvent.screenY)
|
|
chartEditStore.setMousePosition(moveEvent.screenX, moveEvent.screenY)
|
|
|
|
|
|
|
|
// 当前偏移量,处理 scale 比例问题
|
|
// 当前偏移量,处理 scale 比例问题
|
|
@@ -136,8 +166,8 @@ export const useMouseHandle = () => {
|
|
|
let offsetY = (moveEvent.screenY - startY) / scale
|
|
let offsetY = (moveEvent.screenY - startY) / scale
|
|
|
|
|
|
|
|
chartEditStore.getTargetChart.selectId.forEach(id => {
|
|
chartEditStore.getTargetChart.selectId.forEach(id => {
|
|
|
- if(!targetMap.has(id)) return
|
|
|
|
|
-
|
|
|
|
|
|
|
+ if (!targetMap.has(id)) return
|
|
|
|
|
+
|
|
|
const index = chartEditStore.fetchTargetIndex(id)
|
|
const index = chartEditStore.fetchTargetIndex(id)
|
|
|
// 拿到初始位置数据
|
|
// 拿到初始位置数据
|
|
|
const { x, y, w, h } = targetMap.get(id)
|
|
const { x, y, w, h } = targetMap.get(id)
|
|
@@ -166,8 +196,7 @@ export const useMouseHandle = () => {
|
|
|
}, 30)
|
|
}, 30)
|
|
|
|
|
|
|
|
const mouseup = () => {
|
|
const mouseup = () => {
|
|
|
- chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false)
|
|
|
|
|
- chartEditStore.setMousePosition(0, 0)
|
|
|
|
|
|
|
+ chartEditStore.setMousePosition(0, 0, 0, 0)
|
|
|
document.removeEventListener('mousemove', mousemove)
|
|
document.removeEventListener('mousemove', mousemove)
|
|
|
document.removeEventListener('mouseup', mouseup)
|
|
document.removeEventListener('mouseup', mouseup)
|
|
|
}
|
|
}
|
|
@@ -237,7 +266,7 @@ export const useMousePointHandle = (e: MouseEvent, point: string, attr: PickCrea
|
|
|
|
|
|
|
|
const mouseup = () => {
|
|
const mouseup = () => {
|
|
|
chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false)
|
|
chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false)
|
|
|
- chartEditStore.setMousePosition(0, 0)
|
|
|
|
|
|
|
+ chartEditStore.setMousePosition(0, 0, 0, 0)
|
|
|
document.removeEventListener('mousemove', mousemove)
|
|
document.removeEventListener('mousemove', mousemove)
|
|
|
document.removeEventListener('mouseup', mouseup)
|
|
document.removeEventListener('mouseup', mouseup)
|
|
|
}
|
|
}
|