forked from github/dataease
fix(仪表板、数据大屏): 修复富文本表格定位拖拽点显示位置有偏移问题
This commit is contained in:
parent
41e1bfcc9b
commit
78339557e9
@ -191,7 +191,6 @@ const init = ref({
|
|||||||
originalHandle.style.display = 'none' // 隐藏原始手柄
|
originalHandle.style.display = 'none' // 隐藏原始手柄
|
||||||
// 将克隆手柄添加到原手柄的父元素中
|
// 将克隆手柄添加到原手柄的父元素中
|
||||||
const parentDiv = originalHandle.parentNode // 获取原手柄的父元素
|
const parentDiv = originalHandle.parentNode // 获取原手柄的父元素
|
||||||
cloneHandle.style.width = `${parentDiv.offsetWidth}px`
|
|
||||||
parentDiv.appendChild(cloneHandle) // 将克隆手柄添加到父元素中
|
parentDiv.appendChild(cloneHandle) // 将克隆手柄添加到父元素中
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -219,25 +218,55 @@ const init = ref({
|
|||||||
// 显示原始手柄并移除克隆手柄
|
// 显示原始手柄并移除克隆手柄
|
||||||
originalHandle.style.display = ''
|
originalHandle.style.display = ''
|
||||||
if (cloneHandle) {
|
if (cloneHandle) {
|
||||||
originalHandle.parentNode.removeChild(cloneHandle) // 获取原手柄的父元素
|
cloneHandle.parentNode.removeChild(cloneHandle) // 获取原手柄的父元素
|
||||||
}
|
}
|
||||||
cloneHandle = null
|
cloneHandle = null
|
||||||
originalHandle = null
|
originalHandle = null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
// 在表格调整大小结束时
|
// 函数:根据缩放比例调整 .mce-resizehandle 的位置和大小
|
||||||
// 解决移动表格corner点位resize时因为缩放导致的坐标系放大问题,进而导致移动错位问题
|
const adjustResizeHandles = (aLeft, aTop) => {
|
||||||
editor.on('ObjectResized', function (e) {
|
nextTick(() => {
|
||||||
const { target, width, height, origin } = e
|
const nodeRt = doc.getElementById('mceResizeHandlene')
|
||||||
if (target.nodeName === 'TABLE' && origin.indexOf('corner') > -1) {
|
const nodeRb = doc.getElementById('mceResizeHandlese')
|
||||||
// 将最终调整的宽高根据缩放比例重设
|
const nodeLb = doc.getElementById('mceResizeHandlesw')
|
||||||
target.style.width = `${width}px`
|
if (nodeRt) {
|
||||||
target.style.height = `${height}px`
|
nodeRt.style.left = `${aLeft}px`
|
||||||
} else if (target.nodeName === 'TABLE' && origin.indexOf('bar-col') > -1) {
|
}
|
||||||
// do nothing
|
if (nodeRb) {
|
||||||
|
nodeRb.style.left = `${aLeft}px`
|
||||||
|
nodeRb.style.top = `${aTop}px`
|
||||||
|
}
|
||||||
|
if (nodeLb) {
|
||||||
|
nodeLb.style.top = `${aTop}px`
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 监听 ObjectSelected 事件,点击表格时触发调整
|
||||||
|
editor.on('ObjectSelected', event => {
|
||||||
|
if (event.target.nodeName === 'TABLE') {
|
||||||
|
adjustResizeHandles(
|
||||||
|
event.target.offsetWidth + event.target.offsetLeft,
|
||||||
|
event.target.offsetHeight + event.target.offsetTop
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 监听 ObjectResized 事件,更新调整大小句柄
|
||||||
|
// 在表格调整大小结束时
|
||||||
|
// 解决移动表格corner点位resize时因为缩放导致的坐标系放大问题,进而导致移动错位问题
|
||||||
|
editor.on('ObjectResized', function (e) {
|
||||||
|
const { target, width, height, origin } = e
|
||||||
|
if (target.nodeName === 'TABLE' && origin.indexOf('corner') > -1) {
|
||||||
|
// 将最终调整的宽高根据缩放比例重设
|
||||||
|
target.style.width = `${width}px`
|
||||||
|
target.style.height = `${height}px`
|
||||||
|
} else if (target.nodeName === 'TABLE' && origin.indexOf('bar-col') > -1) {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user