+ v-model:leftSidebarState="leftSidebarState" :save="writeFileContent">
@@ -36,24 +36,35 @@ async function greet() {
}
// 使用 Split 组件动态控制页面左右布局
-const split = ref(0.2);
+const defaultSplit = 0.15; // 默认左侧边栏和右侧区域的比例为 1.5:8.5
+const split = ref(defaultSplit);
const splitTrigger = useTemplateRef('splitTrigger');
const splitRight = useTemplateRef('splitRight');
const splitRightWidth = ref(0);
-const hiddenSplitLeft = ref("");
+const hiddenSplitLeft = ref('');
+const leftSidebarState = ref('open');
watch(split, (newSplit) => {
splitRightWidth.value = splitRight.value.offsetWidth;
// 当 split 小于某个值时,隐藏左边布局
if (newSplit < 0.05) {
- if (hiddenSplitLeft.value == "") {
- hiddenSplitLeft.value = "hidden"
+ leftSidebarState.value = 'close';
+ if (hiddenSplitLeft.value == '') {
+ hiddenSplitLeft.value = 'hidden';
}
} else {
- if (hiddenSplitLeft.value == "hidden") {
- hiddenSplitLeft.value = ""
+ leftSidebarState.value = 'open';
+ if (hiddenSplitLeft.value == 'hidden') {
+ hiddenSplitLeft.value = '';
}
}
})
+watch(leftSidebarState, (state) => {
+ if (state == 'open') {
+ split.value = defaultSplit;
+ } else {
+ split.value = 0;
+ }
+})
// 监听根目录路径。如果之前已经选过目录,初始界面直接加载该目录
const rootFolderPath = ref(localStorage.getItem('rootPathOfFolderTree') || "");
diff --git a/src/components/MainEditor.vue b/src/components/MainEditor.vue
index f58c069..c5e7715 100644
--- a/src/components/MainEditor.vue
+++ b/src/components/MainEditor.vue
@@ -2,7 +2,27 @@