diff --git a/store/index.js b/store/index.js index 34eb0f6..a98653c 100644 --- a/store/index.js +++ b/store/index.js @@ -50,20 +50,25 @@ const store = new Vuex.Store({ goods: '', head: '', store: '', - article: '' + article: '', + aiAgent: '' }, cartList: {}, cartIds: [], cartNumber: 0, cartMoney: 0, cartChange: 0, + wechatConfigStatus:0, bottomNavHidden: false, // 底部导航是否隐藏,true:隐藏,false:显示 + aiUnreadCount: 10, // AI未读消息数量 + globalAIKefuConfig: null, // AI客服配置 globalStoreConfig: null, // 门店配置 globalStoreInfo: null, // 门店信息 defaultStoreInfo: null, // 默认门店 cartPosition: null, // 购物车所在位置 componentRefresh: 0, // 组件刷新 servicerConfig: null, // 客服配置 + wxworkConfig: null, // 企业微信配置 diySeckillInterval: 0, diyGroupPositionObj: {}, diyGroupShowModule: '', @@ -71,11 +76,21 @@ const store = new Vuex.Store({ mapConfig: { tencent_map_key: '', wap_is_open: 1, - wap_valid_time: 0 + wap_valid_time: 0, + }, + copyright: null, + initStatus:false, + offlineWhiteList:['pages/order/payment','pages/order/list','pages/order/detail'],//线下支付白名单 + canReceiveRegistergiftInfo: { + status: false, + path: '' }, - copyright: null }, mutations: { + // 设置是否可以领取新人礼 + setCanReceiveRegistergiftInfo(state, data) { + state.canReceiveRegistergiftInfo = data; + }, // 设置那些组件展示 setDiyGroupShowModule(state, data) { state.diyGroupShowModule = data; @@ -137,6 +152,10 @@ const store = new Vuex.Store({ setBottomNavHidden(state, value) { state.bottomNavHidden = value; }, + setglobalAIKefuConfig(state, value) { + state.globalAIKefuConfig = value; + uni.setStorageSync('globalAIKefuConfig', value); // 初始化数据调用 + }, setGlobalStoreConfig(state, value) { state.globalStoreConfig = value; uni.setStorageSync('globalStoreConfig', value); // 初始化数据调用 @@ -160,6 +179,11 @@ const store = new Vuex.Store({ state.servicerConfig = value; uni.setStorageSync('servicerConfig', value); }, + // 企业微信配置 + setWxworkConfig(state, value) { + state.wxworkConfig = value; + uni.setStorageSync('wxworkConfig', value); + }, setDiySeckillInterval(state, value) { state.diySeckillInterval = value; }, @@ -175,11 +199,19 @@ const store = new Vuex.Store({ uni.setStorageSync('copyright', value); }, setMemberInfo(state, value) { + // 会员被锁定后,清除会员登录信息 + if (value && value.status == 0) { + value = null; + } state.memberInfo = value; if (value) { uni.setStorageSync('memberInfo', value); } else { + // 会员为空时,清除会员登录信息 uni.removeStorageSync('memberInfo'); + this.commit('setToken', ''); + this.dispatch('emptyCart'); + //uni.removeStorageSync('authInfo'); } }, setCartNumber(state, cartNumber) { @@ -193,8 +225,24 @@ const store = new Vuex.Store({ }, setCartMoney(state, value) { state.cartMoney = value; + }, + setInitStatus(state,value){ + state.initStatus = value + }, + setWechatConfigStatus(state,value){ + state.wechatConfigStatus = value + }, + // 设置AI未读消息数量 + setAiUnreadCount(state, value) { + state.aiUnreadCount = value; } }, + getters: { + // AI智能助手配置 + globalAIKefuConfig: state => state.globalAIKefuConfig, + // AI未读消息数量 + aiUnreadCount: state => state.aiUnreadCount, + }, actions: { init() { return new Promise((resolve, reject) => { @@ -215,16 +263,24 @@ const store = new Vuex.Store({ this.commit('setSiteInfo', data.site_info); this.commit('setServicerConfig', data.servicer); + + // 企业微信配置 + if (data?.wxwork_config) { + this.commit('setWxworkConfig', data.wxwork_config); + } this.commit('setCopyright', data.copyright); this.commit('setMapConfig', data.map_config); + this.commit('setglobalAIKefuConfig', data.ai_agent_config); + this.commit('setGlobalStoreConfig', data.store_config); //联系我们 this.commit('setShopInfo', data.shop_info); + this.commit('setWechatConfigStatus',data?.wechat_config_status); // 默认总店 if (data.store_info) { this.commit('setDefaultStoreInfo', data.store_info); @@ -233,7 +289,7 @@ const store = new Vuex.Store({ this.commit('setDefaultStoreInfo', null); this.commit('setGlobalStoreInfo', null); } - + this.commit('setInitStatus',true) resolve(data); } } @@ -247,7 +303,7 @@ const store = new Vuex.Store({ data: {}, success: res => { if (res.code == 0) { - let list = []; + let list = {}; let ids = []; let totalMoney = 0; let totalNum = 0; @@ -260,16 +316,17 @@ const store = new Vuex.Store({ goods_id: item.goods_id, sku_id: item.sku_id, num: item.num, - discount_price: item.discount_price + discount_price: item.discount_price, + min_buy: item.min_buy, + stock: item.stock, }; if (!list['goods_' + cart.goods_id]) { list['goods_' + cart.goods_id] = {}; } - list['goods_' + cart.goods_id]['sku_' + cart - .sku_id - ] = - cart; + list['goods_' + cart.goods_id]['max_buy'] = item.max_buy; + list['goods_' + cart.goods_id]['goods_name'] = item.goods_name; + list['goods_' + cart.goods_id]['sku_' + cart.sku_id] = cart; ids.push(cart.cart_id); }); @@ -280,8 +337,7 @@ const store = new Vuex.Store({ let item = list[goods][sku]; if (typeof item == 'object') { num += item.num; - money += parseFloat(item.discount_price) * parseInt(item - .num); + money += parseFloat(item.discount_price) * parseInt(item.num); } } list[goods].num = num; @@ -292,7 +348,6 @@ const store = new Vuex.Store({ } } - this.commit('setCartList', list); this.commit('setCartIds', ids);