diff --git a/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue b/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue index f35e5a3f..bfdcf9f9 100644 --- a/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue +++ b/web/hwlab-cloud-web/src/components/layout/SplitWorkspaceLayout.vue @@ -38,6 +38,8 @@ const props = withDefaults(defineProps<{ const emit = defineEmits<{ "update:leftWidth": [value: number]; "update:rightWidth": [value: number]; + "update:leftCollapsed": [value: boolean]; + "update:rightCollapsed": [value: boolean]; }>(); const layoutRef = ref(null); @@ -51,11 +53,13 @@ const layoutStyle = computed(() => { ? `${props.leftCollapsedWidth}px` : `minmax(${props.leftCollapsedWidth}px, ${clampedLeftWidth.value}%)`; if (!props.rightOpen) { - return { gridTemplateColumns: `${leftColumn} 6px minmax(0, 1fr)` }; + const leftCol = props.leftCollapsed ? '0px' : leftColumn; + const resizerCol = props.leftCollapsed ? '0px' : '6px'; + return { gridTemplateColumns: `${leftCol} ${resizerCol} 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 ? `${props.rightCollapsedWidth}px` : `minmax(280px, ${clampedRightWidth.value}fr)`; + const rightColumn = props.rightCollapsed ? "0px" : `minmax(280px, ${clampedRightWidth.value}fr)`; return { gridTemplateColumns: `${leftColumn} 6px ${mainShare} ${rightResizeColumn} ${rightColumn}` }; }); @@ -105,9 +109,12 @@ function clamp(value: number, min: number, max: number): number { :data-right-collapsed="rightCollapsed" :data-resizing="resizing || undefined" > -