diff --git a/packages/common/component/MetaListItem.vue b/packages/common/component/MetaListItem.vue index 5f16a74e11..dc066f0562 100644 --- a/packages/common/component/MetaListItem.vue +++ b/packages/common/component/MetaListItem.vue @@ -18,7 +18,8 @@ title="" width="267" trigger="manual" - @hide="hide(item)"> + @hide="hide(item)" + > @@ -46,7 +48,8 @@ effect="dark" :content="item.title" placement="top" - @click="btnClick($event, item.type)"> + @click="btnClick($event, item.type)" + > @@ -64,7 +67,8 @@ :visible="isShow" title="提示" width="20%" - @update:visible="isShow = $event"> + @update:visible="isShow = $event" + > diff --git a/packages/design-core/index.js b/packages/design-core/index.js index 1fa1404b28..4785bce04d 100644 --- a/packages/design-core/index.js +++ b/packages/design-core/index.js @@ -33,7 +33,7 @@ export { default as Styles } from '@opentiny/tiny-engine-setting-styles' export { default as Layout, LayoutService } from '@opentiny/tiny-engine-layout' export { default as Canvas } from '@opentiny/tiny-engine-canvas' export { initPreview } from './src/preview/src/main' -export { PluginPanel, ToolbarBase } from '@opentiny/tiny-engine-common' +export { PluginPanel, PluginSetting, ToolbarBase } from '@opentiny/tiny-engine-common' export { default as defaultRegistry } from './registry' diff --git a/packages/plugins/page/index.js b/packages/plugins/page/index.js index c925acfac3..0b48197ad5 100644 --- a/packages/plugins/page/index.js +++ b/packages/plugins/page/index.js @@ -13,11 +13,16 @@ import entry, { api } from './src/Main.vue' import metaData from './meta.js' import { PageService } from './src/composable' +import PageGeneral from './src/PageGeneral.vue' +import { api as pageSettingApi } from './src/PageSetting.vue' export default { ...metaData, - apis: api, + apis: { ...api, ...pageSettingApi }, entry, + components: { + PageGeneral + }, metas: [PageService] } diff --git a/packages/plugins/page/src/Main.vue b/packages/plugins/page/src/Main.vue index ac730fd266..a3fa44156e 100644 --- a/packages/plugins/page/src/Main.vue +++ b/packages/plugins/page/src/Main.vue @@ -71,6 +71,7 @@ export default { const { appInfoState } = useApp() const { pageState } = useCanvas() const { pageSettingState, DEFAULT_PAGE, isTemporaryPage, initCurrentPageData } = usePage() + const pageTreeRef = ref(null) const ROOT_ID = pageSettingState.ROOT_ID const docsUrl = useHelp().getDocsUrl('page') diff --git a/packages/plugins/page/src/PageFolderSetting.vue b/packages/plugins/page/src/PageFolderSetting.vue index 1f1157bf18..3c509875af 100644 --- a/packages/plugins/page/src/PageFolderSetting.vue +++ b/packages/plugins/page/src/PageFolderSetting.vue @@ -18,7 +18,7 @@
- +
@@ -30,10 +30,10 @@ import { reactive, ref } from 'vue' import { Button, Collapse, CollapseItem } from '@opentiny/vue' import { PluginSetting, SvgButton, ButtonGroup } from '@opentiny/tiny-engine-common' -import { usePage, useModal, useApp, useNotify } from '@opentiny/tiny-engine-meta-register' +import { usePage, useModal, useApp, useNotify, getMergeRegistry } from '@opentiny/tiny-engine-meta-register' import { isEqual } from '@opentiny/vue-renderless/common/object' import throttle from '@opentiny/vue-renderless/common/deps/throttle' -import PageGeneral from './PageGeneral.vue' +import meta from '../meta' import http from './http.js' let isShow = ref(false) @@ -55,7 +55,6 @@ export default { TinyCollapse: Collapse, TinyCollapseItem: CollapseItem, PluginSetting, - PageGeneral, SvgButton, ButtonGroup }, @@ -70,11 +69,13 @@ export default { activeName: ['folderGeneralRef'], title: '文件夹设置' }) - const folderGeneralRef = ref(null) const { requestCreatePage, requestUpdatePage, requestDeletePage } = http const { appInfoState } = useApp() const { pageSettingState, changeTreeData } = usePage() const { confirm } = useModal() + const registry = getMergeRegistry(meta.type, meta.id) + const pageGeneral = registry.components.PageGeneral + const folderGeneralRef = ref(null) const closeFolderSetting = () => { if (isEqual(pageSettingState.currentPageData, pageSettingState.currentPageDataCopy)) { @@ -192,6 +193,7 @@ export default { return { saveFolderSetting, deleteFolder: throttle(5000, true, deleteFolder), + pageGeneral, folderGeneralRef, closeFolderSettingPanel, isShow, diff --git a/packages/plugins/page/src/PageSetting.vue b/packages/plugins/page/src/PageSetting.vue index 777949b5b8..b70704e5f1 100644 --- a/packages/plugins/page/src/PageSetting.vue +++ b/packages/plugins/page/src/PageSetting.vue @@ -19,7 +19,7 @@
- + {} +} + export default { components: { TinyButton: Button, @@ -97,7 +109,6 @@ export default { TinyCollapseItem: CollapseItem, PageInputOutput, LifeCycles, - PageGeneral, PageHistory, PluginSetting, SvgButton, @@ -124,6 +135,8 @@ export default { } = usePage() const { pageState, initData } = useCanvas() const { confirm } = useModal() + const registry = getMergeRegistry(meta.type, meta.id) + const pageGeneral = registry.components.PageGeneral const pageGeneralRef = ref(null) const state = reactive({ @@ -150,7 +163,7 @@ export default { } } - const createPage = () => { + const createPage = async () => { const { page_content, ...other } = DEFAULT_PAGE const { page_content: page_content_state, ...pageSettingStateOther } = pageSettingState.currentPageData const createParams = { @@ -169,6 +182,7 @@ export default { delete createParams.id delete createParams._id } + await api.beforeCreatePage(createParams) requestCreatePage(createParams) .then((data) => { @@ -365,6 +379,7 @@ export default { savePageSetting, copyPage, pageSettingState, + pageGeneral, pageGeneralRef, deletePage, cancelPageSetting, diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index 8af5fc0e40..c99072cc4c 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -10,7 +10,7 @@ * */ -import { reactive } from 'vue' +import { reactive, ref } from 'vue' import { extend, isEqual } from '@opentiny/vue-renderless/common/object' const DEFAULT_PAGE = { @@ -39,6 +39,8 @@ const DEFAULT_PAGE = { group: 'staticPages' } +const selectedTemplateCard = ref(null) + const pageSettingState = reactive({ currentPageDataCopy: {}, // 记录当前页最开始的状态,当用户点击取消按钮的时候恢复到初始状态 currentPageData: {}, // 当前配置页面的数据 @@ -133,6 +135,7 @@ const COMMON_PAGE_GROUP_ID = 1 export default () => { return { DEFAULT_PAGE, + selectedTemplateCard, pageSettingState, isTemporaryPage, isCurrentDataSame,