2025-07-27 21:42:34 +08:00

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
};