fix(editor): 指定父节点添加组件

This commit is contained in:
roymondchen 2022-07-25 21:57:12 +08:00 committed by jia000
parent 923e8ea5ab
commit d334b697ae
3 changed files with 7 additions and 11 deletions

View File

@ -36,18 +36,13 @@ const doAction = async (
let beforeArgs = args;
for (const beforeMethod of scope.pluginOptionsList[beforeMethodName]) {
let beforeReturnValue = (await beforeMethod(...beforeArgs)) || [];
beforeArgs = (await beforeMethod(...beforeArgs)) || [];
if (isError(beforeReturnValue)) throw beforeReturnValue;
if (isError(beforeArgs)) throw beforeArgs;
if (!Array.isArray(beforeReturnValue)) {
beforeReturnValue = [beforeReturnValue];
if (!Array.isArray(beforeArgs)) {
beforeArgs = [beforeArgs];
}
beforeArgs = beforeArgs.map((v: any, index: number) => {
if (typeof beforeReturnValue[index] === 'undefined') return v;
return beforeReturnValue[index];
});
}
let returnValue: any = await fn(beforeArgs, sourceMethod.bind(scope));

View File

@ -303,7 +303,7 @@ class Editor extends BaseService {
const stage = this.get<StageCore | null>('stage');
const root = this.get<MApp>('root');
await stage?.add({ config: cloneDeep(newNode), root: cloneDeep(root) });
await stage?.add({ config: cloneDeep(newNode), parent: cloneDeep(parentNode), root: cloneDeep(root) });
if (layout === Layout.ABSOLUTE) {
const fixedLeft = fixNodeLeft(newNode, parentNode, stage?.renderer.contentWindow?.document);

View File

@ -223,7 +223,8 @@ export const fixNodeLeft = (config: MNode, parent: MContainer, doc?: Document) =
const el = doc.getElementById(`${config.id}`);
const parentEl = doc.getElementById(`${parent.id}`);
if (el && parentEl && el.offsetWidth + config.style?.left > parentEl.offsetWidth) {
const left = Number(config.style?.left) || 0;
if (el && parentEl && el.offsetWidth + left > parentEl.offsetWidth) {
return parentEl.offsetWidth - el.offsetWidth;
}