From ad794d83da0eedfe463a8f45c686c3ac5b454518 Mon Sep 17 00:00:00 2001 From: Gene Date: Tue, 24 Dec 2024 16:18:18 +0800 Subject: [PATCH] feat: page tree supports dragging (#948) * feat: add layer line to node tree * feat: draggable tree * feat: save immediately after dragging * add hover style(demo) * feat: add lock, home icons * fx routing path issues * move updateTreeData to the finally block * fix generateTemplate execution error * fix default value incorrect in create new folder form --- packages/common/js/http.js | 10 +- packages/plugins/page/src/LayerLines.vue | 31 ++++ packages/plugins/page/src/Main.vue | 2 +- packages/plugins/page/src/PageGeneral.vue | 1 - packages/plugins/page/src/PageTree.vue | 132 +++++++++++---- packages/plugins/page/src/Tree.vue | 152 ++++++++++++++++-- .../plugins/page/src/composable/usePage.js | 6 +- .../src/plugins/parseSchemaPlugin.js | 4 +- .../src/templates/vue-template/index.js | 9 +- 9 files changed, 289 insertions(+), 58 deletions(-) create mode 100644 packages/plugins/page/src/LayerLines.vue diff --git a/packages/common/js/http.js b/packages/common/js/http.js index 2460db797..4fcd6654a 100644 --- a/packages/common/js/http.js +++ b/packages/common/js/http.js @@ -41,7 +41,6 @@ export const handlePageUpdate = (pageId, params, routerChange, isCurEditPage) => return getMetaApi(META_SERVICE.Http) .post(`/app-center/api/pages/update/${pageId}`, params) .then((res) => { - const { pageSettingState } = usePage() const { setSaved } = useCanvas() if (isVsCodeEnv) { generatePage({ @@ -58,9 +57,6 @@ export const handlePageUpdate = (pageId, params, routerChange, isCurEditPage) => } } - // 更新页面管理的列表,如果不存在,说明还没有打开过页面管理面板 - pageSettingState.updateTreeData?.() - pageSettingState.isNew = false useNotify({ message: '保存成功!', type: 'success' }) // 更新 页面状态 标志 @@ -76,4 +72,10 @@ export const handlePageUpdate = (pageId, params, routerChange, isCurEditPage) => .catch((err) => { useNotify({ title: '保存失败', message: `${err?.message || ''}`, type: 'error' }) }) + .finally(() => { + const { pageSettingState } = usePage() + // 更新页面管理的列表,如果不存在,说明还没有打开过页面管理面板 + pageSettingState.updateTreeData?.() + pageSettingState.isNew = false + }) } diff --git a/packages/plugins/page/src/LayerLines.vue b/packages/plugins/page/src/LayerLines.vue new file mode 100644 index 000000000..d9fd026bc --- /dev/null +++ b/packages/plugins/page/src/LayerLines.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/packages/plugins/page/src/Main.vue b/packages/plugins/page/src/Main.vue index aeb2217d7..2932ce5ad 100644 --- a/packages/plugins/page/src/Main.vue +++ b/packages/plugins/page/src/Main.vue @@ -6,7 +6,7 @@ name="add-folder" placement="bottom" tips="新建文件夹" - @click="createNewFolder" + @click="createNewFolder()" > { if (data.id === ROOT_ID) { return null diff --git a/packages/plugins/page/src/PageTree.vue b/packages/plugins/page/src/PageTree.vue index 25674d463..d98e5120e 100644 --- a/packages/plugins/page/src/PageTree.vue +++ b/packages/plugins/page/src/PageTree.vue @@ -1,6 +1,6 @@
-