62 lines
1.3 KiB
Java
62 lines
1.3 KiB
Java
![]() |
<template>
|
||
|
<a-layout-sider
|
||
|
:class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
|
||
|
width="248px"
|
||
|
:collapsible="collapsible"
|
||
|
v-model="collapsed"
|
||
|
:trigger="null">
|
||
|
<logo />
|
||
|
<s-menu
|
||
|
:collapsed="collapsed"
|
||
|
:menu="menus"
|
||
|
:theme="theme"
|
||
|
@select="onSelect"
|
||
|
:mode="mode"
|
||
|
style="padding: 16px 0px;"></s-menu>
|
||
|
</a-layout-sider>
|
||
|
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import ALayoutSider from "ant-design-vue/es/layout/Sider"
|
||
|
import Logo from '../tools/Logo'
|
||
|
import SMenu from './index'
|
||
|
import { mixin, mixinDevice } from '@/utils/mixin.js'
|
||
|
|
||
|
export default {
|
||
|
name: "SideMenu",
|
||
|
components: { ALayoutSider, Logo, SMenu },
|
||
|
mixins: [mixin, mixinDevice],
|
||
|
props: {
|
||
|
mode: {
|
||
|
type: String,
|
||
|
required: false,
|
||
|
default: 'inline'
|
||
|
},
|
||
|
theme: {
|
||
|
type: String,
|
||
|
required: false,
|
||
|
default: 'dark'
|
||
|
},
|
||
|
collapsible: {
|
||
|
type: Boolean,
|
||
|
required: false,
|
||
|
default: false
|
||
|
},
|
||
|
collapsed: {
|
||
|
type: Boolean,
|
||
|
required: false,
|
||
|
default: false
|
||
|
},
|
||
|
menus: {
|
||
|
type: Array,
|
||
|
required: true
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
onSelect (obj) {
|
||
|
this.$emit('menuSelect', obj)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|