|
@@ -6,6 +6,9 @@ import { ConfigType } from '@/packages/index.d'
|
|
|
import { loadingStart, loadingFinish, loadingError } from '@/utils'
|
|
import { loadingStart, loadingFinish, loadingError } from '@/utils'
|
|
|
import { CreateComponentType } from '@/packages/index.d'
|
|
import { CreateComponentType } from '@/packages/index.d'
|
|
|
import throttle from 'lodash/throttle'
|
|
import throttle from 'lodash/throttle'
|
|
|
|
|
+import { useContextMenu } from '@/views/chart/hooks/useContextMenu.hook'
|
|
|
|
|
+
|
|
|
|
|
+const { onClickoutside } = useContextMenu()
|
|
|
|
|
|
|
|
const chartEditStore = getChartEditStore()
|
|
const chartEditStore = getChartEditStore()
|
|
|
const { scale } = toRefs(chartEditStore.getEditCanvas)
|
|
const { scale } = toRefs(chartEditStore.getEditCanvas)
|
|
@@ -43,7 +46,7 @@ export const handleDragOver = (e: DragEvent) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-// 不拦截默认行为点击
|
|
|
|
|
|
|
+// * 不拦截默认行为点击
|
|
|
export const mousedownHandleUnStop = (
|
|
export const mousedownHandleUnStop = (
|
|
|
e: MouseEvent,
|
|
e: MouseEvent,
|
|
|
item?: CreateComponentType
|
|
item?: CreateComponentType
|
|
@@ -55,13 +58,14 @@ export const mousedownHandleUnStop = (
|
|
|
chartEditStore.setTargetSelectChart(undefined)
|
|
chartEditStore.setTargetSelectChart(undefined)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// 移动图表
|
|
|
|
|
|
|
+// * 移动图表
|
|
|
export const useMouseHandle = () => {
|
|
export const useMouseHandle = () => {
|
|
|
// 点击事件(包含移动事件)
|
|
// 点击事件(包含移动事件)
|
|
|
const mousedownHandle = (e: MouseEvent, item: CreateComponentType) => {
|
|
const mousedownHandle = (e: MouseEvent, item: CreateComponentType) => {
|
|
|
e.preventDefault()
|
|
e.preventDefault()
|
|
|
e.stopPropagation()
|
|
e.stopPropagation()
|
|
|
|
|
|
|
|
|
|
+ onClickoutside()
|
|
|
chartEditStore.setTargetSelectChart(item.id)
|
|
chartEditStore.setTargetSelectChart(item.id)
|
|
|
const scale = chartEditStore.getEditCanvas.scale
|
|
const scale = chartEditStore.getEditCanvas.scale
|
|
|
const width = chartEditStore.getEditCanvas.width
|
|
const width = chartEditStore.getEditCanvas.width
|
|
@@ -82,8 +86,8 @@ export const useMouseHandle = () => {
|
|
|
|
|
|
|
|
// 计算偏移量(处理 scale 比例问题)
|
|
// 计算偏移量(处理 scale 比例问题)
|
|
|
const mousemove = throttle((moveEvent: MouseEvent) => {
|
|
const mousemove = throttle((moveEvent: MouseEvent) => {
|
|
|
- let currX = itemAttrX + (moveEvent.screenX - startX) / scale
|
|
|
|
|
- let currY = itemAttrY + (moveEvent.screenY - startY) / scale
|
|
|
|
|
|
|
+ let currX = Math.round(itemAttrX + (moveEvent.screenX - startX) / scale)
|
|
|
|
|
+ let currY = Math.round(itemAttrY + (moveEvent.screenY - startY) / scale)
|
|
|
|
|
|
|
|
// 要预留的距离
|
|
// 要预留的距离
|
|
|
const distance = 50
|
|
const distance = 50
|
|
@@ -108,14 +112,14 @@ export const useMouseHandle = () => {
|
|
|
editcontentDom!.addEventListener('mouseup', mouseup)
|
|
editcontentDom!.addEventListener('mouseup', mouseup)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 进入事件
|
|
|
|
|
|
|
+ // * 进入事件
|
|
|
const mouseenterHandle = (e: MouseEvent, item: CreateComponentType) => {
|
|
const mouseenterHandle = (e: MouseEvent, item: CreateComponentType) => {
|
|
|
e.preventDefault()
|
|
e.preventDefault()
|
|
|
e.stopPropagation()
|
|
e.stopPropagation()
|
|
|
chartEditStore.setTargetHoverChart(item.id)
|
|
chartEditStore.setTargetHoverChart(item.id)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 移出事件
|
|
|
|
|
|
|
+ // * 移出事件
|
|
|
const mouseleaveHandle = (e: MouseEvent, item: CreateComponentType) => {
|
|
const mouseleaveHandle = (e: MouseEvent, item: CreateComponentType) => {
|
|
|
e.preventDefault()
|
|
e.preventDefault()
|
|
|
e.stopPropagation()
|
|
e.stopPropagation()
|