123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import { wechatAuthLogin, mobileLogin, getAccessToken } from '@/services/api/auth.js'
- import { fetchMessageCount } from '@/services/api/notice.js'
- import { wxLogin } from '@/common/auth.js'
- import { setStorage, getStorage } from '@/common/storage.js'
- import { objAssign } from '@/common/utils.js'
- function initUserState() {
- const state = {
- // 用户信息
- headImgUrl: '',
- mobile: '',
- nickName: '',
- openId: '',
- userId: 0,
- userIdentity: -1, // 用户类型
- inviteUserId: '', // 分享者用户ID
- accessToken: '', // token
- hasLogin: false, // 用户是否登录
- notice_count: 0, // 消息通知数量
- }
- const userInfo = getStorage('USER_INFO')
- if (userInfo) {
- Object.assign(state, userInfo)
- }
- const accessToken = getStorage('ACCESS_TOKEN')
- if (accessToken) {
- state.accessToken = accessToken
- }
- return state
- }
- const state = initUserState()
- console.log(state)
- const mutations = {
- SET_USER_INFO: (state, userInfo) => {
- state.hasLogin = true
- objAssign(state, userInfo)
- },
- SET_INVITE_USER_ID: (state, id) => {
- state.inviteUserId = id
- },
- SET_ACCESS_TOKEN: (state, token) => {
- state.accessToken = token
- },
- SET_LOGINOUT: (state, logout) => {
- state.hasLogin = logout
- },
- SET_NOTICE_COUNT: (state, count) => {
- state.notice_count = count
- },
- SET_TABBAR_BADGE: (state, count) => {
- if (count >= 100) {
- return uni.setTabBarBadge({ index: 2, text: '99+' })
- }
- if (count > 0) {
- return uni.setTabBarBadge({ index: 2, text: count.toString() })
- }
- uni.removeTabBarBadge({ index: 2 })
- }
- }
- const actions = {
- // 微信自动登录
- async wxAutoLogin({ commit, state, dispatch }) {
- try {
- const code = await wxLogin() // 获取微信code
- const res = await wechatAuthLogin({ code }) // 微信自动登录
- const data = JSON.parse(res.data)
- commit('SET_USER_INFO', data)
- setStorage('USER_INFO', data)
- dispatch('getAccessToken') // 获取token
- commit('SET_LOGINOUT', true)
- } catch (e) {
- commit('SET_LOGINOUT', false)
- console.log(e)
-
- }
- },
- // 手机号注册登录
- async register({ commit }, resigterData) {
- try {
- const res = await mobileLogin(resigterData)
- const data = JSON.parse(res.data)
- commit('SET_USER_INFO', data)
- setStorage('USER_INFO', data)
- commit('SET_LOGINOUT', true)
- } catch (e) {
- commit('SET_LOGINOUT', false)
- console.log(e)
- }
- },
- // 获取accessToken
- async getAccessToken({ commit }) {
- try {
- const res = await getAccessToken()
- commit('SET_ACCESS_TOKEN', res.data)
- setStorage('ACCESS_TOKEN', res.data)
- commit('SET_LOGINOUT', true)
- } catch (e) {
- commit('SET_LOGINOUT', false)
- console.log(e)
- }
- },
- // 短信消息统计
- async updateNoticeNum({ commit }) { // 更新通知消息数量
- try{
- const commonId = getStorage('USER_INFO').userId || 0
- const { data } = await fetchMessageCount({ commonId })
- commit('SET_NOTICE_COUNT', data.count)
- commit('SET_TABBAR_BADGE', data.count)
- }catch(error){
- console.log(error)
- }
- },
- }
- export default {
- namespaced: true,
- state,
- mutations,
- actions
- }
|