forked from zhongyuanhaiju/uniapp
176 lines
3.8 KiB
JavaScript
176 lines
3.8 KiB
JavaScript
import Vue from 'vue'
|
||
import Vuex from 'vuex'
|
||
Vue.use(Vuex)
|
||
|
||
import Http from '../common/js/http.js'
|
||
import colorList from '../common/js/style_color.js'
|
||
|
||
const store = new Vuex.Store({
|
||
state: {
|
||
tabBarList: '',
|
||
siteState: 1,
|
||
themeStyle: '',
|
||
addonIsExist: {
|
||
bundling: 0,
|
||
coupon: 0,
|
||
discount: 0,
|
||
fenxiao: 0,
|
||
gift: 0,
|
||
groupbuy: 0,
|
||
manjian: 0,
|
||
memberconsume: 0,
|
||
memberrecharge: 0,
|
||
memberregister: 0,
|
||
membersignin: 0,
|
||
memberwithdraw: 0,
|
||
memberrecommend: 0,
|
||
pintuan: 0,
|
||
pointexchange: 0,
|
||
seckill: 0,
|
||
store: 0,
|
||
topic: 0,
|
||
bargain: 0,
|
||
membercancel: 0,
|
||
servicer: 0,
|
||
supermember: 0,
|
||
giftcard: 0,
|
||
divideticket: 0,
|
||
scenefestival: 0,
|
||
birthdaygift: 0,
|
||
pinfan: 0
|
||
},
|
||
sourceMember: 0, // 来源会员
|
||
authInfo: {}, // 授权信息
|
||
token: null,
|
||
flRefresh: 0,
|
||
location: null, // 定位信息
|
||
defaultImg: {
|
||
goods: '',
|
||
head: '',
|
||
store: '',
|
||
article: ''
|
||
},
|
||
cartNumber: 0,
|
||
cartList: {},
|
||
cartMoney: 0,
|
||
siteInfo: null,
|
||
cartChange: 0,
|
||
bottomNavHidden: false // 底部导航是否隐藏,true:隐藏,false:显示
|
||
},
|
||
mutations: {
|
||
setSiteState(state, siteStateVal) {
|
||
state.siteState = siteStateVal;
|
||
},
|
||
setCartNumber(state, cartNumber) {
|
||
state.cartNumber = cartNumber
|
||
},
|
||
setThemeStyle(state, value) {
|
||
state.themeStyle = value
|
||
uni.setStorageSync('theme_style', value);
|
||
},
|
||
setTabBarList(state, value) {
|
||
state.tabBarList = value;
|
||
uni.setStorageSync('bottomNav', value);
|
||
},
|
||
setAddonIsExist(state, value) {
|
||
state.addonIsExist = value;
|
||
uni.setStorageSync('addon_is_exist', value);
|
||
},
|
||
setToken(state, value) {
|
||
state.token = value;
|
||
},
|
||
setAuthinfo(state, value) {
|
||
state.authInfo = value;
|
||
},
|
||
setSourceMember(state, value) {
|
||
state.sourceMember = value;
|
||
},
|
||
setflRefresh(state, flRefreshVal) {
|
||
state.flRefresh = flRefreshVal;
|
||
},
|
||
setLocation(state, value) {
|
||
state.location = value;
|
||
},
|
||
setDefaultImg(state, value) {
|
||
uni.setStorageSync('default_img', value)
|
||
state.defaultImg = value;
|
||
},
|
||
setCartList(state, value) {
|
||
state.cartList = value;
|
||
},
|
||
setCartMoney(state, value) {
|
||
state.cartMoney = value;
|
||
},
|
||
setSiteInfo(state, value) {
|
||
state.siteInfo = value;
|
||
uni.setStorageSync('siteInfo', value)
|
||
},
|
||
setCartChange(state) {
|
||
state.cartChange += 1;
|
||
},
|
||
setBottomNavHidden(state, value) {
|
||
state.bottomNavHidden = value;
|
||
uni.setStorageSync('bottomNavHidden', value)
|
||
},
|
||
},
|
||
actions: {
|
||
init() {
|
||
return new Promise((resolve, reject) => {
|
||
Http.sendRequest({
|
||
url: '/api/config/init',
|
||
success: res => {
|
||
var data = res.data;
|
||
if (data) {
|
||
|
||
this.commit('setCartNumber', data.cart_count);
|
||
|
||
this.commit('setThemeStyle', colorList[data.style_theme.name]);
|
||
|
||
// 底部导航
|
||
this.commit('setTabBarList', data.diy_bottom_nav);
|
||
|
||
this.commit('setAddonIsExist', data.addon_is_exist);
|
||
|
||
this.commit('setDefaultImg', data.default_img);
|
||
|
||
this.commit('setSiteInfo', data.site_info);
|
||
|
||
uni.setStorageSync('copyright', data.copyright);
|
||
|
||
resolve(data);
|
||
}
|
||
}
|
||
});
|
||
})
|
||
},
|
||
//查询购物车数量
|
||
getCartNumber() {
|
||
if (uni.getStorageSync("token")) {
|
||
Http.sendRequest({
|
||
url: '/api/cart/lists',
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
let cartList = {},
|
||
count = 0,
|
||
money = 0;
|
||
res.data.forEach(item => {
|
||
cartList['sku_' + item.sku_id] = item;
|
||
count += item.num;
|
||
money += item.total_money;
|
||
})
|
||
this.commit('setCartList', cartList);
|
||
this.commit('setCartNumber', count);
|
||
this.commit('setCartMoney', money);
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
this.commit('setCartNumber', 0);
|
||
this.commit('setCartList', {});
|
||
this.commit('setCartMoney', 0);
|
||
}
|
||
},
|
||
}
|
||
})
|
||
export default store
|