123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import Vue from 'vue'
- import Vuex from 'vuex'
- // import {request} from '@/common/js/request'
- Vue.use(Vuex)
- const store = new Vuex.Store({
- state: {
- openExamine: false, // 是否开启审核状态。用于小程序、App 等审核时,关闭部分功能。TODO 芋艿:暂时没找到刷新的地方
- token: '', // 用户身份 Token
- userInfo: {}, // 用户基本信息
- timerIdent: false, // 全局 1s 定时器,只在全局开启一个,所有需要定时执行的任务监听该值即可,无需额外开启 TODO 芋艿:需要看看
- orderCount: {}, // 订单数量
- },
- getters: {
- hasLogin(state){
- return !!state.token;
- }
- },
- mutations: {
- //更新state数据
- setStateAttr(state, param){
- if(param instanceof Array){
- for(let item of param){
- state[item.key] = item.val;
- }
- }else{
- state[param.key] = param.val;
- }
- },
- //更新token
- setToken(state, data){
- const {token, tokenExpired} = data;
- state.token = token;
- uni.setStorageSync('uniIdToken', token);
- uni.setStorageSync('tokenExpired', tokenExpired);
- this.dispatch('getUserInfo'); //更新用户信息
- this.dispatch('getCartCount');//更新购物车数量
- uni.$emit('refreshCart');//刷新购物车
- this.dispatch('getOrderCount'); //更新订单数量
- },
- // 退出登录
- logout(state) {
- state.token = '';
- uni.removeStorageSync('uniIdToken');
- this.dispatch('getCartCount');//更新购物车数量
- uni.$emit('refreshCart');//刷新购物车
- this.dispatch('getOrderCount'); //更新订单数量
- setTimeout(()=>{
- state.userInfo = {};
- }, 1100)
- },
- },
- actions: {
- //更新用户信息
- async getUserInfo({state, commit}){
- const res = await request('user', 'get', {}, {
- checkAuthInvalid: false
- });
- if(res.status === 1){
- const userInfo = res.data;
- commit('setStateAttr', {
- key: 'userInfo',
- val: userInfo
- })
- }
- },
- //更新用户订单数量
- async getOrderCount({state, commit}){
- let data = {
- c0: 0,
- c1: 0,
- c2: 0,
- c3: 0
- }
- if(state.token){
- try {
- const res = await request('order', 'getOrderCount');
- data = res;
- }catch (err){
- console.error('更新用户订单数量 => ', err);
- }
- }
- commit('setStateAttr', {
- key: 'orderCount',
- val: data
- })
- }
- }
- })
- export default store
|