diff --git a/src/config/design.ts b/src/config/design.ts index 5141e7c..e3809c5 100644 --- a/src/config/design.ts +++ b/src/config/design.ts @@ -24,8 +24,10 @@ export interface DesignConfigState { collapseType: CollapseType; // 是否折叠菜单 isCollapse: boolean; - // 头部折叠按钮是否被悬停 - isCollapseHover: boolean; + // 安全区是否被悬停 + isSafeAreaHover: boolean; + // 跟踪是否首次激活悬停 + hasActivatedHover: boolean; } export const themeColorList: string[] = [ @@ -67,8 +69,10 @@ const design: DesignConfigState = { collapseType: 'followSystem', // 是否折叠菜单 isCollapse: false, - // 头部折叠按钮是否被悬停 - isCollapseHover: false, + // 安全区是否被悬停 + isSafeAreaHover: false, + // 跟踪是否首次激活悬停 + hasActivatedHover: false, }; export default design; diff --git a/src/hooks/useCollapseToggle.ts b/src/hooks/useCollapseToggle.ts index 07db4be..d9e44cf 100644 --- a/src/hooks/useCollapseToggle.ts +++ b/src/hooks/useCollapseToggle.ts @@ -14,7 +14,7 @@ export function useCollapseToggle(threshold: number = COLLAPSE_THRESHOLD) { /** 核心折叠切换方法 */ const changeCollapse = () => { // 切换最终折叠状态 - designStore.setCollapseFinal(!designStore.isCollapse); + designStore.setCollapse(!designStore.isCollapse); if (isAboveThreshold.value) { // 宽屏逻辑 diff --git a/src/hooks/useWindowWidthObserver.ts b/src/hooks/useWindowWidthObserver.ts index 049873e..b54c2d0 100644 --- a/src/hooks/useWindowWidthObserver.ts +++ b/src/hooks/useWindowWidthObserver.ts @@ -25,13 +25,13 @@ export function useWindowWidthObserver( // 判断当前的折叠状态 switch (designStore.collapseType) { case 'alwaysCollapsed': - designStore.setCollapseFinal(true); + designStore.setCollapse(true); break; case 'followSystem': - designStore.setCollapseFinal(!isAbove); + designStore.setCollapse(!isAbove); break; case 'alwaysExpanded': - designStore.setCollapseFinal(false); + designStore.setCollapse(false); if (isAbove) { // 大于的时候执行关闭动画 console.log('执行关闭动画'); @@ -42,7 +42,7 @@ export function useWindowWidthObserver( } break; case 'narrowExpandWideCollapse': - designStore.setCollapseFinal(isAbove); + designStore.setCollapse(isAbove); } console.log('最终的折叠状态:', designStore.isCollapse); diff --git a/src/layouts/LayoutVertical/index.vue b/src/layouts/LayoutVertical/index.vue index ab03fdf..319b9ef 100644 --- a/src/layouts/LayoutVertical/index.vue +++ b/src/layouts/LayoutVertical/index.vue @@ -16,9 +16,8 @@ useSafeArea({ direction: 'left', size: 50, onChange(isInSafeArea) { - // console.log('是否移入了安全区', isInSafeArea, isCollapse.value); // 设置悬停为 true - designStore.isCollapseHover = isInSafeArea; + designStore.isSafeAreaHover = isInSafeArea; }, enabled: isCollapse, // 折叠才开启监听 }); @@ -58,6 +57,7 @@ useWindowWidthObserver(); .layout-container-main { margin-left: var(--sidebar-left-container-default-width, 0px); + transition: margin-left 0.3s ease; } } diff --git a/src/layouts/components/Aside/index.vue b/src/layouts/components/Aside/index.vue index 36acf57..618ec9b 100644 --- a/src/layouts/components/Aside/index.vue +++ b/src/layouts/components/Aside/index.vue @@ -101,35 +101,17 @@ function handleChange() { console.log('点击了会话'); } /* 会话组件 结束 */ - -/* 鼠标事件 开始 */ -// 添加悬停和移除的类名自己控制 -const isHoverSelf = ref(false); -function handleChangeMouse(type: string) { - if (designStore.isCollapse) { - if (type === 'enter') { - isHoverSelf.value = !!designStore.isCollapse; - } - else { - isHoverSelf.value = false; - } - } - else { - isHoverSelf.value = false; - } -} -/* 鼠标事件 结束 */