103 lines
1.7 KiB
JavaScript
103 lines
1.7 KiB
JavaScript
import {
|
|
getUser
|
|
} from '@/api/user'
|
|
import {
|
|
getCartNum
|
|
} from '@/api/store';
|
|
import {
|
|
USER_INFO,
|
|
TOKEN,
|
|
CONFIG
|
|
} from '@/config/cachekey';
|
|
import Cache from '@/utils/cache'
|
|
const state = {
|
|
config: Cache.get(CONFIG) || {
|
|
app_agreement: 0,
|
|
center_setting: {},
|
|
index_setting: {},
|
|
navigation_menu: [],
|
|
navigation_setting: {}
|
|
},
|
|
userInfo: {
|
|
user_money: 0,
|
|
user_integral: 0,
|
|
coupon: 0
|
|
},
|
|
token: Cache.get(TOKEN) || null,
|
|
cartNum: "",
|
|
};
|
|
|
|
const mutations = {
|
|
LOGIN(state, opt) {
|
|
state.token = opt.token;
|
|
Cache.set(TOKEN, opt.token, 59 * 24 * 60 * 60);
|
|
this.dispatch('getUser')
|
|
},
|
|
LOGOUT(state) {
|
|
state.token = undefined;
|
|
state.userInfo = {
|
|
user_money: 0,
|
|
user_integral: 0,
|
|
coupon: 0
|
|
}
|
|
Cache.remove(TOKEN);
|
|
},
|
|
SETCARTNUM(state, num) {
|
|
state.cartNum = num
|
|
},
|
|
SETUSERINFO(state, user) {
|
|
state.userInfo = user
|
|
},
|
|
SETCONFIG(state, data) {
|
|
state.config = Object.assign(state.config, data)
|
|
Cache.set(CONFIG, state.config);
|
|
}
|
|
};
|
|
|
|
const actions = {
|
|
getCartNum({
|
|
state,
|
|
commit
|
|
}) {
|
|
return new Promise(resolve => {
|
|
if (!state.token) return uni.removeTabBarBadge({
|
|
index: 2
|
|
})
|
|
getCartNum().then(res => {
|
|
if (res.code == 1) {
|
|
commit('SETCARTNUM', res.data.num)
|
|
if (!res.data.num) return uni.removeTabBarBadge({
|
|
index: 2
|
|
})
|
|
uni.setTabBarBadge({
|
|
index: 2,
|
|
text: String(res.data.num)
|
|
})
|
|
resolve()
|
|
}
|
|
})
|
|
})
|
|
},
|
|
|
|
getUser({
|
|
state,
|
|
commit
|
|
}) {
|
|
return new Promise(resolve => {
|
|
|
|
getUser().then(res => {
|
|
if (res.code == 1) {
|
|
commit('SETUSERINFO', res.data)
|
|
}
|
|
resolve()
|
|
})
|
|
})
|
|
},
|
|
};
|
|
|
|
export default {
|
|
state,
|
|
mutations,
|
|
actions
|
|
};
|