12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <template>
- <a-layout-sider
- :class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
- width="256px"
- :collapsible="collapsible"
- v-model="collapsed"
- :trigger="null">
- <logo />
- <s-menu
- :collapsed="collapsed"
- :menu="menus"
- :theme="theme"
- :mode="mode"
- @select="onSelect"
- style="padding: 16px 0px;"></s-menu>
- </a-layout-sider>
- </template>
- <script>
- import Logo from '@/components/tools/Logo'
- import SMenu from './index'
- import { mixin, mixinDevice } from '@/utils/mixin'
- export default {
- name: 'SideMenu',
- components: { 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>
|