vben
authored
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<template>
<Drawer
v-if="getIsMobile"
placement="left"
:class="prefixCls"
:width="getMenuWidth"
:getContainer="null"
:visible="!getCollapsed"
@close="handleClose"
>
<Sider />
</Drawer>
|
vben
authored
|
13
|
<MixSider v-else-if="getIsMixSidebar" />
|
vben
authored
|
14
15
16
17
18
|
<Sider v-else />
</template>
<script lang="ts">
import { defineComponent } from 'vue';
|
vben
authored
|
19
|
import Sider from './LayoutSider.vue';
|
vben
authored
|
20
|
import MixSider from './MixSider.vue';
|
vben
authored
|
21
22
|
import { Drawer } from 'ant-design-vue';
|
vben
authored
|
23
24
25
26
27
|
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useDesign } from '/@/hooks/web/useDesign';
export default defineComponent({
name: 'SiderWrapper',
|
vben
authored
|
28
|
components: { Sider, Drawer, MixSider },
|
vben
authored
|
29
30
31
|
setup() {
const { prefixCls } = useDesign('layout-sider-wrapper');
const { getIsMobile } = useAppInject();
|
vben
authored
|
32
|
const { setMenuSetting, getCollapsed, getMenuWidth, getIsMixSidebar } = useMenuSetting();
|
vben
authored
|
33
34
35
36
37
38
39
|
function handleClose() {
setMenuSetting({
collapsed: true,
});
}
|
vben
authored
|
40
|
return { prefixCls, getIsMobile, getCollapsed, handleClose, getMenuWidth, getIsMixSidebar };
|
vben
authored
|
41
42
43
44
45
|
},
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-layout-sider-wrapper';
|
Vben
authored
|
46
|
|
vben
authored
|
47
48
49
50
51
52
53
54
55
56
57
|
.@{prefix-cls} {
.ant-drawer-body {
height: 100vh;
padding: 0;
}
.ant-drawer-header-no-title {
display: none;
}
}
</style>
|