From ebbd788fbb2c0b45d4473798efc57eec8ba74a25 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 18 六月 2024 14:51:16 +0800
Subject: [PATCH] 版本更新至2.11.5

---
 src/layouts/default/sider/LayoutSider.vue |  183 ++++++++++++++++++++-------------------------
 1 files changed, 83 insertions(+), 100 deletions(-)

diff --git a/src/layouts/default/sider/LayoutSider.vue b/src/layouts/default/sider/LayoutSider.vue
index 960ca69..9678746 100644
--- a/src/layouts/default/sider/LayoutSider.vue
+++ b/src/layouts/default/sider/LayoutSider.vue
@@ -1,135 +1,118 @@
 <template>
   <div
     v-if="getMenuFixed && !getIsMobile"
-    :style="getHiddenDomStyle"
     v-show="showClassSideBarRef"
+    :style="getHiddenDomStyle"
   ></div>
-  <Sider
+  <!-- 
+    閽堝鍦烘櫙锛氳彍鍗曟姌鍙犳寜閽负鈥滃簳閮ㄢ�濇椂锛�
+    鍏充簬 breakpoint锛�
+    缁勪欢瀹氫箟鐨勬槸 lg: '992px'锛�
+    鑰� vben 瀹氫箟鐨勬槸 lg: '960px'锛�
+    鐜版妸缁勪欢鐨� breakpoint 璁句负 md锛�
+    鍒欑粍浠剁殑 md: '768px' < vben鐨� lg: '960px'锛�
+    闃叉 collapsedWidth 鍦� 960px ~ 992px 涔嬮棿閿欒璁剧疆涓� 0锛�
+    浠庤�岄槻姝㈠嚭鐜版诞鍔ㄧ殑 trigger锛堜笖breakpoint浜嬩欢澶辨晥锛�
+  -->
+  <Layout.Sider
     v-show="showClassSideBarRef"
     ref="sideRef"
-    breakpoint="lg"
+    :breakpoint="getTrigger === TriggerEnum.FOOTER ? 'md' : 'lg'"
     collapsible
     :class="getSiderClass"
     :width="getMenuWidth"
     :collapsed="getCollapsed"
     :collapsedWidth="getCollapsedWidth"
     :theme="getMenuTheme"
-    @breakpoint="onBreakpointChange"
-    :trigger="getTrigger"
+    :trigger="triggerVNode"
     v-bind="getTriggerAttr"
+    @breakpoint="onBreakpointChange"
   >
-    <template #trigger v-if="getShowTrigger">
+    <template v-if="getShowTrigger" #trigger>
       <LayoutTrigger />
     </template>
     <LayoutMenu :theme="getMenuTheme" :menuMode="getMode" :splitType="getSplitType" />
     <DragBar ref="dragBarRef" />
-  </Sider>
+  </Layout.Sider>
 </template>
-<script lang="ts">
-  import { computed, defineComponent, ref, unref, CSSProperties, h } from 'vue';
-
+<script lang="ts" setup>
   import { Layout } from 'ant-design-vue';
+  import { computed, CSSProperties, h, ref, unref } from 'vue';
+
+  import { MenuModeEnum, MenuSplitTyeEnum, TriggerEnum } from '@/enums/menuEnum';
+  import { useMenuSetting } from '@/hooks/setting/useMenuSetting';
+  import { useAppInject } from '@/hooks/web/useAppInject';
+  import { useDesign } from '@/hooks/web/useDesign';
+  import LayoutTrigger from '@/layouts/default/trigger/index.vue';
+
   import LayoutMenu from '../menu/index.vue';
-  import LayoutTrigger from '/@/layouts/default/trigger/index.vue';
-
-  import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
-
-  import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
-  import { useTrigger, useDragLine, useSiderEvent } from './useLayoutSider';
-  import { useAppInject } from '/@/hooks/web/useAppInject';
-  import { useDesign } from '/@/hooks/web/useDesign';
-
   import DragBar from './DragBar.vue';
-  export default defineComponent({
-    name: 'LayoutSideBar',
-    components: { Sider: Layout.Sider, LayoutMenu, DragBar, LayoutTrigger },
-    setup() {
-      const dragBarRef = ref(null);
-      const sideRef = ref(null);
+  import { useDragLine, useSiderEvent, useTrigger } from './useLayoutSider';
 
-      const {
-        getCollapsed,
-        getMenuWidth,
-        getSplit,
-        getMenuTheme,
-        getRealWidth,
-        getMenuHidden,
-        getMenuFixed,
-        getIsMixMode,
-        toggleCollapsed,
-      } = useMenuSetting();
+  defineOptions({ name: 'LayoutSideBar' });
 
-      const { prefixCls } = useDesign('layout-sideBar');
+  const dragBarRef = ref(null);
+  const sideRef = ref(null);
 
-      const { getIsMobile } = useAppInject();
+  const {
+    getCollapsed,
+    getMenuWidth,
+    getSplit,
+    getMenuTheme,
+    getRealWidth,
+    getMenuHidden,
+    getMenuFixed,
+    getIsMixMode,
+    getTrigger,
+  } = useMenuSetting();
 
-      const { getTriggerAttr, getShowTrigger } = useTrigger(getIsMobile);
+  const { prefixCls } = useDesign('layout-sideBar');
 
-      useDragLine(sideRef, dragBarRef);
+  const { getIsMobile } = useAppInject();
 
-      const { getCollapsedWidth, onBreakpointChange } = useSiderEvent();
+  const { getTriggerAttr, getShowTrigger } = useTrigger(getIsMobile);
 
-      const getMode = computed(() => {
-        return unref(getSplit) ? MenuModeEnum.INLINE : null;
-      });
+  useDragLine(sideRef, dragBarRef);
 
-      const getSplitType = computed(() => {
-        return unref(getSplit) ? MenuSplitTyeEnum.LEFT : MenuSplitTyeEnum.NONE;
-      });
+  const { getCollapsedWidth, onBreakpointChange } = useSiderEvent();
 
-      const showClassSideBarRef = computed(() => {
-        return unref(getSplit) ? !unref(getMenuHidden) : true;
-      });
-
-      const getSiderClass = computed(() => {
-        return [
-          prefixCls,
-          {
-            [`${prefixCls}--fixed`]: unref(getMenuFixed),
-            [`${prefixCls}--mix`]: unref(getIsMixMode) && !unref(getIsMobile),
-          },
-        ];
-      });
-
-      const getHiddenDomStyle = computed((): CSSProperties => {
-        const width = `${unref(getRealWidth)}px`;
-        return {
-          width: width,
-          overflow: 'hidden',
-          flex: `0 0 ${width}`,
-          maxWidth: width,
-          minWidth: width,
-          transition: 'all 0.2s',
-        };
-      });
-
-      // 鍦ㄦ澶勪娇鐢ㄨ绠楅噺鍙兘浼氬鑷磗ider寮傚父
-      // andv 鏇存柊鍚庯紝濡傛灉trigger鎻掓Ы鍙敤锛屽垯姝ゅ浠g爜鍙簾寮�
-      const getTrigger = h(LayoutTrigger);
-
-      return {
-        prefixCls,
-        sideRef,
-        dragBarRef,
-        getIsMobile,
-        getHiddenDomStyle,
-        getSiderClass,
-        getTrigger,
-        getTriggerAttr,
-        getCollapsedWidth,
-        getMenuFixed,
-        showClassSideBarRef,
-        getMenuWidth,
-        getCollapsed,
-        getMenuTheme,
-        onBreakpointChange,
-        getMode,
-        getSplitType,
-        getShowTrigger,
-        toggleCollapsed,
-      };
-    },
+  const getMode = computed(() => {
+    return unref(getSplit) ? MenuModeEnum.INLINE : null;
   });
+
+  const getSplitType = computed(() => {
+    return unref(getSplit) ? MenuSplitTyeEnum.LEFT : MenuSplitTyeEnum.NONE;
+  });
+
+  const showClassSideBarRef = computed(() => {
+    return unref(getSplit) ? !unref(getMenuHidden) : true;
+  });
+
+  const getSiderClass = computed(() => {
+    return [
+      prefixCls,
+      {
+        [`${prefixCls}--fixed`]: unref(getMenuFixed),
+        [`${prefixCls}--mix`]: unref(getIsMixMode) && !unref(getIsMobile),
+      },
+    ];
+  });
+
+  const getHiddenDomStyle = computed((): CSSProperties => {
+    const width = `${unref(getRealWidth)}px`;
+    return {
+      width,
+      overflow: 'hidden',
+      flex: `0 0 ${width}`,
+      maxWidth: width,
+      minWidth: width,
+      transition: 'all 0.2s',
+    };
+  });
+
+  // 鍦ㄦ澶勪娇鐢ㄨ绠楅噺鍙兘浼氬鑷磗ider寮傚父
+  // andv 鏇存柊鍚庯紝濡傛灉trigger鎻掓Ы鍙敤锛屽垯姝ゅ浠g爜鍙簾寮�
+  const triggerVNode = h(LayoutTrigger);
 </script>
 <style lang="less">
   @prefix-cls: ~'@{namespace}-layout-sideBar';
@@ -138,7 +121,7 @@
     z-index: @layout-sider-fixed-z-index;
 
     &--fixed {
-      position: fixed;
+      position: fixed !important;
       top: 0;
       left: 0;
       height: 100%;

--
Gitblit v1.9.3