mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-09-02 21:59:54 +08:00
fix(editor): 复制页面后,组件树选中状态不对
This commit is contained in:
parent
fcede5c0ac
commit
b4df7f5eea
@ -14,7 +14,7 @@
|
|||||||
@node-dragstart="handleDragStart"
|
@node-dragstart="handleDragStart"
|
||||||
@node-dragleave="handleDragLeave"
|
@node-dragleave="handleDragLeave"
|
||||||
@node-dragend="handleDragEnd"
|
@node-dragend="handleDragEnd"
|
||||||
@node-contextmenu="nodeContentmenuHandler"
|
@node-contextmenu="nodeContentMenuHandler"
|
||||||
@node-mouseenter="mouseenterHandler"
|
@node-mouseenter="mouseenterHandler"
|
||||||
@node-click="nodeClickHandler"
|
@node-click="nodeClickHandler"
|
||||||
>
|
>
|
||||||
@ -113,7 +113,7 @@ const { handleDragStart, handleDragEnd, handleDragLeave, handleDragOver } = useD
|
|||||||
const {
|
const {
|
||||||
menu,
|
menu,
|
||||||
nodeClickHandler,
|
nodeClickHandler,
|
||||||
nodeContentmenuHandler,
|
nodeContentMenuHandler,
|
||||||
highlightHandler: mouseenterHandler,
|
highlightHandler: mouseenterHandler,
|
||||||
} = useClick(services, isCtrlKeyDown, nodeStatusMap);
|
} = useClick(services, isCtrlKeyDown, nodeStatusMap);
|
||||||
</script>
|
</script>
|
||||||
|
@ -94,7 +94,7 @@ export const useClick = (
|
|||||||
|
|
||||||
nodeClickHandler,
|
nodeClickHandler,
|
||||||
|
|
||||||
nodeContentmenuHandler(event: MouseEvent, data: TreeNodeData) {
|
nodeContentMenuHandler(event: MouseEvent, data: TreeNodeData) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
const nodes = services?.editorService.get('nodes') || [];
|
const nodes = services?.editorService.get('nodes') || [];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { computed, ref, watch } from 'vue';
|
import { computed, ref, watch } from 'vue';
|
||||||
|
|
||||||
import type { Id, MNode, MPage, MPageFragment } from '@tmagic/schema';
|
import type { Id, MNode, MPage, MPageFragment } from '@tmagic/schema';
|
||||||
import { getNodePath } from '@tmagic/utils';
|
import { getNodePath, isPage, isPageFragment } from '@tmagic/utils';
|
||||||
|
|
||||||
import { LayerNodeStatus, Services } from '@editor/type';
|
import { LayerNodeStatus, Services } from '@editor/type';
|
||||||
import { traverseNode } from '@editor/utils';
|
import { traverseNode } from '@editor/utils';
|
||||||
@ -48,13 +48,14 @@ export const useNodeStatus = (services: Services | undefined) => {
|
|||||||
|
|
||||||
// 切换页面或者新增页面,重新生成节点状态
|
// 切换页面或者新增页面,重新生成节点状态
|
||||||
watch(
|
watch(
|
||||||
page,
|
() => page.value?.id,
|
||||||
(page) => {
|
(pageId) => {
|
||||||
if (!page) {
|
if (!pageId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 生成节点状态
|
// 生成节点状态
|
||||||
nodeStatusMaps.value.set(page.id, createPageNodeStatus(page, nodeStatusMaps.value.get(page.id)));
|
nodeStatusMaps.value.set(pageId, createPageNodeStatus(page.value!, nodeStatusMaps.value.get(pageId)));
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
immediate: true,
|
immediate: true,
|
||||||
@ -85,6 +86,8 @@ export const useNodeStatus = (services: Services | undefined) => {
|
|||||||
|
|
||||||
services?.editorService.on('add', (newNodes: MNode[]) => {
|
services?.editorService.on('add', (newNodes: MNode[]) => {
|
||||||
newNodes.forEach((node) => {
|
newNodes.forEach((node) => {
|
||||||
|
if (isPage(node) || isPageFragment(node)) return;
|
||||||
|
|
||||||
traverseNode(node, (node: MNode) => {
|
traverseNode(node, (node: MNode) => {
|
||||||
nodeStatusMap.value?.set(node.id, {
|
nodeStatusMap.value?.set(node.id, {
|
||||||
visible: true,
|
visible: true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user