refactor: 重构 Manager 架构,引入 ManagerRegistry 和 BaseManager 基类

- 新增 ManagerRegistry 单例注册表,统一管理所有 Manager 实例
- 新增 BaseManager 基类,自动管理事件订阅清理
- 新增 BaseDialogManager 基类,统一对话框生命周期管理
- 重构 15 个 Manager 使用新基类
- 重构 Toolbar 按钮和 Menu 按钮移除 engine 参数依赖
- 删除 BimComponent 基类(已不再使用)
- 为所有 Manager 和核心模块添加中文 JSDoc 注释
This commit is contained in:
yuding
2026-01-22 15:23:57 +08:00
parent f2460fb981
commit 31b60e84ce
47 changed files with 5580 additions and 5341 deletions

View File

@@ -1,28 +1,18 @@
import type { ButtonConfig } from '../../../index.type';
import type { BimEngine } from '../../../../../bim-engine';
import { getIcon } from '../../../../../utils/icon-manager';
import { ManagerRegistry } from '../../../../../core/manager-registry';
/**
* 选框放大按钮配置
*
* 说明:
* - 当前仅添加 UI 按钮,点击事件先留空(后续接入引擎能力再实现)
* - 使用工厂函数模式注入 engine便于未来调用 engine API
*/
export const createZoomBoxButton = (engine: BimEngine): ButtonConfig => {
return {
id: 'zoom-box',
groupId: 'group-1',
keepActive: false,
type: 'button',
label: 'toolbar.zoomBox',
icon: getIcon('框选放大'),
onClick: () => {
engine.engine?.getEngine().rangeScale.active();
// 事件先留空:后续实现“框选放大/框选缩放”能力时再接入
// 这里不做任何动作,避免误触影响用户操作
}
};
export const createZoomBoxButton = (): ButtonConfig => {
return {
id: 'zoom-box',
groupId: 'group-1',
keepActive: false,
type: 'button',
label: 'toolbar.zoomBox',
icon: getIcon('框选放大'),
onClick: () => {
const registry = ManagerRegistry.getInstance();
registry.engine3d?.getEngine().rangeScale.active();
}
};
};