const app = getApp()
var innerAudioContext = wx.createInnerAudioContext()
Page({
    data: {
        dataList: [],
        speedStep: 5, //快进快退秒数
        waitFlag: false,
        avatarUrl: app.globalData.userInfo.avatarUrl,
        imgUrl: app.urls.baseImgUrl,
        uId: '',
        columnId: ''
    },
    onLoad(options) {
        var _self = this
        this.setData({
            uId: options.uId,
            columnId: options.cId
        })
        _self.getMainMoment()
    },


    getMainMoment() {
        wx.showLoading({
            title: '加载中...',
        })
        var _self = this
        app.http.get(app.urls.getMomentsContent.format({
                configColumnId: _self.data.columnId,
                uid: _self.data.uId
            }), {
                header: {
                    token: app.globalData.token
                }
            })
            .then(res => {
                wx.hideLoading({})
                //构建数据
                _self.buildDetail(res.data)
            })
            .catch(err => {
                wx.hideLoading({})
                console.log(err)
            })
    },
    //构建展示数据
    buildDetail(data) {
        var _self = this
        data.list.forEach(it => {
            switch (it.dataType) {
                case '2': //图片
                    var items = it.value.split(',')
                    var tempList = []
                    items.forEach(item => {
                        var tempItem = {
                            id: item,
                            path: app.urls.baseImgUrl + item,
                        }
                        tempList.push(tempItem)
                    })
                    it.valueList = tempList
                    break
                case '4': //视频
                    var items = it.value.split(',')
                    var tempList = []
                    for (var i = 0; i < items.length; i++) {
                        var ss = items[i].split('&')
                        var videoUrl = app.urls.baseImgUrl + ss[0]
                        var imgUrl = app.urls.baseImgUrl + ss[1]
                        var tempItem = {
                            path: videoUrl,
                            imgPath: imgUrl
                        }
                        tempList.push(tempItem)
                    }
                    it.valueList = tempList
                    break
                case '3': //音频
                    var items = it.value.split(',')
                    var tempList = []
                    items.forEach(item => {
                        var tempItem = {
                            id: item, //id
                            path: app.urls.baseImgUrl + item, //地址
                            isPlay: false, //是否播放中
                            duration: 100, //时长
                            curDuation: 0,
                            curDurationStr: '00:00',
                            totalDurationStr: '00:00'
                        }
                        tempList.push(tempItem)
                    })
                    it.valueList = tempList
                    break
                case '6': //定位
                    var items = it.value.split('-')
                    var tempList = []
                    items.forEach(item => {
                        var latlng = item.split(',')
                        var tempItem = {
                            name: '',
                            address: '',
                            latitude: latlng[0],
                            longitude: latlng[1],
                        }
                        tempList.push(tempItem)
                    })
                    it.valueList = tempList
                    break
                case '8': //单选
                    it.dictionariesList.forEach(ss => {
                        if (it.value.indexOf(ss.dataId) != -1) {
                            it.selValue = ss.dataName
                        }
                    })
                    break
                case '9':
                    var selValue = ''
                    it.dictionariesList.forEach(ss => {
                        if (it.value.indexOf(ss.dataId) != -1) {
                            selValue += ss.dataName + ','
                            ss.isSel = true
                        } else {
                            ss.isSel = false
                        }
                    })
                    selValue = selValue.substr(0, selValue.length - 1)
                    it.selValue = selValue
                    break
            }
        })
        _self.setData({
            dataList: data.list
        })
    },

    //预览图片
    viewImg(e) {
        wx.previewImage({
            urls: [e.currentTarget.dataset.url],
        })
    },
    //预览视频
    viewVideo(e) {
        var url = e.currentTarget.dataset.url
        wx.previewMedia({
            sources: [{
                url: url,
                type: 'video'
            }],
        })
    },
    play(e) {
        //进行播放
        const _self = this
        const index = e.currentTarget.dataset.index
        const idx = e.currentTarget.dataset.idx
        const ix = e.currentTarget.dataset.i
        const a = e.currentTarget.dataset.a
        var audio = e.currentTarget.dataset.item
        //先需要停止其他录音文件的播放
        _self.data.dataList.forEach(it => {
            it.list.forEach(item => {
                item.list.forEach(ix => {
                    if (ix.dataType == '3') {
                        if (ix.valueList) {
                            ix.valueList.forEach(ii => {
                                if (ii.isPlay) {
                                    innerAudioContext.stop()
                                }
                                ii.isPlay = false
                                ii.curDuration = 0
                                ii.curDuationStr = '00:00'
                            })
                        }
                    }
                })
            })
        })
        if (!audio.isPlay) {
            innerAudioContext = wx.createInnerAudioContext()
            innerAudioContext.src = _self.data.dataList[index].list[idx].list[ix].valueList[a].path + '.mp3'
            innerAudioContext.autoplay = true
            console.log(_self.data.dataList[index].list[idx].list[ix].valueList[a].path)
        } else {
            innerAudioContext.stop()
        }


        innerAudioContext.onPlay(() => {
            console.log('onPlay')
            _self.data.dataList[index].list[idx].list[ix].valueList[a]['isPlay'] = true
            _self.setData({
                dataList: _self.data.dataList
            })
        });

        innerAudioContext.onCanplay((res) => {
            // if (_self.data.waitFlag) {
            //   innerAudioContext.play()
            //   _self.setData({
            //     waitFlag: false
            //   })
            // }
        })
        innerAudioContext.onStop((res) => {
            console.log('停止播放')
            _self.data.dataList[index].list[idx].list[ix].valueList[a].isPlay = false
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = 0
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = '00:00'
            _self.setData({
                dataList: _self.data.dataList,
            })
            innerAudioContext.destroy()
        })
        innerAudioContext.onEnded((res) => {
            console.log(res)
            console.log('播放完毕')
            _self.data.dataList[index].list[idx].list[ix].valueList[a].isPlay = false
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = 0
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = '00:00'
            _self.setData({
                dataList: _self.data.dataList,
            })
            innerAudioContext.destroy()
        })
        innerAudioContext.onError((res) => {
            console.log('播放错误')
            console.log(res)
            _self.data.dataList[index].list[idx].list[ix].valueList[a].isPlay = false
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = 0
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = '00:00'
            _self.setData({
                dataList: _self.data.dataList,
            })
            innerAudioContext.destroy()
        })
        innerAudioContext.onSeeking(() => {
            // console.log(innerAudioContext.currentTime)
        })
        innerAudioContext.onWaiting(() => {
            // console.log('onWaiting')
            // innerAudioContext.pause()
            // _self.setData({
            //   waitFlag: true
            // })
        })
        innerAudioContext.onTimeUpdate(() => {
            if (innerAudioContext.duration != Infinity) {
                _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = parseInt(innerAudioContext.currentTime)
                _self.data.dataList[index].list[idx].list[ix].valueList[a].duration = parseInt(innerAudioContext.duration)
                var curM = parseInt(innerAudioContext.currentTime / 60) //分钟
                var curS = parseInt(innerAudioContext.currentTime % 60) //秒
                var tM = parseInt(innerAudioContext.duration / 60) //分钟
                var tS = parseInt(innerAudioContext.duration % 60) //秒
                var curMStr = curM > 9 ? curM : '0' + curM
                var curSStr = curS > 9 ? curS : '0' + curS
                var totalMStr = tM > 9 ? tM : '0' + tM
                var totalSStr = +tS > 9 ? tS : '0' + tS
                _self.data.dataList[index].list[idx].list[ix].valueList[a].curDurationStr = curMStr + ':' + curSStr
                _self.data.dataList[index].list[idx].list[ix].valueList[a].totalDurationStr = totalMStr + ':' + totalSStr
                _self.setData({
                    dataList: _self.data.dataList
                })
            }
        })
    },
    //倒退5秒
    rewind(e) {
        var _self = this
        var index = e.currentTarget.dataset.index
        var item = e.currentTarget.dataset.item
        var idx = e.currentTarget.dataset.idx
        var a = e.currentTarget.dataset.a
        var ix = e.currentTarget.dataset.i
        if (item.isPlay) {
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration - _self.data.speedStep
            innerAudioContext.seek(_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration)
            _self.setData({
                dataList: _self.data.dataList
            })
        }

    },
    //快进5秒
    speed(e) {
        var _self = this
        var index = e.currentTarget.dataset.index
        var item = e.currentTarget.dataset.item
        var idx = e.currentTarget.dataset.idx
        var a = e.currentTarget.dataset.a
        var ix = e.currentTarget.dataset.i
        if (item.isPlay) {
            _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration = _self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration + _self.data.speedStep
            innerAudioContext.seek(_self.data.dataList[index].list[idx].list[ix].valueList[a].curDuration)
            _self.setData({
                dataList: _self.data.dataList
            })
        }
    },
    slider4change(e) {
        var index = e.currentTarget.dataset.index
        var item = e.currentTarget.dataset.item
        if (item.isPlay) {
            innerAudioContext.seek(e.detail.value)
        }
    },
    // 跳转模板列表
    goList: function () {
        wx.navigateTo({
            url: '../cardList/cardList',
        })
    },
    // 获取个人简介
    getPersonIntro: function () {
        var self = this
        app.restAjax.get(app.restAjax.path('{personIntroUrl}app/userexpand/get/' + app.globalData.userInfo.userId, [app.personIntroUrl]), {}, {
            headers: {
                token: app.globalData.token
            }
        }, function (code, data) {
            self.setData({
                personIntro: data
            })
        }, function (code, data) {
            app.dialog.msg(data.msg);
        });
    },
    // 获取用户信息
    getUserInfo: function () {
        var self = this
        app.restAjax.get(app.restAjax.path('{loginUrl}app/user/get-app-user', [app.personIntroUrl]), {}, {
            headers: {
                token: app.globalData.token
            }
        }, function (code, data) {
            app.globalData.userInfo = data
            self.getList()

        }, function (code, data) {
            app.dialog.msg(data.msg);
        });
    },
    // 获取默认名片
    getDefault: function () {
        var self = this
        app.http.get(app.urls.getDefaultCard, {
            header: {
                token: app.globalData.token
            },
            data: {}
        }).then(res => {
            var area = res.data.areaList
            for (let i = 0; i < area.length; i++) {
                if (area[i].templateAreaFontCenter == '1') {
                    area[i].templateAreaFontCenter = 'left'
                } else if (area[i].templateAreaFontCenter == '2') {
                    area[i].templateAreaFontCenter = 'center'
                } else {
                    area[i].templateAreaFontCenter = 'right'
                }
                if (area[i].templateAreaFontBold == '0') {
                    area[i].templateAreaFontBold = 'normal'
                } else if (area[i].templateAreaFontBold == '1') {
                    area[i].templateAreaFontBold = 'bold'
                } else {
                    area[i]['templateAreaFontStyle'] = 'italic'
                }
                if (area[i].templateAreaSource == 'phone') {
                    self.setData({
                        phoneTxt: area[i].templateAreaFontValue
                    })
                } else if (area[i].templateAreaSource == 'wechat') {
                    self.setData({
                        wechatTxt: area[i].templateAreaFontValue
                    })
                } else if (area[i].templateAreaSource == 'email') {
                    self.setData({
                        emailTxt: area[i].templateAreaFontValue
                    })
                } else if (area[i].templateAreaSource == 'address') {
                    self.setData({
                        addressTxt: area[i].templateAreaFontValue
                    })
                } else if (area[i].templateAreaSource == 'name') {
                    self.setData({
                        nameTxt: area[i].templateAreaFontValue
                    })
                }
            }
            self.setData({
                cardInfo: res.data,
                areaList: area,
                dataList: []
            })

            if (res.data) {
                self.toSaveLocalImg(res.data.cardTemplateUseDispatchPhoto)
                self.getBrowCardUserList(res.data.cardTemplateUseId)
                self.getMainColumn(res.data.creator)
            }
        }).catch(res => {

        })
    },
    //获取浏览当前名片的用户头像列表
    getBrowCardUserList(id) {
        var _self = this
        app.http.get(app.urls.getCardBrowUserList, {
                header: {
                    token: app.globalData.token
                },
                data: {
                    page: '1',
                    rows: '7',
                    cardTemplateUseId: id
                }
            })
            .then(res => {
                if (res.data) {
                    _self.setData({
                        browUserList: res.data.rows
                    })
                }
            })
            .catch(err => {
                console.log(err)
            })
    },
    // 存入通讯录
    addContact: function () {
        var self = this
        wx.addPhoneContact({
            firstName: self.data.nameTxt,
            mobilePhoneNumber: self.data.phoneNum
        })
    },
    // 加入卡包
    includedCard: function () {
        var self = this
        app.http.post(app.urls.includedCard, {
            header: {
                token: self.data.token
            },
            data: {
                cardTemplateUseBagId: "",
                cardTemplateUseId: self.data.cardInfo.cardTemplateUseId,
                cardTemplateUseStar: "",
                cardTemplateUseTag: "",
                cardTemplateUseTop: ""
            }
        }).then(res => {
            console.log(res.data)
            if (res.statusCode == '200') {
                wx.showToast({
                    title: '加入卡包成功！',
                })
            }
        })
    },
    // 拨打电话
    makeCall: function () {
        var self = this
        var phone = self.data.phoneTxt
        if (phone) {
            wx.makePhoneCall({
                phoneNumber: phone,
            })
        }
    },
    // 获取浏览数
    getViewCount: function () {
        var self = this
        app.restAjax.get(app.restAjax.path('{cardUrl}app/templateviewrecord/getByTemplateUseId/' + self.data.cardInfo.cardPersonId, [app.cardUrl]), {}, {
            headers: {
                token: app.globalData.token
            }
        }, function (code, data) {
            self.setData({
                viewInfo: data
            })
        }, function (code, data) {
            if (data.msg) {
                app.dialog.msg(data.msg);
            }
        });
    },
    // 获取转发数
    getForwardCount: function () {
        var self = this
        app.restAjax.get(app.restAjax.path('{cardUrl}app/templateforwardingrecord/count', [app.cardUrl]), {
            templateUseId: self.data.cardInfo.cardPersonId
        }, {
            headers: {
                token: app.globalData.token
            }
        }, function (code, data) {
            self.setData({
                forwardCount: data.data
            })
        }, function (code, data) {
            app.dialog.msg(data.msg);
        });
    },
    // 复制文本
    copyText: function (e) {
        var self = this
        var text = e.currentTarget.dataset.text
        if (text) {
            wx.setClipboardData({
                data: text,
                success: function () {}
            })
        }
    },
    // 获取头像
    checkPermission() {
        var _self = this
        try {
            var names = wx.getStorageSync('name')
            var icon = wx.getStorageSync('userIcon')

            if (names) {
                this.setData({
                    name: names,
                    userIcon: icon
                })
            } else {
                wx.showModal({
                    title: '提示',
                    content: '小程序需要您微信头像以及昵称用于展示,请授权.',
                    showCancel: false,
                    success(res) {
                        if (res.confirm) {
                            _self.getUserProfile(3)
                        }
                    }
                })
            }
        } catch (error) {
            wx.showToast({
                title: '获取信息失败',
                icon: 'error'
            })
        }
    },
    getUserProfile(e) {
        let _self = this
        wx.getUserProfile({
            desc: '获取微信头像以及昵称用于展示',
            success: (res) => {
                wx.setStorage({
                    data: res.userInfo.nickName,
                    key: 'name',
                })
                wx.setStorage({
                    data: res.userInfo.avatarUrl,
                    key: 'userIcon',
                })
                _self.setData({
                    name: res.userInfo.nickName,
                    userIcon: res.userInfo.avatarUrl
                })
                app.globalData.userIcon = res.userInfo.avatarUrl
                app.globalData.userInfo = res.userInfo
                _self.selectComponent('#head').refreshCart()
            },
            fail(err) {
                //判断是否绑定手机号
                wx.showToast({
                    title: '获取个人信息失败',
                    icon: 'error',
                })
            }
        })
    },
    // 生成随机id
    buildId: function () {
        var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];

        var nums = "";

        for (var i = 0; i < 36; i++) {
            var id = parseInt(Math.random() * 61);

            nums += chars[id];
        }
        return nums
    },
    // 展示名片码
    showBarCode: function () {
        this.setData({
            isShowBarCode: true
        })
        wx.hideTabBar()
    },
    // 隐藏名片码
    hideBarCode: function () {
        this.setData({
            isShowBarCode: false
        })
        wx.showTabBar()
    },
    // 转发记录
    shareRecord: function (cardTemplateDispatchId) {
        var self = this
        app.http.post(app.urls.shareRecord, {
            header: {
                token: app.globalData.token
            },
            data: {
                cardTemplateUseId: self.data.cardInfo.cardTemplateUseId,
                cardTemplateDispatchParentId: '',
                cardTemplateDispatchId: cardTemplateDispatchId
            }
        }).then(res => {
            console.log(res.data)
            self.setData({
                shareRecordId: res.data.data
            })
        })
    },
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function (res) {
        console.log(res)
        var self = this
        wx.showShareMenu({
            withShareTicket: true,
            success: function (res) {
                console.log(res)
            }
        })

        if (res.from == 'button') {
            var postId = self.buildId()
            self.shareRecord(postId)

            var param = '/pages/sharePage/sharePage?cardTemplateDispatchId=' + postId;
            return {
                title: '名片分享名片分享名片分享名片分享名片分享名片分享名片分享名片分享名片分享名片分享名片分享名片分享名片分享',
                path: param,
                imageUrl: self.data.shareImgUrl
            }
            // return返回    title 转发标题    path 路径 imageUrl 自定义图片,可以本地路径  代码包文件路径  支持png jpg 显示长宽比5:4
        }
    },
})