import _ from 'lodash' import hotkeys from 'hotkeys-js' import AlarmMeta from '@/designer/viewWidgets/alarm/AlarmMeta' import LoggerMeta from '@/designer/viewWidgets/logger/LoggerMeta' import ModeltreeMeta from '@/designer/viewWidgets/modeltree/ModeltreeMeta' import MonitorMeta from '@/designer/viewWidgets/monitor/MonitorMeta' import PropertyMeta from '@/designer/viewWidgets/property/PropertyMeta' import ScriptMeta from '@/designer/viewWidgets/script/ScriptMeta' import TaskMeta from '@/designer/viewWidgets/task/TaskMeta' import ToolboxMeta from '@/designer/viewWidgets/toolbox/ToolboxMeta' import FileMenu from '@/designer/menus/FileMenu.ts' import EditMenu from '@/designer/menus/EditMenu.ts' import ToolsMenu from '@/designer/menus/Tools.ts' import Model3DView from '@/designer/menus/Model3DView.ts' import { forEachMenu } from '@/runtime/DefineMenu.ts' import { normalizeShortKey } from '@/utils/webutils.ts' import WorldModel from '@/designer/WorldModel.ts' /** * 初始化模型编辑器的基础控件 */ export function ModelMainInit() { AlarmMeta.install() LoggerMeta.install() ModeltreeMeta.install() MonitorMeta.install() PropertyMeta.install() ScriptMeta.install() TaskMeta.install() ToolboxMeta.install() FileMenu.install() EditMenu.install() ToolsMenu.install() Model3DView.install() new WorldModel().init() } export function ModelMainMounted() { forEachMenu((menu) => { if (typeof menu.click === 'function') { const shortKey = normalizeShortKey(menu.tip) if (shortKey) { menu.tip = shortKey hotkeys(shortKey, (event) => { event.preventDefault() menu.click() }) // console.log('hotkeys', menu.tip, menu.click) } } }) } export function ModelMainUnmounted() { // 移除所有的热键绑定 unbind all hotkeys.unbind() }