fix(editor): 右键菜单粘贴的组件位置不对

This commit is contained in:
roymondchen 2022-05-30 21:13:15 +08:00
parent 64798b21c6
commit 77f36965d8

View File

@ -69,8 +69,20 @@ export default defineComponent({
text: '粘贴',
display: () => canPaste.value,
handler: () => {
const top = menu.value?.$el.offsetTop || 0;
const left = menu.value?.$el.offsetLeft || 0;
const stage = editorService?.get<StageCore>('stage');
const rect = menu.value?.$el.getBoundingClientRect();
const parentRect = stage?.container?.getBoundingClientRect();
let left = (rect?.left || 0) - (parentRect?.left || 0);
let top = (rect?.top || 0) - (parentRect?.top || 0);
if (node.value?.items && stage) {
const parentEl = stage.renderer.contentWindow?.document.getElementById(`${node.value.id}`);
const parentElRect = parentEl?.getBoundingClientRect();
left = left - (parentElRect?.left || 0);
top = top - (parentElRect?.top || 0);
}
editorService?.paste({ left, top });
},
},