From a6a5add72317ba4613fb58cccec0e69d16037257 Mon Sep 17 00:00:00 2001 From: hexqi Date: Fri, 5 Jul 2024 18:09:51 +0800 Subject: [PATCH 1/2] refactor: replace getPluginApi with getMetaApi --- .../VariableConfigurator.vue | 2 +- packages/layout/src/DesignToolbars.vue | 7 +-- packages/layout/src/composable/useLayout.js | 19 +------ .../plugins/block/src/composable/useBlock.js | 2 +- packages/plugins/data/src/Main.vue | 2 +- packages/register/src/constants.js | 57 +++++++++++++++++++ packages/register/src/index.js | 1 + .../events/src/components/BindEvents.vue | 4 +- .../src/components/BindEventsDialog.vue | 4 +- .../components/BindEventsDialogContent.vue | 2 +- .../components/BindEventsDialogSidebar.vue | 2 +- packages/toolbars/lock/index.js | 3 +- packages/toolbars/lock/src/Main.vue | 2 - 13 files changed, 71 insertions(+), 36 deletions(-) create mode 100644 packages/register/src/constants.js diff --git a/packages/configurator/src/variable-configurator/VariableConfigurator.vue b/packages/configurator/src/variable-configurator/VariableConfigurator.vue index 1c595444da..47f08f46c2 100644 --- a/packages/configurator/src/variable-configurator/VariableConfigurator.vue +++ b/packages/configurator/src/variable-configurator/VariableConfigurator.vue @@ -461,7 +461,7 @@ export default { if (item.id === 'function') { state.bindPrefix = CONSTANTS.THIS const { PLUGIN_NAME, getPluginApi } = useLayout() - const { getMethods } = getPluginApi(PLUGIN_NAME.PageController) + const { getMethods } = getPluginApi(PLUGIN_NAME.Page) state.variables = { ...getMethods?.() } } else if (item.id === 'bridge' || item.id === 'utils') { state.bindPrefix = `${CONSTANTS.THIS}${item.id}.` diff --git a/packages/layout/src/DesignToolbars.vue b/packages/layout/src/DesignToolbars.vue index 644ba96c3f..2f22ae2a7f 100644 --- a/packages/layout/src/DesignToolbars.vue +++ b/packages/layout/src/DesignToolbars.vue @@ -46,11 +46,8 @@ export default { } else { leftBar.push(item) } - if (item.id === 'lock') { - useLayout().registerPluginApi({ Lock: item.api }) - } - if (item.id === 'save') { - useLayout().registerPluginApi({ save: item.api }) + if (item.api) { + useLayout().registerPluginApi({ [item.id]: item.api }) } }) nextTick(() => { diff --git a/packages/layout/src/composable/useLayout.js b/packages/layout/src/composable/useLayout.js index 4623a9d02a..ed32525585 100644 --- a/packages/layout/src/composable/useLayout.js +++ b/packages/layout/src/composable/useLayout.js @@ -12,27 +12,10 @@ import { reactive, nextTick } from 'vue' import { constants } from '@opentiny/tiny-engine-utils' +import { META_APP as PLUGIN_NAME } from '@opentiny/tiny-engine-meta-register' const { PAGE_STATUS } = constants -const PLUGIN_NAME = { - Materials: 'engine.plugins.materials', - AppManage: 'engine.plugins.appmanage', - BlockManage: 'engine.plugins.blockmanage', - Bridge: 'engine.plugins.bridge', - State: 'engine.plugins.state', - Collections: 'engine.plugins.collections', - EditorHelp: 'engine.plugins.editorhelp', - I18n: 'engine.plugins.i18n', - Robot: 'engine.plugins.robot', - Schema: 'engine.plugins.schema', - PageController: 'engine.plugins.pagecontroller', - OutlineTree: 'engine.plugins.outlinetree', - Tutorial: 'engine.plugins.tutorial', - Lock: 'Lock', - save: 'save' -} - const pluginState = reactive({ pluginEvent: 'all' }) diff --git a/packages/plugins/block/src/composable/useBlock.js b/packages/plugins/block/src/composable/useBlock.js index 99dfb09b2e..4094892d9d 100644 --- a/packages/plugins/block/src/composable/useBlock.js +++ b/packages/plugins/block/src/composable/useBlock.js @@ -474,7 +474,7 @@ const appendEventEmit = ({ eventName, functionName } = {}) => { } const { PLUGIN_NAME, getPluginApi } = useLayout() - const getMethods = getPluginApi(PLUGIN_NAME.PageController)?.getMethods + const getMethods = getPluginApi(PLUGIN_NAME.Page)?.getMethods if (getMethods && typeof getMethods === 'function') { const method = getMethods()?.[functionName] diff --git a/packages/plugins/data/src/Main.vue b/packages/plugins/data/src/Main.vue index 51be52d81a..76dec50dd7 100644 --- a/packages/plugins/data/src/Main.vue +++ b/packages/plugins/data/src/Main.vue @@ -114,7 +114,7 @@ export default { const isBlock = computed(() => useCanvas().isBlock()) const { setSaved } = useCanvas() const { PLUGIN_NAME, getPluginApi } = useLayout() - const { openCommon } = getPluginApi(PLUGIN_NAME.save) + const { openCommon } = getPluginApi(PLUGIN_NAME.Save) const docsUrl = useHelp().getDocsUrl('data') const state = reactive({ dataSource: {}, diff --git a/packages/register/src/constants.js b/packages/register/src/constants.js new file mode 100644 index 0000000000..1dba5037f0 --- /dev/null +++ b/packages/register/src/constants.js @@ -0,0 +1,57 @@ +export const META_SERVICE = { + EditorInfo: 'engine.service.editorInfo', + App: 'engine.service.app', + GenerateCode: 'engine.service.generateCode', + Layout: 'engine.service.layout', + Breadcrumb: 'engine.service.breadcrumb', + SaveLocal: 'engine.service.savelocal', + History: 'engine.service.history', + Resource: 'engine.service.resource', + Material: 'engine.service.material', + Page: 'engine.service.page', + Block: 'engine.service.block', + DataSource: 'engine.service.dataSource', + Translate: 'engine.service.translate', + Help: 'engine.service.help', + Property: 'engine.service.property', + Properties: 'engine.service.properties' +} + +export const META_APP = { + Layout: 'engine.layout', + Logo: 'engine.toolbars.logo', + Breadcrumb: 'engine.toolbars.breadcrumb', + Media: 'engine.toolbars.media', + Collaboration: 'engine.toolbars.collaboration', + Clean: 'engine.toolbars.clean', + Refresh: 'engine.toolbars.refresh', + Save: 'engine.toolbars.save', + GenerateVue: 'engine.toolbars.generate-vue', + Preview: 'engine.toolbars.preview', + RedoUndo: 'engine.toolbars.redoundo', + Fullscreen: 'engine.toolbars.fullscreen', + Lock: 'engine.toolbars.lock', + Setting: 'engine.toolbars.setting', + Lang: 'engine.toolbars.lang', + Block: 'engine.plugins.materials.block', + Component: 'engine.plugins.materials.component', + Materials: 'engine.plugins.materials', + OutlineTree: 'engine.plugins.outlinetree', + AppManage: 'engine.plugins.appmanage', + BlockManage: 'engine.plugins.blockmanage', + Collections: 'engine.plugins.collections', + Bridge: 'engine.plugins.bridge', + I18n: 'engine.plugins.i18n', + Page: 'engine.plugins.pagecontroller', + State: 'engine.plugins.state', + Schema: 'engine.plugins.schema', + Help: 'engine.plugins.editorhelp', + Robot: 'engine.plugins.robot', + DslVue: 'engine.dsls.dslvue', + Props: 'engine.setting.props', + Styles: 'engine.setting.styles', + Event: 'engine.setting.event', + Container: 'engine.canvas.container', + Canvas: 'engine.canvas', + Tutorial: 'engine.plugins.tutorial' +} diff --git a/packages/register/src/index.js b/packages/register/src/index.js index a88b30e3c3..3faa004ef1 100644 --- a/packages/register/src/index.js +++ b/packages/register/src/index.js @@ -18,3 +18,4 @@ export { default as useMessage } from './useMessage' export { useState, useStore } from './useState' export { getConfigurator, addConfigurator } from './configurators' export * from './hooks' +export { META_APP, META_SERVICE } from './constants' diff --git a/packages/settings/events/src/components/BindEvents.vue b/packages/settings/events/src/components/BindEvents.vue index 02a5ebf151..e4e37f34d4 100644 --- a/packages/settings/events/src/components/BindEvents.vue +++ b/packages/settings/events/src/components/BindEvents.vue @@ -113,7 +113,7 @@ export default { const { getMaterial } = useMaterial() const { confirm } = useModal() - const { highlightMethod } = getPluginApi(PLUGIN_NAME.PageController) + const { highlightMethod } = getPluginApi(PLUGIN_NAME.Page) const { commonEvents = {} } = getMergeMeta('engine.setting.event').options @@ -212,7 +212,7 @@ export default { const openCodePanel = (action) => { if (action) { - activePlugin(PLUGIN_NAME.PageController).then(() => { + activePlugin(PLUGIN_NAME.Page).then(() => { if (highlightMethod) { highlightMethod(action.ref) } diff --git a/packages/settings/events/src/components/BindEventsDialog.vue b/packages/settings/events/src/components/BindEventsDialog.vue index 806711f8f8..64446c362d 100644 --- a/packages/settings/events/src/components/BindEventsDialog.vue +++ b/packages/settings/events/src/components/BindEventsDialog.vue @@ -55,7 +55,7 @@ export default { const { PLUGIN_NAME, getPluginApi, activePlugin } = useLayout() const { pageState } = useCanvas() - const { getMethods, saveMethod, highlightMethod } = getPluginApi(PLUGIN_NAME.PageController) + const { getMethods, saveMethod, highlightMethod } = getPluginApi(PLUGIN_NAME.Page) const state = reactive({ editorContent: '', @@ -150,7 +150,7 @@ export default { } const activePagePlugin = () => { - activePlugin(PLUGIN_NAME.PageController).then(() => { + activePlugin(PLUGIN_NAME.Page).then(() => { // 确认js面板渲染完成之后再对目标函数进行高亮处理 nextTick(() => { if (highlightMethod) { diff --git a/packages/settings/events/src/components/BindEventsDialogContent.vue b/packages/settings/events/src/components/BindEventsDialogContent.vue index 86022aec31..34017baafc 100644 --- a/packages/settings/events/src/components/BindEventsDialogContent.vue +++ b/packages/settings/events/src/components/BindEventsDialogContent.vue @@ -72,7 +72,7 @@ export default { }, setup() { const { PLUGIN_NAME, getPluginApi } = useLayout() - const { getMethodNameList } = getPluginApi(PLUGIN_NAME.PageController) + const { getMethodNameList } = getPluginApi(PLUGIN_NAME.Page) const context = inject('context') diff --git a/packages/settings/events/src/components/BindEventsDialogSidebar.vue b/packages/settings/events/src/components/BindEventsDialogSidebar.vue index 8b822688a3..02f8e6a4c2 100644 --- a/packages/settings/events/src/components/BindEventsDialogSidebar.vue +++ b/packages/settings/events/src/components/BindEventsDialogSidebar.vue @@ -37,7 +37,7 @@ export default { }, setup(props) { const { PLUGIN_NAME, getPluginApi } = useLayout() - const { getMethodNameList } = getPluginApi(PLUGIN_NAME.PageController) + const { getMethodNameList } = getPluginApi(PLUGIN_NAME.Page) const searchValue = ref('') const filteredMethodList = ref([]) diff --git a/packages/toolbars/lock/index.js b/packages/toolbars/lock/index.js index 81ca676214..c0e0c06878 100644 --- a/packages/toolbars/lock/index.js +++ b/packages/toolbars/lock/index.js @@ -10,11 +10,10 @@ * */ -import entry, { api } from './src/Main.vue' +import entry from './src/Main.vue' import metaData from './meta' export default { ...metaData, - api, entry } diff --git a/packages/toolbars/lock/src/Main.vue b/packages/toolbars/lock/src/Main.vue index cae795ffcf..67b0a4f4f2 100644 --- a/packages/toolbars/lock/src/Main.vue +++ b/packages/toolbars/lock/src/Main.vue @@ -23,8 +23,6 @@ import { constants } from '@opentiny/tiny-engine-utils' import { Popover } from '@opentiny/vue' import { requestBlockPage } from './http' -export const api = {} - const { COMPONENT_NAME, PAGE_STATUS } = constants const componentType = { From 6f4b74ae94efb35f4d6b2a9b38f6122add06aeb5 Mon Sep 17 00:00:00 2001 From: hexqi Date: Mon, 8 Jul 2024 08:44:00 +0800 Subject: [PATCH 2/2] refactor: import getMetaApi from register --- .../canvas/DesignCanvas/src/DesignCanvas.vue | 4 ++-- .../common/component/BlockDeployDialog.vue | 11 ++++------ packages/common/component/ProgressBar.vue | 5 ++--- .../VariableConfigurator.vue | 12 ++++++++--- packages/layout/src/DesignPlugins.vue | 8 +------- packages/layout/src/DesignToolbars.vue | 4 ---- packages/layout/src/composable/useLayout.js | 20 +++---------------- packages/plugins/block/index.js | 2 +- .../plugins/block/src/composable/useBlock.js | 13 +++++++++--- packages/plugins/data/src/Main.vue | 8 ++++---- packages/plugins/materials/index.js | 1 - .../materials/src/composable/useResource.js | 10 +++++----- packages/plugins/page/index.js | 2 +- packages/plugins/script/index.js | 2 +- packages/plugins/tutorial/index.js | 2 +- packages/plugins/tutorial/src/Main.vue | 8 +++----- .../events/src/components/BindEvents.vue | 16 +++++++++++---- .../src/components/BindEventsDialog.vue | 13 +++++++++--- .../components/BindEventsDialogContent.vue | 5 ++--- .../components/BindEventsDialogSidebar.vue | 5 ++--- packages/toolbars/generate-vue/src/Main.vue | 15 ++++++++++---- packages/toolbars/save/index.js | 2 +- packages/toolbars/save/src/js/index.js | 17 +++++++++++----- 23 files changed, 97 insertions(+), 88 deletions(-) diff --git a/packages/canvas/DesignCanvas/src/DesignCanvas.vue b/packages/canvas/DesignCanvas/src/DesignCanvas.vue index 5cd3adab43..a2c6c898a9 100644 --- a/packages/canvas/DesignCanvas/src/DesignCanvas.vue +++ b/packages/canvas/DesignCanvas/src/DesignCanvas.vue @@ -24,14 +24,14 @@ import { useLayout, useMaterial, useHistory, - useModal + useModal, + getMergeRegistry } from '@opentiny/tiny-engine-meta-register' import materials from '@opentiny/tiny-engine-plugin-materials' import { useHttp } from '@opentiny/tiny-engine-http' import { constants } from '@opentiny/tiny-engine-utils' import { isVsCodeEnv, isDevelopEnv } from '@opentiny/tiny-engine-common/js/environments' import * as ast from '@opentiny/tiny-engine-common/js/ast' -import { getMergeRegistry } from '@opentiny/tiny-engine-meta-register' const { PAGE_STATUS } = constants const tenant = new URLSearchParams(location.search).get('tenant') || '' diff --git a/packages/common/component/BlockDeployDialog.vue b/packages/common/component/BlockDeployDialog.vue index 9059b14447..35539b88de 100644 --- a/packages/common/component/BlockDeployDialog.vue +++ b/packages/common/component/BlockDeployDialog.vue @@ -81,7 +81,7 @@ import { Popover as TinyPopover, FormItem as TinyFormItem } from '@opentiny/vue' -import { useLayout, useNotify, useCanvas } from '@opentiny/tiny-engine-meta-register' +import { useNotify, useCanvas, getMetaApi, META_APP } from '@opentiny/tiny-engine-meta-register' import { constants } from '@opentiny/tiny-engine-utils' import VueMonaco from './VueMonaco.vue' @@ -152,8 +152,7 @@ export default { const deployBlock = async () => { deployBlockRef.value.validate((valid) => { - const { PLUGIN_NAME, getPluginApi } = useLayout() - const { getEditBlock, publishBlock } = getPluginApi(PLUGIN_NAME.BlockManage) + const { getEditBlock, publishBlock } = getMetaApi(META_APP.BlockManage) if (valid) { const params = { block: getEditBlock(), @@ -172,11 +171,9 @@ export default { } const changeCompare = async (value) => { - const { PLUGIN_NAME, getPluginApi } = useLayout() - const { getEditBlock } = getPluginApi(PLUGIN_NAME.BlockManage) + const api = getMetaApi(META_APP.BlockManage) if (value) { - const api = getPluginApi(PLUGIN_NAME.BlockManage) - const block = getEditBlock() + const block = api.getEditBlock() const remote = await api.getBlockById(block?.id) const originalObj = remote?.content || {} state.originalCode = JSON.stringify(originalObj, null, 2) diff --git a/packages/common/component/ProgressBar.vue b/packages/common/component/ProgressBar.vue index 4eaafbb262..b09e4ada7a 100644 --- a/packages/common/component/ProgressBar.vue +++ b/packages/common/component/ProgressBar.vue @@ -14,15 +14,14 @@