index.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <BottomSider v-if="!noSiderLink.includes(routePath)" />
  3. </template>
  4. <script lang="ts">
  5. import { computed, defineComponent } from 'vue';
  6. import Sider from './LayoutSider.vue';
  7. import MixSider from './MixSider.vue';
  8. import BottomSider from './bottomSideder.vue';
  9. import bottomSider3 from './bottomSideder3.vue';
  10. import { Drawer } from 'ant-design-vue';
  11. import { useAppInject } from '/@/hooks/web/useAppInject';
  12. import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
  13. import { useDesign } from '/@/hooks/web/useDesign';
  14. import { useRoute } from 'vue-router';
  15. import { noSiderLink, noChatLink } from '../layout.data';
  16. export default defineComponent({
  17. name: 'SiderWrapper',
  18. components: { Sider, Drawer, MixSider, BottomSider, bottomSider3 },
  19. setup() {
  20. const route = useRoute();
  21. const { prefixCls } = useDesign('layout-sider-wrapper');
  22. const { getIsMobile } = useAppInject();
  23. const { setMenuSetting, getCollapsed, getMenuWidth, getIsMixSidebar, getIsBottomMenu, getIsBottomMenuH, getShowSidebar } = useMenuSetting();
  24. function handleClose() {
  25. setMenuSetting({
  26. collapsed: true,
  27. });
  28. }
  29. return {
  30. prefixCls,
  31. getIsMobile,
  32. getCollapsed,
  33. handleClose,
  34. getMenuWidth,
  35. getIsMixSidebar,
  36. getIsBottomMenu,
  37. getIsBottomMenuH,
  38. getShowSidebar,
  39. routePath: computed(() => route.path),
  40. noSiderLink,
  41. noChatLink,
  42. };
  43. },
  44. });
  45. </script>
  46. <style lang="less">
  47. @prefix-cls: ~'@{namespace}-layout-sider-wrapper';
  48. @ventSpace: zxm;
  49. .@{prefix-cls} {
  50. .@{ventSpace}-drawer-body {
  51. height: 100vh;
  52. padding: 0;
  53. }
  54. .@{ventSpace}-drawer-header-no-title {
  55. display: none;
  56. }
  57. }
  58. </style>