glhcp/pc/store/index.js

68 lines
1.7 KiB
JavaScript

import cookieparser from 'cookieparser'
import Cookies from 'js-cookie'
export const state = () => ({
token: '',
category: [],
publicData: {},
config: {}
})
export const mutations = {
setToken(state, token) {
state.token = token
},
logout() {
state.token = ''
Cookies.remove('token')
},
setCategory(state, data) {
state.category = data
},
setConfig(state, data) {
state.config = data
},
setPublic(state, data) {
state.publicData = data
},
}
export const getters = {
isLogin:(state) => !!state.token,
headTitle: (state) => state.config.name,
favicon: (state) => state.config.web_favicon
}
export const actions = {
async nuxtServerInit({dispatch, commit}, {req, app}) {
let cookie = req.headers.cookie;
if (cookie) {
const parsed = cookieparser.parse(cookie)
commit('setToken', parsed.token || "")
}
await dispatch('getCategory')
await dispatch('getConfig')
await dispatch('getPublicData')
},
// 获取分类
async getCategory({commit}) {
const { data, code } = await this.$get("pc/category");
if (code == 1) {
commit('setCategory', data)
}
},
// 获取配置
async getConfig({commit}) {
const { data, code } = await this.$get("index/config");
if (code == 1) {
console.log(data)
commit('setConfig', data)
}
},
async getPublicData({commit}) {
const { data, code } = await this.$get("pc/commonData");
if (code == 1) {
commit('setPublic', data)
}
},
}