60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
import { isServer } from '~/environment'
|
||
|
||
export const state = () => {
|
||
return {
|
||
activeMenu: 'index',
|
||
oauth: null,
|
||
userInfo: null,
|
||
locale: 'zh_CN',
|
||
uploadHeaders: '',
|
||
fingerprint: ''
|
||
}
|
||
}
|
||
|
||
export const mutations = {
|
||
setActiveMenu (state, activeMenu) {
|
||
state.activeMenu = activeMenu
|
||
},
|
||
setUploadHeaders(state, data){
|
||
state.uploadHeaders = data
|
||
},
|
||
setFingerprint (state, fingerprint) {
|
||
state.fingerprint = fingerprint
|
||
}
|
||
}
|
||
|
||
export const actions = {
|
||
nuxtServerInit(store, {req}) {
|
||
// 初始化时的全局任务
|
||
const userAgent = isServer ? req.headers['user-agent'] : navigator.userAgent
|
||
const browser = {
|
||
versions: function() {
|
||
return { //移动终端浏览器版本信息
|
||
trident: userAgent.indexOf('Trident') > -1, //IE内核
|
||
presto: userAgent.indexOf('Presto') > -1, //opera内核
|
||
webKit: userAgent.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
|
||
gecko: userAgent.indexOf('Gecko') > -1 && userAgent.indexOf('KHTML') == -1, //火狐内核
|
||
mobile: !!userAgent.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
|
||
ios: !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
|
||
android: userAgent.indexOf('Android') > -1 || userAgent.indexOf('Linux') > -1, //android终端或uc浏览器
|
||
iPhone: userAgent.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
|
||
iPad: userAgent.indexOf('iPad') > -1, //是否iPad
|
||
webApp: userAgent.indexOf('Safari') == -1 //是否web应用程序,没有头部与底部
|
||
};
|
||
} ()
|
||
}
|
||
if (browser.versions.mobile) {
|
||
// 移动端
|
||
store.commit('global/updateMobileState', true)
|
||
}
|
||
|
||
const initFetchAppData = [
|
||
// 内容数据
|
||
store.dispatch('topic/fetchNavList'),
|
||
store.dispatch('article/fetchList')
|
||
]
|
||
|
||
return Promise.all(initFetchAppData)
|
||
}
|
||
}
|