This commit is contained in:
李志鹏
2026-01-14 14:43:43 +08:00
parent e42975159f
commit 810dd2351b
6 changed files with 1008 additions and 27 deletions

View File

@@ -17,6 +17,7 @@ import { KeyboardManager } from "./managers/events/KeyboardManager.js";
import CanvasConfig from "./config/canvasConfig.js";
import { LiquifyManager } from "./managers/liquify/LiquifyManager";
import { SelectionManager } from "./managers/selection/SelectionManager";
import { PartManager } from "./managers/PartManager";
import { RedGreenModeManager } from "./managers/RedGreenModeManager";
import texturePresetManager from "./managers/brushes/TexturePresetManager";
import { BrushStore } from "./store/BrushStore";
@@ -185,6 +186,7 @@ let keyboardManager = null;
let toolManager = null;
let liquifyManager = null;
let selectionManager = null;
let partManager = null;
let redGreenModeManager = null;
// 快捷键帮助模态框状态
@@ -226,6 +228,7 @@ function handleCanvasInit(isLoadJson = false) {
keyboardManager,
liquifyManager,
selectionManager,
partManager,
redGreenModeManager,
});
}
@@ -378,6 +381,13 @@ onMounted(async () => {
});
canvasManager.setSelectionManager(selectionManager);
// 初始化部件选择管理器
partManager = new PartManager({
canvas: canvasManager.canvas,
layerManager,
});
canvasManager.setPartManager(partManager);
if (props.canvasJSON) {
// 如果传入了初始JSON数据加载到画布上
if (typeof props.canvasJSON === "string") {
@@ -537,6 +547,7 @@ onBeforeUnmount(async () => {
toolManager?.dispose?.();
liquifyManager?.dispose?.();
selectionManager?.dispose?.();
partManager?.dispose?.();
redGreenModeManager?.dispose?.();
// minimapManager?.dispose?.();
canvasManager = null;
@@ -546,6 +557,7 @@ onBeforeUnmount(async () => {
toolManager = null;
liquifyManager = null;
selectionManager = null;
partManager = null;
redGreenModeManager = null;
// fabric.Object.prototype.controls.deleteControl = undefined;
@@ -1254,16 +1266,17 @@ defineExpose({
/>
<!-- 部件选取面板 -->
<!-- <PartSelectorPanel
<PartSelectorPanel
v-if="canvasManagerLoaded && !enabledRedGreenMode"
:canvas="canvasManager && canvasManager.canvas"
:commandManager="commandManager"
:selectionManager="selectionManager"
:partManager="partManager"
:layerManager="layerManager"
:canvasManager="canvasManager"
:toolManager="toolManager"
:activeTool="activeTool"
/> -->
/>
<!-- 文本编辑面板 -->
<TextEditorPanel