/*
 * 手太欠
 * 愿这世界都如故事里一样 美好而动人~
*/

Page({

    /**
     * 页面的初始数据
     */
    data: {
        isFixedTop      : 0,
        barHeight       : getApp().globalData.barHeight,  // 状态栏高度
        goodsId         : '',  // 商品id
        goodsData       : '',  // 商品数据
        mallContent     : '',  // 商品详情
        skus            : [],  // 显示的规格-提交
        skuid           : '',
        specselect      : '',  // 确认购买的规格
        selectSkusValues: '',  // 默认选项
        valueId         : '',  // 选中规格id
        valueIndex      :  '', // 选中规格下标index
        specselectIndex : '',
        qtyNumber       : 1,  // 产品数量
        goodsSize       : false,
        invite          : ''
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.setData({
            goodsId: options.id,
        })
        getApp().globalData.invite = options.invite || ''
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        // 获取商品详情
        this.goodsInfo();
    },

    /**
     * 输入产品数量
     */
    goodsNumberInput(e){
        let inventory = this.data.selectSkusValues.stock
        if(inventory < e.detail.value ){
            wx.showToast({
                title: '超出库存数量',
                icon : 'none',
            })
            this.setData({
                qtyNumber: Math.min(inventory, e.detail.value)
            })
            return
        }
        this.setData({
            qtyNumber: e.detail.value
        })
    },
    /**
     * 离开产品数量
     */
    goodsNumberBlur(e){
        let { value } = e.detail
        if(value == '' || value <= 0){
            this.setData({
                qtyNumber: 1
            })
        }
    },
    /**
     * 商品详情
     */
    goodsInfo() {
        // 因分享朋友圈启动时未挂载全局接口方法，故这里只能使用微信原生方法
        wx.showLoading({
            title: '加载中...',
            mask : true
        })
        wx.request({
            // url         : 'https://api.xhtest.douhuofalv.com/api/mall/goods/' + this.data.goodsId,
            url         : 'https://api.xuanhuojk.com/api/mall/goods/' + this.data.goodsId,
            header      : {
                "Accept"		: "application/json",
                "channel"       : "client",
                "Authorization"	: wx.getStorageSync("token") || ""
            },
            success: res => {
                wx.hideLoading()
                let { statusCode, data } = res
                if(statusCode == 200){
                    let dataOBJ = data.data
                    this.setData({
                        goodsData       : dataOBJ,
                        mallContent     : dataOBJ.content.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"'),
                        skus            : dataOBJ.skus,
                        skuid           : dataOBJ.skus[0].sku_id,
                        selectSkusValues: dataOBJ.skus[0],
                        specselect      : dataOBJ.skus[0].unit.split('|'),
                        invite          : dataOBJ.invite
                    })
                    return
                }
                wx.showToast({
                    title: data.message,
                    icon : 'none'
                })
            },
            fail: err => {
                wx.showToast({
                    title: err.errMsg,
                    icon : 'none'
                })
            }
        })
        // wx.$api.mall.goodsSee(this.data.goodsId).then(res => {
        //     this.setData({
        //         goodsData       : res.data,
        //         mallContent     : res.data.content.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block;"'),
        //         skus            : res.data.skus,
        //         skuid           : res.data.skus[0].sku_id,
        //         selectSkusValues: res.data.skus[0],
        //         specselect      : res.data.skus[0].unit.split('|'),
        //         invite          : res.data.invite
        //     })
        // }).catch(err =>{
        //     console.log(err)
        // }).finally(() => {
        //     wx.hideLoading()
        // })
    },

    /**
     * 选规格
     */
    selectSize(e) {
        this.setData({
            qtyNumber: 1
        })
        let valueid = e.currentTarget.dataset.valueid,
            index = e.currentTarget.dataset.index
        var temp1 = 'specselect['+index+']'
        this.setData({
            [temp1]: valueid
        })
        let newlist = []
        let str = ''
        for (var i in this.data.specselect) {
            if (i == index) {
                newlist.push(valueid);
                if (i == 0) {
                    str = valueid
                } else {
                    str = str + '|' + valueid
                }
            } else {
                newlist.push(this.data.specselect[i])
                if (i == 0) {
                    str = this.data.specselect[i]
                } else {
                    str = str + '|' + this.data.specselect[i]
                }
            }
        }
        for (var i in this.data.skus) {
            if (this.data.skus[i].unit == str) {
                this.setData({
                    selectSkusValues: this.data.skus[i]
                })
                break;
            }
        }
        this.setData({
            specselect: newlist
        })
    },

    /**
     * 产品数量加减
     */
    goodsNumber(e){
        let num = this.data.qtyNumber,
            val = e.currentTarget.dataset.type,
            stock = this.data.selectSkusValues.stock
        if (val == 'plus'){
            num ++;
            if(num > stock) {
                wx.showToast({
                    title   : '商品数量不能大于库存量',
                    icon    : 'none'
                })
                this.setData({
                    qtyNumber: stock
                })
            } else {
                this.setData({
                    qtyNumber: num
                })
            }
           
        }else{
            if (num > 1){
                num --;
                if(num < this.data.qtyNumber) {
                    this.setData({
                        qtyNumber: num
                    })
                }
            }else{
                wx.showToast({
                    title   : '商品数量不能小于1',
                    icon    : 'none'
                })
            }
            this.setData({
                qtyNumber: num
            })
        }
    },

    /**
     * 规格弹出
     */
    buyPop() {
        this.setData({
            goodsSize: !this.data.goodsSize
        })
    },

    /**
     * 规格关闭
     */
    closeTap() {
        this.setData({
            goodsSize: false
        })
    },

    /**
     * 确认购买
     */
    buyTap() {
        // 获取登录状态
        if(wx.getStorageSync("token") != ''){
            let {
                sku_id,
                stock
            } = this.data.selectSkusValues;
            if (stock > 0) {
                this.setData({
                    skuid       : sku_id,
                    goodsSize   : false
                })
                wx.navigateTo({
                    url: '/pages/mall/confirm/confirm?skuId=' + sku_id + '&qty=' + this.data.qtyNumber || 1
                })
            } else {
                uni.showToast({
                    title: '当前商品库存不足',
                    icon: 'none',
                    mask: true,
                    duration: 2000
                })
            }
            
        }else{
            // 去登录
            wx.navigateTo({
                url: "/pages/login/index"
            })
        }
    },

    /**
    * 监听页面滑动事件
    */
   onPageScroll(e) {
        this.setData({
            isFixedTop: parseInt(e.scrollTop)
        });
    },

    /**
    * 返回上一页
    */
    returnGo() {
        wx.navigateBack({
            delta: 1,
            fail: () => {
                wx.switchTab({
                    url: '/pages/mall/index?invite=' + getApp().globalData.inviteText
                })
            }
        })
    },

    /**
    * 回到首页
    */
    returnHome() {
        wx.switchTab({
            url: '/pages/mall/index?invite=' + getApp().globalData.inviteText
        })
    },

    /**
     * 放大轮播相册图片
     */
    opneBanner(e){
        let imgs  = [],
            index = e.currentTarget.dataset.index
        for (let img of e.currentTarget.dataset.imgs){
            imgs.push(img)
        }
        wx.previewImage({
            urls    : imgs,
            current : imgs[index]
        })
    },
    /**
     * 分享给朋友
     */
    onShareAppMessage(){
        return{
            title   : this.data.goodsData.name,
            path    : '/pages/mall/details/details?id=' + this.data.goodsId + '&invite=' + this.data.invite,
            imageUrl: this.data.goodsData.cover
        }
    },
    /**
     * 分享朋友圈
     */
    onShareTimeline(){
        return{
            title    : this.data.goodsData.name,
            query    : 'id=' + this.data.goodsId + '&invite=' + this.data.invite,
            imageUrl : this.data.goodsData.cover
        }
    }
})