Files
basic/src/store/modules/settings.js
T

65 lines
1.7 KiB
JavaScript

/**
* 存放全局公用状态
*/
import settings from '@/settings'
const state = () => ({
...settings,
// 侧边栏是否收起(用于记录 pc 模式下最后的状态)
sidebarCollapseLastStatus: settings.sidebarCollapse,
// 主页面是否最大化
mainPageMaximizeStatus: false,
// 显示模式,支持:mobile、pc
mode: 'pc',
// 页面标题
title: ''
})
const getters = {}
const actions = {}
const mutations = {
// 设置访问模式
setMode(state, width) {
if (state.enableMobileAdaptation) {
// 先判断 UA 是否为移动端设备(手机&平板)
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
state.mode = 'mobile'
} else {
// 如果为桌面设备,再根据页面宽度判断是否需要切换为移动端展示
if (width < 992) {
state.mode = 'mobile'
} else {
state.mode = 'pc'
}
}
} else {
state.mode = 'pc'
}
},
// 设置网页标题
setTitle(state, title) {
state.title = title
},
// 切换侧边栏导航展开/收起
toggleSidebarCollapse(state) {
state.sidebarCollapse = !state.sidebarCollapse
if (state.mode == 'pc') {
state.sidebarCollapseLastStatus = !state.sidebarCollapseLastStatus
}
},
// 更新主题配置
updateThemeSetting(state, data) {
Object.assign(state, data)
}
}
export default {
namespaced: true,
state,
actions,
getters,
mutations
}