import Cookies from 'js-cookie'
|
import userApi from '@/api/user'
|
import examPaperApi from '@/api/examPaper'
|
// initial state
|
const state = {
|
userName: Cookies.get('studentUserName'),
|
userInfo: Cookies.get('studentUserInfo'),
|
imagePath: Cookies.get('studentImagePath'),
|
logo: null,
|
messageCount: 0,
|
memberToken: Cookies.get('memberTocken'),
|
// langType: localStorage.getItem('langType') || 'English',
|
langType: Cookies.get('langType') || 'English',
|
formDo: localStorage.getItem('formDo') && JSON.parse(localStorage.getItem('formDo')),
|
langFlag: true,
|
memberId: null
|
}
|
|
// actions
|
const actions = {
|
initUserInfo ({ commit }) {
|
userApi.getCurrentUser().then(re => {
|
commit('setUserInfo', re.response)
|
})
|
},
|
getUserMessageInfo ({ commit }) {
|
userApi.getMessageCount().then(re => {
|
commit('setMessageCount', re.response)
|
})
|
}
|
}
|
|
// mutations
|
const mutations = {
|
setLogo (state, logo) {
|
state.logo = logo
|
},
|
setUserName (state, userName) {
|
state.userName = userName
|
Cookies.set('studentUserName', userName, { expires: 30 })
|
},
|
setMemberTocken (state, paraMemberToken) {
|
state.memberToken = paraMemberToken
|
Cookies.set('memberTocken', paraMemberToken, { expires: 30 })
|
},
|
setMemberId (state, memberId) {
|
state.memberId = memberId
|
},
|
|
setFormDo (state, formDo) {
|
if (formDo) {
|
localStorage.setItem('formDo', JSON.stringify(formDo), { expires: 30 })
|
} else {
|
localStorage.setItem('formDo', formDo, { expires: 30 })
|
}
|
state.formDo = formDo
|
},
|
getFormDo (state) {
|
// 如果不包含guide则重新获取
|
if (!state.formDo || !Object.hasOwn(state.formDo, 'guide')) {
|
state.formDo = localStorage.getItem('formDo') && JSON.parse(localStorage.getItem('formDo'))
|
if (state.formDo && Object.hasOwn(state.formDo, 'guide')) {
|
return
|
}
|
if (!state.memberToken || !state.langType) {
|
return
|
}
|
examPaperApi.select(state.memberToken, state.langType).then(re => {
|
state.formDo = re.response
|
localStorage.setItem('formDo', JSON.stringify(state.formDo), { expires: 30 })
|
}).catch(e => {
|
console.error('获取formDo失败', e)
|
})
|
}
|
},
|
setLangType (state, paraLangType) {
|
state.langType = paraLangType
|
Cookies.set('langType', paraLangType, { expires: 30 })
|
if (paraLangType === 'Chinese') {
|
Cookies.set('language', 'zh', { expires: 30 })
|
} else {
|
Cookies.set('language', 'en', { expires: 30 })
|
}
|
},
|
getLangType () {
|
let language = (navigator.language || navigator.browserLanguage).toLowerCase()
|
if (language === 'zh-cn') {
|
state.langType = 'Chinese'
|
} else {
|
state.langType = 'English'
|
}
|
},
|
setLangFlag (state, paraLangFlag) {
|
state.langFlag = paraLangFlag
|
},
|
setUserInfo: (state, userInfo) => {
|
state.userInfo = userInfo
|
Cookies.set('studentUserInfo', userInfo, { expires: 30 })
|
},
|
setImagePath: (state, imagePath) => {
|
state.imagePath = imagePath
|
Cookies.set('studentImagePath', imagePath, { expires: 30 })
|
},
|
setMessageCount: (state, messageCount) => {
|
state.messageCount = messageCount
|
},
|
messageCountSubtract: (state, num) => {
|
state.messageCount = state.messageCount - num
|
},
|
clearLogin (state) {
|
Cookies.remove('studentUserName')
|
Cookies.remove('studentUserInfo')
|
Cookies.remove('studentImagePath')
|
}
|
}
|
|
export default {
|
namespaced: true,
|
state,
|
mutations,
|
actions
|
}
|