+
+
@@ -26,13 +32,17 @@ import { generatePageNameByApp } from '../../utils/editor';
const services = inject
('services');
const editorService = services?.editorService;
+const uiService = services?.uiService;
const pageBar = ref();
const itemsContainer = ref();
const pageBarWidth = ref(0);
const canScroll = ref(false);
-const itemsContainerWidth = computed(() => pageBarWidth.value - 105);
+const showAddPageButton = computed(() => uiService?.get('showAddPageButton'));
+
+// 减去新增、左移、右移三个按钮的宽度
+const itemsContainerWidth = computed(() => pageBarWidth.value - 35 * 2 - (showAddPageButton.value ? 35 : 21));
let translateLeft = 0;
const resizeObserver = new ResizeObserver((entries) => {
@@ -46,7 +56,7 @@ const resizeObserver = new ResizeObserver((entries) => {
const setCanScroll = () => {
if (itemsContainer.value) {
- canScroll.value = itemsContainer.value.scrollWidth > pageBarWidth.value - 105;
+ canScroll.value = itemsContainer.value.scrollWidth > itemsContainerWidth.value;
}
};
diff --git a/packages/editor/src/services/ui.ts b/packages/editor/src/services/ui.ts
index 63c1be99..14fdfdc2 100644
--- a/packages/editor/src/services/ui.ts
+++ b/packages/editor/src/services/ui.ts
@@ -54,6 +54,7 @@ const state = reactive({
showGuides: true,
showRule: true,
propsPanelSize: 'small',
+ showAddPageButton: true,
});
class Ui extends BaseService {
diff --git a/packages/editor/src/type.ts b/packages/editor/src/type.ts
index c944686e..86308ed2 100644
--- a/packages/editor/src/type.ts
+++ b/packages/editor/src/type.ts
@@ -124,6 +124,8 @@ export interface UiState {
showRule: boolean;
/** 用于控制该属性配置表单内组件的尺寸 */
propsPanelSize: 'large' | 'default' | 'small';
+ /** 是否显示新增页面按钮 */
+ showAddPageButton: boolean;
}
export interface EditorNodeInfo {