Commit 268afeef by Sendya

Fixed sider auto close

parent c7a3d904
...@@ -17,11 +17,21 @@ ...@@ -17,11 +17,21 @@
}, },
created () { created () {
let that = this let that = this
enquireScreen(isMobile => { enquireScreen(deviceType => {
if (isMobile) { console.log('deviceType', deviceType)
that.$store.commit('app/TOGGLE_DEVICE', true) // tablet
} else { if (deviceType === 0) {
that.$store.commit('app/TOGGLE_SIDEBAR', true) that.$store.commit('TOGGLE_DEVICE', 'tablet')
that.$store.commit('CLOSE_SIDEBAR', false)
}
// mobile
else if (deviceType === 1) {
that.$store.commit('TOGGLE_DEVICE', 'mobile')
that.$store.commit('CLOSE_SIDEBAR', false)
}
else {
that.$store.commit('TOGGLE_DEVICE', 'desktop')
that.$store.commit('TOGGLE_SIDEBAR', true)
} }
}) })
......
<template> <template>
<a-layout class="layout"> <a-layout class="layout">
<sider-menu :menus="menus" theme="light" :collapsed="collapsed" :collapsible="true"></sider-menu> <sider-menu :menus="menus" theme="light" :collapsed="!siderOpen || collapsed" :collapsible="true"></sider-menu>
<a-layout> <a-layout>
<!-- layout header --> <!-- layout header -->
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
import LayoutHeader from './LayoutHeader' import LayoutHeader from './LayoutHeader'
import LayoutFooter from './LayoutFooter' import LayoutFooter from './LayoutFooter'
import {asyncRouterMap} from '@/router/index' import {asyncRouterMap} from '@/router/index'
import { mapState } from 'vuex'
export default { export default {
name: "LayoutView", name: "LayoutView",
...@@ -41,11 +42,15 @@ ...@@ -41,11 +42,15 @@
created() { created() {
this.menus = asyncRouterMap this.menus = asyncRouterMap
}, },
computed: {
...mapState({
siderOpen: state => state.app.sidebar.opened
})
},
methods: { methods: {
toggle() { toggle() {
this.collapsed = !this.collapsed; this.collapsed = !this.collapsed;
}, },
} }
} }
</script> </script>
......
import enquireJs from 'enquire.js' import enquireJs from 'enquire.js'
const enquireScreen = function (call) { const enquireScreen = function (call) {
const hanlder = { // tablet
const handler = {
match: function () { match: function () {
call && call(true) call && call(0)
}, },
unmatch: function () { unmatch: function () {
call && call(false) call && call(-1)
} }
} }
enquireJs.register('only screen and (max-width: 767.99px)', hanlder) // mobile
const handler2 = {
match: () => {
call && call(1)
}
}
enquireJs.register('screen and (max-width: 980.99px)', handler)
enquireJs.register('screen and (max-width: 767.99px)', handler2)
} }
export default enquireScreen export default enquireScreen
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment