fix(LayoutSidre): resolve the breakpoint conflict. resolve #3605

* fix(LayoutSidre): resolve the breakpoint conflict

* docs: update comment

* fix(LayoutSider): add trigger footer limit
This commit is contained in:
xachary
2024-02-23 09:32:14 +08:00
committed by GitHub
parent b7944690d1
commit 1a7ae0e810

View File

@@ -4,17 +4,27 @@
v-show="showClassSideBarRef" v-show="showClassSideBarRef"
:style="getHiddenDomStyle" :style="getHiddenDomStyle"
></div> ></div>
<!--
针对场景菜单折叠按钮为底部
关于 breakpoint
组件定义的是 lg: '992px'
vben 定义的是 lg: '960px'
现把组件的 breakpoint 设为 md
则组件的 md: '768px' < vben的 lg: '960px'
防止 collapsedWidth 960px ~ 992px 之间错误设置为 0
从而防止出现浮动的 trigger且breakpoint事件失效
-->
<Layout.Sider <Layout.Sider
v-show="showClassSideBarRef" v-show="showClassSideBarRef"
ref="sideRef" ref="sideRef"
breakpoint="lg" :breakpoint="getTrigger === TriggerEnum.FOOTER ? 'md' : 'lg'"
collapsible collapsible
:class="getSiderClass" :class="getSiderClass"
:width="getMenuWidth" :width="getMenuWidth"
:collapsed="getCollapsed" :collapsed="getCollapsed"
:collapsedWidth="getCollapsedWidth" :collapsedWidth="getCollapsedWidth"
:theme="getMenuTheme" :theme="getMenuTheme"
:trigger="getTrigger" :trigger="triggerVNode"
v-bind="getTriggerAttr" v-bind="getTriggerAttr"
@breakpoint="onBreakpointChange" @breakpoint="onBreakpointChange"
> >
@@ -29,7 +39,7 @@
import { Layout } from 'ant-design-vue'; import { Layout } from 'ant-design-vue';
import { computed, CSSProperties, h, ref, unref } from 'vue'; import { computed, CSSProperties, h, ref, unref } from 'vue';
import { MenuModeEnum, MenuSplitTyeEnum } from '@/enums/menuEnum'; import { MenuModeEnum, MenuSplitTyeEnum, TriggerEnum } from '@/enums/menuEnum';
import { useMenuSetting } from '@/hooks/setting/useMenuSetting'; import { useMenuSetting } from '@/hooks/setting/useMenuSetting';
import { useAppInject } from '@/hooks/web/useAppInject'; import { useAppInject } from '@/hooks/web/useAppInject';
import { useDesign } from '@/hooks/web/useDesign'; import { useDesign } from '@/hooks/web/useDesign';
@@ -53,6 +63,7 @@
getMenuHidden, getMenuHidden,
getMenuFixed, getMenuFixed,
getIsMixMode, getIsMixMode,
getTrigger,
} = useMenuSetting(); } = useMenuSetting();
const { prefixCls } = useDesign('layout-sideBar'); const { prefixCls } = useDesign('layout-sideBar');
@@ -101,7 +112,7 @@
// 在此处使用计算量可能会导致sider异常 // 在此处使用计算量可能会导致sider异常
// andv 更新后如果trigger插槽可用则此处代码可废弃 // andv 更新后如果trigger插槽可用则此处代码可废弃
const getTrigger = h(LayoutTrigger); const triggerVNode = h(LayoutTrigger);
</script> </script>
<style lang="less"> <style lang="less">
@prefix-cls: ~'@{namespace}-layout-sideBar'; @prefix-cls: ~'@{namespace}-layout-sideBar';