187 lines
5.0 KiB
JavaScript
187 lines
5.0 KiB
JavaScript
|
import Vue from 'vue';
|
|||
|
import Vuex from 'vuex';
|
|||
|
import $mConstDataConfig from '@/config/constData.config';
|
|||
|
|
|||
|
|
|||
|
Vue.use(Vuex);
|
|||
|
const ACCESSTOKEN = uni.getStorageSync('accessToken') || '';
|
|||
|
const REFERRER = uni.getStorageSync('referrer') || '';
|
|||
|
const USER = uni.getStorageSync('user') || {};
|
|||
|
const REFRESHTOKEN = uni.getStorageSync('refreshToken') || '';
|
|||
|
const GLOBALCONFIG = uni.getStorageSync('globalConfig') || {};
|
|||
|
const CARTNUM = uni.getStorageSync('cartNum') || 0;
|
|||
|
const NOTIFYNUM = uni.getStorageSync('notifyNum') || 0;
|
|||
|
const IMHISTORY = uni.getStorageSync('imHistory') || [];
|
|||
|
const IMNOREAD = uni.getStorageSync('imNoRead') || 0;
|
|||
|
const THEMECOLOR = uni.getStorageSync('themeColor') || {title: '官方', name: 'rf', color: '#fa436a'};
|
|||
|
const store = new Vuex.Store({
|
|||
|
state: {
|
|||
|
// 用户token
|
|||
|
accessToken: ACCESSTOKEN,
|
|||
|
// 用户信息
|
|||
|
userInfo: USER.member,
|
|||
|
// 推荐人
|
|||
|
referrer: REFERRER,
|
|||
|
// 小程序openid
|
|||
|
openId: '',
|
|||
|
// 网络状态,用于下载提醒
|
|||
|
networkState: 'unknown',
|
|||
|
globalConfig: GLOBALCONFIG,
|
|||
|
refreshToken: REFRESHTOKEN,
|
|||
|
// 购物车数字角标
|
|||
|
cartNum: CARTNUM,
|
|||
|
// 消息中心数字角标
|
|||
|
notifyNum: NOTIFYNUM,
|
|||
|
// 历史聊天消息,仅保存最后100条
|
|||
|
imHistory: IMHISTORY,
|
|||
|
// 当前未读聊天消息数量
|
|||
|
imNoRead: IMNOREAD,
|
|||
|
// 当前是否处于聊天面板
|
|||
|
isImPanel: false,
|
|||
|
// 当前是否人工客服服务
|
|||
|
isStuffService: false,
|
|||
|
themeColor: THEMECOLOR
|
|||
|
},
|
|||
|
getters: {
|
|||
|
// 全局配置
|
|||
|
themeColor: state => {
|
|||
|
return state.themeColor;
|
|||
|
},
|
|||
|
// 全局配置
|
|||
|
globalConfig: state => {
|
|||
|
return state.globalConfig;
|
|||
|
},
|
|||
|
// 获取网络状态
|
|||
|
networkStatus: state => {
|
|||
|
return state.networkState;
|
|||
|
},
|
|||
|
// 判断用户是否登录
|
|||
|
hasLogin: state => {
|
|||
|
return !!state.accessToken;
|
|||
|
}
|
|||
|
},
|
|||
|
mutations: {
|
|||
|
login(state, provider) {
|
|||
|
|
|||
|
state.accessToken = provider.access_token;
|
|||
|
state.refreshToken = provider.refresh_token;
|
|||
|
state.userInfo = provider.member;
|
|||
|
state.user = provider;
|
|||
|
uni.setStorageSync('user', provider);
|
|||
|
uni.setStorageSync('sessionKey', provider.sessionKey);
|
|||
|
uni.setStorageSync('accessToken', provider.access_token);
|
|||
|
uni.setStorageSync('refreshToken', provider.refresh_token);
|
|||
|
uni.setStorageSync('userInfo', provider.member);
|
|||
|
},
|
|||
|
logout1(state) {
|
|||
|
console.log('logout触发了退出')
|
|||
|
},
|
|||
|
logout(state) {
|
|||
|
|
|||
|
state.accessToken = '';
|
|||
|
state.refreshToken = '';
|
|||
|
state.userInfo = {};
|
|||
|
uni.removeStorageSync('accessToken');
|
|||
|
uni.removeTabBarBadge({index: $mConstDataConfig.notifyIndex});
|
|||
|
uni.removeTabBarBadge({index: $mConstDataConfig.cartIndex});
|
|||
|
uni.removeStorageSync('refreshToken');
|
|||
|
uni.removeStorageSync('userInfo');
|
|||
|
console.log('logout触发了退出')
|
|||
|
},
|
|||
|
setReferrer(state, referrer) {
|
|||
|
state.referrer = referrer;
|
|||
|
uni.setStorageSync('referrer', referrer);
|
|||
|
},
|
|||
|
setOpenId(state, openId) {
|
|||
|
state.openId = openId;
|
|||
|
uni.setStorageSync('openId', openId);
|
|||
|
},
|
|||
|
setNetworkState(state, provider) {
|
|||
|
state.networkState = provider;
|
|||
|
},
|
|||
|
setCartNum(state, provider) {
|
|||
|
state.cartNum = provider;
|
|||
|
uni.setStorageSync('cartNum', provider);
|
|||
|
if (!provider || parseInt(provider, 10) === 0) {
|
|||
|
uni.removeTabBarBadge({
|
|||
|
index: $mConstDataConfig.cartIndex
|
|||
|
});
|
|||
|
} else {
|
|||
|
uni.setTabBarBadge({
|
|||
|
index: $mConstDataConfig.cartIndex,
|
|||
|
text: provider.toString()
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
setNotifyNum(state, provider) {
|
|||
|
state.notifyNum = provider;
|
|||
|
uni.setStorageSync('notifyNum', provider);
|
|||
|
if (parseInt(provider, 10) === 0) {
|
|||
|
uni.removeTabBarBadge({
|
|||
|
index: $mConstDataConfig.notifyIndex
|
|||
|
});
|
|||
|
} else {
|
|||
|
uni.setTabBarBadge({
|
|||
|
index: $mConstDataConfig.notifyIndex,
|
|||
|
text: provider.toString()
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
setGlobalConfig(state, provider) {
|
|||
|
state.globalConfig = provider;
|
|||
|
uni.setStorageSync('globalConfig', provider);
|
|||
|
},
|
|||
|
addImHistory(state, provider) {
|
|||
|
if (provider) {
|
|||
|
let data = state.imHistory;
|
|||
|
data.push(provider);
|
|||
|
uni.setStorageSync('imHistory', data);
|
|||
|
state.imHistory = data;
|
|||
|
if (!state.isImPanel) {
|
|||
|
this.commit('addImNoRead', 1);
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
clearImHistory(state) {
|
|||
|
state.imHistory = [];
|
|||
|
uni.setStorageSync('imHistory', []);
|
|||
|
state.imNoRead = 0;
|
|||
|
uni.setStorageSync('imNoRead', 0);
|
|||
|
},
|
|||
|
addImNoRead(state, provider) {
|
|||
|
state.imNoRead = state.imNoRead + provider;
|
|||
|
// if (state.imNoRead > $mAppConfig.imHisotryNum) {
|
|||
|
// state.imNoRead = $mAppConfig.imHisotryNum;
|
|||
|
// }
|
|||
|
uni.setStorageSync('imNoRead', state.imNoRead);
|
|||
|
},
|
|||
|
setIsImPanel(state, provider) {
|
|||
|
state.isImPanel = provider;
|
|||
|
if (provider) {
|
|||
|
state.imNoRead = 0;
|
|||
|
uni.setStorageSync('imNoRead', 0);
|
|||
|
}
|
|||
|
},
|
|||
|
setIsStuffService(state, provider) {
|
|||
|
state.isStuffService = provider;
|
|||
|
},
|
|||
|
setThemeColor(state, val) {
|
|||
|
state.themeColor = val;
|
|||
|
uni.setStorageSync('themeColor', val);
|
|||
|
}
|
|||
|
},
|
|||
|
actions: {
|
|||
|
globalConfigChange({commit}, info) {
|
|||
|
commit('setGlobalConfig', info);
|
|||
|
},
|
|||
|
networkStateChange({commit}, info) {
|
|||
|
commit('setNetworkState', info);
|
|||
|
},
|
|||
|
logout({commit}) {
|
|||
|
commit('logout');
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
export default store;
|