diff --git a/packages/editor/src/Editor.vue b/packages/editor/src/Editor.vue
index 3469d5d3..f0bf681c 100644
--- a/packages/editor/src/Editor.vue
+++ b/packages/editor/src/Editor.vue
@@ -114,6 +114,7 @@
+
diff --git a/packages/editor/src/layouts/Framework.vue b/packages/editor/src/layouts/Framework.vue
index 5dcfe9ee..6494b122 100644
--- a/packages/editor/src/layouts/Framework.vue
+++ b/packages/editor/src/layouts/Framework.vue
@@ -39,6 +39,7 @@
+
diff --git a/packages/editor/src/layouts/page-bar/AddButton.vue b/packages/editor/src/layouts/page-bar/AddButton.vue
index bddf8a1d..de622293 100644
--- a/packages/editor/src/layouts/page-bar/AddButton.vue
+++ b/packages/editor/src/layouts/page-bar/AddButton.vue
@@ -3,9 +3,31 @@
v-if="showAddPageButton"
id="m-editor-page-bar-add-icon"
class="m-editor-page-bar-item m-editor-page-bar-item-icon"
- @click="addPage"
>
-
+
+
+
+
+
+
+
+
@@ -15,8 +37,10 @@ import { computed, inject, toRaw } from 'vue';
import { Plus } from '@element-plus/icons-vue';
import { NodeType } from '@tmagic/core';
+import { TMagicPopover } from '@tmagic/design';
import Icon from '@editor/components/Icon.vue';
+import ToolButton from '@editor/components/ToolButton.vue';
import type { Services } from '@editor/type';
import { generatePageNameByApp } from '@editor/utils/editor';
@@ -24,23 +48,19 @@ defineOptions({
name: 'MEditorPageBarAddButton',
});
-const props = defineProps<{
- type: NodeType.PAGE | NodeType.PAGE_FRAGMENT;
-}>();
-
const services = inject('services');
const uiService = services?.uiService;
const editorService = services?.editorService;
const showAddPageButton = computed(() => uiService?.get('showAddPageButton'));
-const addPage = () => {
+const addPage = (type: NodeType.PAGE | NodeType.PAGE_FRAGMENT) => {
if (!editorService) return;
const root = toRaw(editorService.get('root'));
if (!root) throw new Error('root 不能为空');
const pageConfig = {
- type: props.type,
- name: generatePageNameByApp(root, props.type),
+ type,
+ name: generatePageNameByApp(root, type),
items: [],
};
editorService.add(pageConfig);
diff --git a/packages/editor/src/layouts/page-bar/PageBar.vue b/packages/editor/src/layouts/page-bar/PageBar.vue
index 28e370ff..7da98ff9 100644
--- a/packages/editor/src/layouts/page-bar/PageBar.vue
+++ b/packages/editor/src/layouts/page-bar/PageBar.vue
@@ -1,10 +1,10 @@
-
-
-
+
-
+
+
+
@@ -63,21 +63,19 @@
diff --git a/packages/editor/src/layouts/page-bar/SwitchTypeButton.vue b/packages/editor/src/layouts/page-bar/SwitchTypeButton.vue
deleted file mode 100644
index 37862989..00000000
--- a/packages/editor/src/layouts/page-bar/SwitchTypeButton.vue
+++ /dev/null
@@ -1,45 +0,0 @@
-
- {{ item.text }}
-
-
-
diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts
index d01c8a26..8bae6eb2 100644
--- a/packages/editor/src/services/editor.ts
+++ b/packages/editor/src/services/editor.ts
@@ -474,11 +474,11 @@ class Editor extends BaseService {
if (isPage(node)) {
this.state.pageLength -= 1;
- await selectDefault(getPageList(root));
+ await selectDefault(rootItems);
} else if (isPageFragment(node)) {
this.state.pageFragmentLength -= 1;
- await selectDefault(getPageFragmentList(root));
+ await selectDefault(rootItems);
} else {
await this.select(parent);
stage?.select(parent.id);
diff --git a/packages/editor/src/theme/page-bar.scss b/packages/editor/src/theme/page-bar.scss
index 70dae269..1ea2f551 100644
--- a/packages/editor/src/theme/page-bar.scss
+++ b/packages/editor/src/theme/page-bar.scss
@@ -3,19 +3,13 @@
bottom: 0;
left: 0;
width: 100%;
+ user-select: none;
+}
- .tmagic-design-button.m-editor-page-bar-switch-type-button {
- margin-left: 10px;
- position: relative;
- top: 1px;
- border-radius: 3px 3px 0 0;
- border: 1px solid $--border-color;
- border-bottom: 1px solid transparent;
- padding: 5px 10px;
-
- &.active {
- background-color: #f3f3f3;
- }
+.m-editor-page-bar-item-icon {
+ .icon-active {
+ font-weight: bold;
+ color: $--theme-color;
}
}
@@ -101,3 +95,16 @@
}
}
}
+
+.m-editor-page-bar-search-panel {
+ position: absolute;
+ bottom: $--page-bar-height;
+ border: 1px solid $--border-color;
+ padding: 6px 10px;
+ width: 100%;
+ box-sizing: border-box;
+
+ .tmagic-design-form-item {
+ margin-bottom: 0;
+ }
+}
diff --git a/packages/editor/src/type.ts b/packages/editor/src/type.ts
index d2931b0c..6b2fbc40 100644
--- a/packages/editor/src/type.ts
+++ b/packages/editor/src/type.ts
@@ -77,9 +77,10 @@ export interface FrameworkSlots {
'props-panel'(props: {}): any;
'footer'(props: {}): any;
'page-bar'(props: {}): any;
+ 'page-bar-add-button'(props: {}): any;
'page-bar-title'(props: { page: MPage | MPageFragment }): any;
'page-bar-popover'(props: { page: MPage | MPageFragment }): any;
- 'page-list-popover'(props: { list: MPage[] | MPageFragment[] }): any;
+ 'page-list-popover'(props: { list: (MPage | MPageFragment)[] }): any;
}
export interface WorkspaceSlots {