
var goodsIndex  = '',
    sellerIndex = ''

Page({
    /**
     * 页面的初始数据
     */
    data: {
        bags            : [],     // 购物车列表
        isUser          : false,  // 是否登录
        bagId           : '',
        allCheckbox     : false,
        bagNumber       : 0,
        allPrice        : '0.00',
        bagOrderLoading : false
    },
    /**
     * 生命周期函数 - 页面显示
     */
    onShow(){
        let token = wx.getStorageSync('token') || null
        this.setData({
            isUser          : token != null,
            bagOrderLoading : false,
            allCheckbox     : false,
            bagNumber       : 0,
            allPrice        : '0.00',
            bagId           : '',
        })

        if(token != null){
            wx.showLoading({
                title: '加载中...',
                mask : true
            })
            wx.$api.bag.list().then(res => {
                res.data.map(val => {
                    val.shop.mallState = false
                    val.items.map(val => {
                        val.state = false
                    })
                })
                this.setData({
                    pagesLoding: false,
                    bags       : res.data
                })
                wx.hideLoading()
            })
        }
    },
    /**
     * 商品数量加减
     */
    goodsNumber(e){
        goodsIndex  = e.currentTarget.dataset.goods
        sellerIndex = e.currentTarget.dataset.seller

        let goodsNumber = this.data.bags[sellerIndex].items[goodsIndex].qty

        if (e.currentTarget.dataset.type == 'plus'){
            goodsNumber = goodsNumber + 1
        }else{
            if (goodsNumber > 1){
                goodsNumber = goodsNumber - 1
            }else{
                wx.showToast({
                    title   : '商品数量不能小于1',
                    icon    : 'none'
                })
                return
            }
        }
        this.setnumNumber(goodsIndex, sellerIndex, goodsNumber)
    },
    /**
     * 输入商品数量
     */
    goodsNumberInput(e){
        goodsIndex   = e.currentTarget.dataset.goods
        sellerIndex  = e.currentTarget.dataset.seller

        let setnumNumber = this.data.bags[sellerIndex].items[goodsIndex].number,
            inputValue   = Number()
        if (e.detail.value > 0){
            inputValue = Number(e.detail.value)
        }else{
            wx.showToast({
                title   : '商品数量不能小于1',
                icon    : 'none'
            })
            inputValue = Number(setnumNumber)
        }
        this.setnumNumber(goodsIndex, sellerIndex, inputValue)
    },
    /**
     * 更新商品数量
     */
    setnumNumber(goodsIndex, sellerIndex, setnumNumber){
        wx.showLoading({
            title: '加载中',
        })
        let atGoods = this.data.bags
        wx.$api.bag.putNum(atGoods[sellerIndex].items[goodsIndex].cart_id, {
            qty   : setnumNumber,
            sku_id: atGoods[sellerIndex].items[goodsIndex].sku_id
        }).then(res => {
            atGoods[sellerIndex].items[goodsIndex].qty = res.data
            this.setData({
                bags: atGoods
            })
            this.totalPrice()
            wx.hideLoading()
        })
    },
    /**
     * 单选
     */
    checkbox(e){
        goodsIndex   = e.currentTarget.dataset.goods
        sellerIndex  = e.currentTarget.dataset.seller

        console.log(e.currentTarget.dataset)
        
        let goodsList    = this.data.bags,
            checkbox     = goodsList[sellerIndex].items[goodsIndex].state,
            seller       = goodsList[sellerIndex].items,
            sellerLength = 0
        
            goodsList[sellerIndex].items[goodsIndex].state = !checkbox

        for (let i in seller){
            if (seller[i].state){
                sellerLength++
                if (sellerLength == goodsList[sellerIndex].items.length){
                    goodsList[sellerIndex].shop.mallState = true
                }
            }else{
                goodsList[sellerIndex].shop.mallState = false
                this.setData({
                    allCheckbox: false
                })
            }
        }

        this.allCheckbox('checkbox')

        this.setData({
            bags: goodsList
        })

        this.totalPrice()
    },
    /**
     * 店铺全选
     */
    sellerCheckbox(e){
        sellerIndex = e.currentTarget.dataset.seller

        let goodsList    = this.data.bags,
            allCheckbox  = this.data.allCheckbox,
            seller       = goodsList[sellerIndex].shop.mallState,
            sellerLengh  = 0

            goodsList[sellerIndex].shop.mallState = !seller

        for (let i in goodsList[sellerIndex].items){
            goodsList[sellerIndex].items[i].state = !seller
        }

        for (let j in goodsList){
            if (goodsList[j].shop.mallState){
                sellerLengh++
                if (sellerLengh == goodsList.length){
                    console.log('全选')

                    allCheckbox = true
                }else{
                    console.log('取消全选')
                    allCheckbox = false
                }
            }
        }

        if(sellerLengh == 0) {allCheckbox = false}

        this.allCheckbox('checkbox')

        this.setData({
            bags        : goodsList,
            allCheckbox : allCheckbox
        })

        this.totalPrice()
    },
    /**
     * 全选
     */
    allCheckbox(type){
        console.log(type)
        let goodsLenght = 0,
            allCheckbox = this.data.allCheckbox,
            goodsList   = this.data.bags
        
        if (type == 'checkbox'){
            for (let j in goodsList) {
                if (goodsList[j].shop.mallState) {
                    goodsLenght++
                    if (goodsLenght == goodsList.length) {
                        allCheckbox = true
                    }
                }
            }
        }else{
            allCheckbox = !allCheckbox
            for (var i in goodsList){
                goodsList[i].shop.mallState = allCheckbox

                for (let k in goodsList[i].items){
                    goodsList[i].items[k].state = allCheckbox
                }
            }
        }
        this.setData({
            allCheckbox : allCheckbox,
            bags        : goodsList
        })
        this.totalPrice()
    },
    /**
     * 计算价格
     */
    totalPrice() {
        let bagNumber = 0,
            allPrice  = 0,
            bagIdArr  = [],
            goodsList = this.data.bags

        for (var i in goodsList){
            for (let j in goodsList[i].items){
                if (goodsList[i].items[j].state){
                    bagNumber = bagNumber + goodsList[i].items[j].qty
                    allPrice  = allPrice  + (goodsList[i].items[j].qty * goodsList[i].items[j].price)
                    bagIdArr.push(goodsList[i].items[j].cart_id)
                }
            }
        }
        this.setData({
            bagNumber : bagNumber,
            allPrice  : allPrice.toFixed(2),
            bagId     : bagIdArr.join(",")
        })
    },
    /**
     * 购物车提交
     */
    bagOrder(){
        this.setData({
            bagOrderLoading:true
        })
        if (this.data.bagId != ''){
            wx.navigateTo({
                url: './bagConfirm/bagConfirm?skuId=' + this.data.bagId
            })
            // setTimeout(() => {
            //     this.setData({
            //         bagOrderLoading: false
            //     })
            // }, 2000)
        }else{
            wx.showToast({
                title   : '请选择结算商品',
                icon    : 'none'
            })

            this.setData({
                bagOrderLoading: false
            })
        }
    },
    /**
     * 菜单
     */
    actionSheet(e){
        goodsIndex  = e.currentTarget.dataset.goods
        sellerIndex = e.currentTarget.dataset.seller

        let goodsList = this.data.bags,
            cartId    = this.data.bags[sellerIndex].items[goodsIndex].cart_id

        wx.showActionSheet({
            itemList: ['删除'],
            success : res=>{
                wx.showLoading({
                    title: '加载中',
                })
                wx.$api.bag.del(cartId).then(res => {
                    goodsList[sellerIndex].items.splice([goodsIndex],1)
                    if (goodsList[sellerIndex].items.length == 0){
                        goodsList.splice([sellerIndex], 1)
                    }
                    this.setData({
                        bags: goodsList
                    })
                    this.totalPrice()
                    wx.showToast({
                        title: '已删除'
                    })
                })
            }
        })
    },
})