import Vue from 'vue' import Vuex from 'vuex' import request from '@/util/index' import CreatePersistedState from "vuex-persistedstate" Vue.use(Vuex) const state = { visitChannels: '', shouldAuth: false, //是否需要授权 userData: {}, // 用户基础信息 isConnect: true ,// 网络是否链接 isLoading: false, // 是否在请求数据 isChangeMsgCount: false ,// 是否更新待办事项 }; const getters = { getUser(state) { return state.userData }, getMenu(state) { return state.userData.AuthorityInfo }, getConnect(state){ return state.isConnect }, getLoading (state) { return state.isLoading }, isChangeMsgCount (state) { return state.isChangeMsgCount }, shouldAuth() { return state.shouldAuth } }; const mutations = { setUser (state, data) { state.userData = data }, setVisitChannels (state, data) { state.visitChannels = data }, isGetTodoList (state, data) { state.isChangeMsgCount = data }, isConnect(state,value) { state.isConnect = value }, setShouldAuth(state,value){ state.shouldAuth = value } }; const actions = { loginUser({dispatch, commit},code) { }, getLoginCode({ dispatch, state}, ){ uni.login({ // 登录 success (res) { dispatch('memberLogin',res.code) // 获取用户数据 } }) }, memberLogin({ dispatch, state,commit},_code) { let _user = state.userData request.$get('WeChat_Login',{ WeChat_Code: _code || '', }).then(data=>{ if (data.Result_Code === 100) { let user = data.Result_Data if (user.Membership_Id) { dispatch('updateUser',data.Result_Data) // _this.addUserBehavior(1002) // 记录用户行为 }else{ commit('setUser', user) } } else if (data.Result_Code === 200) { // session过期 dispatch('getLoginCode') } else { console.log(data) } }) }, updateUser ({ commit, state},user){ let _user = user || state.userData request.$get('WeChat_GetBusinessMemberInfo',{Membership_Id:_user.Membership_Id,}).then(res=>{ if(res.Result_Code==100) { let data = res.Result_Data data.WeChat_MiniProToken = _user.WeChat_MiniProToken data.WeChat_UserId = _user.WeChat_UserId data.WeChat_UserName = _user.WeChat_UserName commit('setUser', data) } }) } } export default new Vuex.Store({ state, mutations, getters, actions, plugins: [ CreatePersistedState({ storage: { getItem: key => uni.getStorageSync(key), setItem: (key,value) => uni.setStorageSync(key,value), removeItem: key => uni.removeStorageSync(key) } }) ] });