store/index.js adds to the shopping cart and operates in the local storage vuex

import View from 'view'
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 yes In order to clear the number in the product details */
            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")
        },
    }
})

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324687249&siteId=291194637