92 lines
2.6 KiB
92 lines
2.6 KiB
<template> |
|
<div id="app"> |
|
<router-view></router-view> |
|
</div> |
|
</template> |
|
|
|
<script> |
|
import Setting from '@/setting' |
|
import util from '@/libs/util' |
|
export default { |
|
name: 'App', |
|
created () { |
|
//在页面加载时读取localStorage里的状态信息 |
|
if (util.local.get(Setting.storeKey)) { |
|
this.$store.replaceState(Object.assign({}, this.$store.state, util.local.get(Setting.storeKey))); |
|
} |
|
|
|
//在页面刷新时将vuex里的信息保存到localStorage里 |
|
window.addEventListener('beforeunload', () => { |
|
util.local.set(Setting.storeKey, this.$store.state); |
|
}); |
|
// 判断当前处于什么终端 true为PC端,false为手机端 |
|
function IsPCModel () { |
|
var userAgentInfo = navigator.userAgent; |
|
var Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']; |
|
var flagPc = true; |
|
for (var v = 0; v < Agents.length; v++) { |
|
if (userAgentInfo.indexOf(Agents[v]) > 0) { |
|
flagPc = false; |
|
break; |
|
} |
|
} |
|
return flagPc; |
|
} |
|
var flagZt = IsPCModel() |
|
this.$store.commit('updateModelType', flagZt) |
|
window.onresize = this.throttle(() => { |
|
const w = document.body.clientWidth |
|
if (w <= 680) { |
|
// w <= 480 && this.$store.commit('set', true) |
|
this.$store.commit('updateModelType', false) |
|
} else if (w > 1700) { |
|
this.setNav(10) |
|
} else if (w > 1600) { |
|
this.setNav(9) |
|
} else if (w > 1400) { |
|
this.setNav(8) |
|
} else if (w > 1200) { |
|
this.setNav(6) |
|
} else if (w > 980) { |
|
this.setNav(4) |
|
} else { |
|
this.$store.commit('updateModelType', true) |
|
} |
|
}, 500) |
|
}, |
|
mounted () { |
|
window.onbeforeunload = function () { |
|
sessionStorage.removeItem('navPageSize') |
|
} |
|
const w = document.body.clientWidth |
|
if (w > 1700) { |
|
sessionStorage.setItem('navPageSize', 10) |
|
} else if (w > 1600) { |
|
sessionStorage.setItem('navPageSize', 9) |
|
} else if (w > 1400) { |
|
sessionStorage.setItem('navPageSize', 8) |
|
} else if (w > 1200) { |
|
sessionStorage.setItem('navPageSize', 6) |
|
} |
|
}, |
|
methods: { |
|
throttle (func, delay) { |
|
var prev = Date.now() |
|
return function () { |
|
var context = this; |
|
var args = arguments; |
|
var now = Date.now(); |
|
if (now - prev >= delay) { |
|
func.apply(context, args); |
|
prev = Date.now(); |
|
} |
|
} |
|
}, |
|
setNav(num) { |
|
this.$store.commit('updateModelType', true) |
|
this.$store.dispatch('updateNavSumA', num) |
|
sessionStorage.setItem('navPageSize', num) |
|
}, |
|
}, |
|
}; |
|
</script>
|
|
|