fix(editor): model-value变化后需要重新生成依赖后再通知runtime更新
This commit is contained in:
@@ -276,26 +276,6 @@ export const initServiceEvents = (
|
||||
};
|
||||
|
||||
const rootChangeHandler = async (value: MApp | null, preValue?: MApp | null) => {
|
||||
const nodeId = editorService.get('node')?.id || props.defaultSelected;
|
||||
let node;
|
||||
if (nodeId) {
|
||||
node = editorService.getNodeById(nodeId);
|
||||
}
|
||||
|
||||
if (node && node !== value) {
|
||||
await editorService.select(node.id);
|
||||
} else if (value?.items?.length) {
|
||||
await editorService.select(value.items[0]);
|
||||
} else if (value?.id) {
|
||||
editorService.set('nodes', [value]);
|
||||
editorService.set('parent', null);
|
||||
editorService.set('page', null);
|
||||
}
|
||||
|
||||
if (toRaw(value) !== toRaw(preValue)) {
|
||||
emit('update:modelValue', value);
|
||||
}
|
||||
|
||||
if (!value) return;
|
||||
|
||||
value.codeBlocks = value.codeBlocks || {};
|
||||
@@ -314,12 +294,32 @@ export const initServiceEvents = (
|
||||
initDataSourceDepTarget(ds);
|
||||
});
|
||||
|
||||
if (value && Array.isArray(value.items)) {
|
||||
if (Array.isArray(value.items)) {
|
||||
depService.collect(value.items, true);
|
||||
} else {
|
||||
depService.clear();
|
||||
delete value.dataSourceDeps;
|
||||
}
|
||||
|
||||
const nodeId = editorService.get('node')?.id || props.defaultSelected;
|
||||
let node;
|
||||
if (nodeId) {
|
||||
node = editorService.getNodeById(nodeId);
|
||||
}
|
||||
|
||||
if (node && node !== value) {
|
||||
await editorService.select(node.id);
|
||||
} else if (value.items?.length) {
|
||||
await editorService.select(value.items[0]);
|
||||
} else if (value.id) {
|
||||
editorService.set('nodes', [value]);
|
||||
editorService.set('parent', null);
|
||||
editorService.set('page', null);
|
||||
}
|
||||
|
||||
if (toRaw(value) !== toRaw(preValue)) {
|
||||
emit('update:modelValue', value);
|
||||
}
|
||||
};
|
||||
|
||||
// 新增节点,收集依赖
|
||||
|
||||
Reference in New Issue
Block a user