import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { shopCart:{ items:{}, totalMoney:0, num:0, }, detailProList:{}, showShopcart:false, showDetailFood:false, storeName:{}, delivery:'', self_mention:'', order_no:'', userInfo:'', cardInfo:'', addressList:'', ifAddNewAddress:false, getCurrentMoney (money){ let money1 = money * 100; let intMoney1 = parseInt(money1); let diff = money1 - intMoney1; let exit=String(diff).indexOf('e') let decDiff = parseInt(diff * 10); console.log(decDiff) if (decDiff > 5&&exit=='-1') { intMoney1 += 1; } return intMoney1/100; }, addressType:'1', itemIndex:'', payType:'', cartStyle:'1', }, getters: { shopCart:state=>{ return state.shopCart }, cartStyle:state=>{ return state.cartStyle }, payType:state=>{ return state.payType }, addressType:state=>{ return state.addressType }, allAddressList:state=>{ return state.addressList }, ifAddNewAddress:state=>{ return state.ifAddNewAddress }, storeCardInfo:state=>{ return state.cardInfo }, userInfo:state=>{ return state.userInfo }, detailProList:state=>{ return state.detailProList }, showShopcart:state=>{ return state.showShopcart }, showDetailFood:state=>{ return state.showDetailFood }, storeName:state=>{ return state.storeName }, orderNo:state=>{ return state.order_no }, delivery:state=>{ return state.delivery }, self_mention:state=>{ return state.self_mention }, }, mutations: { saveItemIndex(state,itemIndex){ state.itemIndex=itemIndex }, controlCartStyle(state,cartStyle){ state.cartStyle=cartStyle }, saveShopCart(state,shopCart){ state.shopCart=shopCart }, savePayType(state,payType){ state.payType=payType }, saveAddressType(state,type){ state.addressType=type window.sessionStorage.setItem('addressType',JSON.stringify(state.addressType)); }, saveUserInfo(state,userInfo){ state.userInfo=userInfo; }, selfMention(state,item){ state.self_mention=item window.sessionStorage.setItem('self_mention',JSON.stringify(state.self_mention)); }, delivery(state,item){ state.delivery=item window.sessionStorage.setItem('delivery',JSON.stringify(state.delivery)); }, saveMyCard(state,cardInfo){ state.cardInfo=cardInfo }, saveOrderNo(state,order_no){ state.order_no=order_no }, addShopCart(state,item){ let cart =state.shopCart if(cart.items[item.date] === undefined){ cart.items[item.date]=[] } let isExist=false for(let i in cart.items[item.date]){ if(cart.items[item.date][i].id==item.id){ cart.items[item.date][i].num +=1; isExist=true; break; } } if(!isExist){ item.num=1 cart.items[item.date].push(item) } cart.num +=1; cart.totalMoney +=Number(item.price); cart.totalMoney=state.getCurrentMoney(cart.totalMoney); window.sessionStorage.setItem('shopCart',JSON.stringify(cart)); }, saveAddressList(state,addressList){ state.addressList=addressList state.ifAddNewAddress=false }, ifAddNewAddress(state,ifAddNewAddress){ state.ifAddNewAddress=ifAddNewAddress }, minusShopCart(state,item){ if(item.num==0){ return } item.num -=1; let cart=state.shopCart cart.num -=1; cart.totalMoney -=Number(item.price); cart.totalMoney=state.getCurrentMoney(cart.totalMoney); if(item.num==0){ var deleteShopCart=cart.items[item.date]; for(var j=0;j<deleteShopCart.length;j++){ if(item.id==deleteShopCart[j].id){ deleteShopCart.splice(j,1); } } } if(cart.num==0){ state.showShopcart=false } window.sessionStorage.setItem('shopCart',JSON.stringify(cart)); }, deleteShopCart(state,item){ let cart=state.shopCart cart.num -=item.num cart.totalMoney -=(item.num*item.price) cart.totalMoney=state.getCurrentMoney(cart.totalMoney); /** item.number = 0 是为了清空商品详情里面number */ item.num=0 var deleteShopCart=cart.items[item.date]; for(var j=0;j<deleteShopCart.length;j++){ if(item.id==deleteShopCart[j].id){ deleteShopCart.splice(j,1); } } if(cart.num==0){ state.showShopcart=false } window.sessionStorage.setItem('shopCart',JSON.stringify(cart)); }, emptyShopCart(state){ state.shopCart={ items:{}, totalMoney:0, num:0, } state.detailProList.num=0 state.showShopcart=false window.sessionStorage.setItem('shopCart',JSON.stringify(state.shopCart)); }, detailProList(state,item){ state.detailProList=item }, showShopcart(state){ state.showShopcart=!state.showShopcart }, showDetail(state){ state.showDetailFood=!state.showDetailFood }, storageStore(state,item){ state.storeName=item window.sessionStorage.setItem('storeName',JSON.stringify(state.storeName)); }, }, actions: { addCart({commit},item){ commit("addShopCart",item) }, minusCart({commit},item){ commit("minusShopCart",item) }, deleteCart({commit},item){ commit("deleteShopCart",item) }, emptyCart({commit}){ commit("emptyShopCart") }, watchDetail({commit},item){ commit("detailProList",item) }, storageStore({commit},item){ commit("storageStore",item) }, showCart({commit}){ commit("showShopcart") }, showDetailFood({commit}){ commit("showDetail") }, } })
store/index.js 加入购物车 本地存储 vuex里面操作
猜你喜欢
转载自www.cnblogs.com/MR-cui/p/8919137.html
今日推荐
周排行