mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-05-06 10:35:15 +08:00
parent
ad008b66b4
commit
e35a963b67
@ -7,7 +7,11 @@ import { LayerNodeStatus, Services } from '@editor/type';
|
|||||||
import { traverseNode } from '@editor/utils';
|
import { traverseNode } from '@editor/utils';
|
||||||
import { updateStatus } from '@editor/utils/tree';
|
import { updateStatus } from '@editor/utils/tree';
|
||||||
|
|
||||||
const createPageNodeStatus = (services: Services | undefined, pageId: Id) => {
|
const createPageNodeStatus = (
|
||||||
|
services: Services | undefined,
|
||||||
|
pageId: Id,
|
||||||
|
initalLayerNodeStatus?: Map<Id, LayerNodeStatus>,
|
||||||
|
) => {
|
||||||
const map = new Map<Id, LayerNodeStatus>();
|
const map = new Map<Id, LayerNodeStatus>();
|
||||||
|
|
||||||
map.set(pageId, {
|
map.set(pageId, {
|
||||||
@ -19,12 +23,15 @@ const createPageNodeStatus = (services: Services | undefined, pageId: Id) => {
|
|||||||
|
|
||||||
services?.editorService.getNodeById(pageId)?.items.forEach((node: MNode) =>
|
services?.editorService.getNodeById(pageId)?.items.forEach((node: MNode) =>
|
||||||
traverseNode(node, (node) => {
|
traverseNode(node, (node) => {
|
||||||
map.set(node.id, {
|
map.set(
|
||||||
visible: true,
|
node.id,
|
||||||
expand: false,
|
initalLayerNodeStatus?.get(node.id) || {
|
||||||
selected: false,
|
visible: true,
|
||||||
draggable: true,
|
expand: false,
|
||||||
});
|
selected: false,
|
||||||
|
draggable: true,
|
||||||
|
},
|
||||||
|
);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -42,17 +49,15 @@ export const useNodeStatus = (services: Services | undefined, page: ComputedRef<
|
|||||||
page.value ? nodeStatusMaps.value.get(page.value.id) : new Map<Id, LayerNodeStatus>(),
|
page.value ? nodeStatusMaps.value.get(page.value.id) : new Map<Id, LayerNodeStatus>(),
|
||||||
);
|
);
|
||||||
|
|
||||||
// 切换页面,重新生成节点状态
|
// 切换页面或者新增页面,重新生成节点状态
|
||||||
watch(
|
watch(
|
||||||
() => page.value?.id,
|
page,
|
||||||
(pageId) => {
|
(page) => {
|
||||||
// 已经存在,不需要重新生成
|
if (!page) {
|
||||||
if (!pageId || nodeStatusMaps.value.has(pageId)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 生成节点状态
|
||||||
// 新增页面,生成节点状态
|
nodeStatusMaps.value.set(page.id, createPageNodeStatus(services, page.id, nodeStatusMaps.value.get(page.id)));
|
||||||
nodeStatusMaps.value.set(pageId, createPageNodeStatus(services, pageId));
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user