123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import { createStore } from 'vuex'
- import { reportVisitPage } from '@/api.js'
- const loginStatusEnum = {
- notLogin: 'not-login',
- visitor: 'visitor',
- wxUser: 'wxUser',
- }
- export default createStore({
- state: {
- haveShownStartUp: true, // 暂定不使用加载页
- loginStatus: loginStatusEnum.notLogin,
- token: '',
- userInfo: {
- userName: '',
- userId: null,
- },
- pageVisitRecord: {},
- },
- getters: {
- loginStatusEnum() {
- return loginStatusEnum
- }
- },
- mutations: {
- recordShowStartUp(state) {
- state.haveShownStartUp = true
- },
- setLoginStatus(state, value) {
- state.loginStatus = value
- },
- setUserName(state, value) {
- state.userInfo.userName = value
- },
- setToken(state, value) {
- state.token = value
- localStorage.setItem('token', value)
- },
- setUserInfo(state, value) {
- state.userInfo = value
- localStorage.setItem('userInfo', JSON.stringify(value))
- if (state.userInfo.score === null) {
- state.userInfo.score = 0
- }
- },
- logoutCallback(state) {
- state.loginStatus = loginStatusEnum.notLogin
- state.token = ''
- localStorage.removeItem('token')
- state.userInfo = {}
- localStorage.removeItem('userInfo')
- },
- getPageVisitRecordFromStorage(state) {
- let pageVisitRecordStr = localStorage.getItem('pageVisitRecord')
- if (pageVisitRecordStr) {
- state.pageVisitRecord = JSON.parse(pageVisitRecordStr)
- }
- },
- setPageVisitRecord(state, value) {
- state.pageVisitRecord = value
- }
- },
- actions: {
- recordPageVisitIfNeeded({ state, commit }, { pageId }) {
- let needUpdateStorage = false
- let userId = undefined
- if (state.loginStatus !== loginStatusEnum.wxLogin) {
- userId = 'visitor'
- } else {
- userId = state.userInfo.userId
- }
- if (!state.pageVisitRecord[userId]) {
- state.pageVisitRecord[userId] = {}
- needUpdateStorage = true
- }
- let lastVisitTime = undefined
- lastVisitTime = state.pageVisitRecord[userId][pageId]
- if (lastVisitTime === undefined) {
- state.pageVisitRecord[userId][pageId] = 0
- needUpdateStorage = true
- }
- let lastVisitTimeObj = new Date(lastVisitTime)
- let thisVisitTimeObj = new Date()
- if (!(lastVisitTimeObj.getFullYear() === thisVisitTimeObj.getFullYear() && lastVisitTimeObj.getMonth() === thisVisitTimeObj.getMonth() && lastVisitTimeObj.getDay() === thisVisitTimeObj.getDay())) {
- state.pageVisitRecord[userId][pageId] = thisVisitTimeObj.getTime()
- needUpdateStorage = true
- reportVisitPage(pageId)
- }
- if (needUpdateStorage) {
- localStorage.setItem('pageVisitRecord', JSON.stringify(state.pageVisitRecord))
- }
- }
- },
- modules: {
- }
- })
|