12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <template>
- <Drawer
- v-if="getIsMobile && getShowSidebar"
- placement="left"
- :class="prefixCls"
- :width="getMenuWidth"
- :getContainer="null"
- :visible="!getCollapsed"
- @close="handleClose"
- >
- <Sider />
- </Drawer>
- <MixSider v-else-if="getIsMixSidebar" />
- <BottomSider v-else-if="getIsBottomMenu" />
- <Sider v-else />
- </template>
- <script lang="ts">
- import { defineComponent } from 'vue';
- import Sider from './LayoutSider.vue';
- import MixSider from './MixSider.vue';
- import BottomSider from './bottomSideder.vue';
- import { Drawer } from 'ant-design-vue';
- import { useAppInject } from '/@/hooks/web/useAppInject';
- import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
- import { useDesign } from '/@/hooks/web/useDesign';
- export default defineComponent({
- name: 'SiderWrapper',
- components: { Sider, Drawer, MixSider, BottomSider },
- setup() {
- const { prefixCls } = useDesign('layout-sider-wrapper');
- const { getIsMobile } = useAppInject();
- const { setMenuSetting, getCollapsed, getMenuWidth, getIsMixSidebar, getIsBottomMenu, getIsBottomMenuH, getShowSidebar } = useMenuSetting();
- function handleClose() {
- setMenuSetting({
- collapsed: true,
- });
- }
- return { prefixCls, getIsMobile, getCollapsed, handleClose, getMenuWidth, getIsMixSidebar, getIsBottomMenu, getIsBottomMenuH, getShowSidebar, };
- },
- });
- </script>
- <style lang="less">
- @prefix-cls: ~'@{namespace}-layout-sider-wrapper';
- .@{prefix-cls} {
- .ant-drawer-body {
- height: 100vh;
- padding: 0;
- }
- .ant-drawer-header-no-title {
- display: none;
- }
- }
- </style>
|