From 6d4c9985a8e68f7120f7a41f679f5cfeaefac3ae Mon Sep 17 00:00:00 2001 From: UniDesk Codex Date: Sat, 4 Jul 2026 02:45:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8A=98=E5=8F=A0=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E7=A7=BB=E5=88=B0=E4=B8=BBheader=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=B7=A6=E4=BE=A7=E6=8A=98=E5=8F=A0=E6=97=B6=E4=B8=BB=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E8=A2=AB=E5=8E=8B=E7=BC=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. SplitWorkspaceLayout: leftCol在rightOpen=true时也用0px, 不再留44px空列;恢复aside始终渲染(去掉v-if), 折叠时通过width:0px+overflow:hidden隐藏 2. MdtodoPageShell: 在SplitWorkspaceLayout上方加toggle-bar, 放左右侧栏折叠/展开按钮,始终可见 3. MdtodoTaskTree: 移除面板内的折叠按钮(已移到主header) --- .../layout/SplitWorkspaceLayout.vue | 31 +++++++------------ .../src/components/mdtodo/MdtodoPageShell.vue | 16 ++++++++++ .../src/components/mdtodo/MdtodoTaskTree.vue | 1 - 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue b/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue index bfdcf9f9..c6eacd7c 100644 --- a/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue +++ b/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue @@ -49,18 +49,17 @@ const clampedLeftWidth = computed(() => clamp(props.leftWidth, props.minLeftWidt const clampedRightWidth = computed(() => clamp(props.rightWidth, props.minRightWidth, props.maxRightWidth)); const layoutStyle = computed(() => { - const leftColumn = props.leftCollapsed - ? `${props.leftCollapsedWidth}px` + const leftCol = props.leftCollapsed + ? '0px' : `minmax(${props.leftCollapsedWidth}px, ${clampedLeftWidth.value}%)`; + const leftResizerCol = props.leftCollapsed ? '0px' : '6px'; if (!props.rightOpen) { - const leftCol = props.leftCollapsed ? '0px' : leftColumn; - const resizerCol = props.leftCollapsed ? '0px' : '6px'; - return { gridTemplateColumns: `${leftCol} ${resizerCol} minmax(0, 1fr)` }; + return { gridTemplateColumns: `${leftCol} ${leftResizerCol} minmax(0, 1fr)` }; } const mainShare = props.rightCollapsed ? "minmax(0, 1fr)" : `minmax(0, ${100 - clampedRightWidth.value}fr)`; const rightResizeColumn = props.rightCollapsed ? "0" : "6px"; const rightColumn = props.rightCollapsed ? "0px" : `minmax(280px, ${clampedRightWidth.value}fr)`; - return { gridTemplateColumns: `${leftColumn} 6px ${mainShare} ${rightResizeColumn} ${rightColumn}` }; + return { gridTemplateColumns: `${leftCol} ${leftResizerCol} ${mainShare} ${rightResizeColumn} ${rightColumn}` }; }); onBeforeUnmount(() => stopResize()); @@ -109,12 +108,9 @@ function clamp(value: number, min: number, max: number): number { :data-right-collapsed="rightCollapsed" :data-resizing="resizing || undefined" > -