[测评系统]--前端(用户答题页面)
yj
2024-07-19 5e4bed2d67b26eeb7eab4d176bfabe3f527836e4
src/store/modules/user.js
@@ -1,13 +1,17 @@
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: 'English',
  // langType: localStorage.getItem('langType') || 'English',
  langType: Cookies.get('langType') || 'English',
  formDo: localStorage.getItem('formDo') && JSON.parse(localStorage.getItem('formDo')),
  langFlag: true,
  memberId: null
}
@@ -28,6 +32,9 @@
// mutations
const mutations = {
  setLogo (state, logo) {
    state.logo = logo
  },
  setUserName (state, userName) {
    state.userName = userName
    Cookies.set('studentUserName', userName, { expires: 30 })
@@ -39,17 +46,48 @@
  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'
      console.log(language)
    } else {
      state.langType = 'English'
      console.log(language)
    }
  },
  setLangFlag (state, paraLangFlag) {