// pages/user/user.js import common from "../../utils/https/common"; import userApi from "../../utils/https/user" import util from '../../utils/util' import commonApi from "../../utils/https/common" let app = getApp() Page({ data: { height: 0, info: null, list: [], // 待付款列表 orderList: [], // 订单列表 timeList: [], // 倒计时 timerOut: null, // 定时器 formatTime: [], showModel: false, dfkTotal: 0, // 待付款总数 isShowGroup: false // 是否显示团购 }, onLoad: function (options) { let rect = wx.getMenuButtonBoundingClientRect(); this.setData({ height: rect.top + rect.height }) // 获取是否显示团购入口 common.user_post('multimedia/detail', { id: 2579 }).then(res => { if (res && res.data) { this.setData({ isShowGroup: res.data.company_name == 1 }) } }) }, onShow: function () { userApi.user_post("user/getMyInfo").then(res => { if (res && res.data) { this.setData({ info: res.data }) } else { this.setData({ info: null }) } }) util.pagePoint({ event: 'mine_view' }, 1) this.getList() app.globalData.isCartBuy = false }, pagePoint: function (e) { let event = e.currentTarget ? e.currentTarget.dataset.event : e; util.pagePoint({ event: event }) }, // 人工客服 phoneCall: function () { this.setData({ showModel: true }) }, closeModel() { this.setData({ showModel: false }) }, // 防止冒泡 stopBubble: function() {}, // 商户入驻 supplier: function () { let url = "https://m.cloud.sz-trip.com/ShoppingUnit" app.globalData.weburl = url wx.navigateTo({ url: '/pages/pbService/web/index?weburl=' + encodeURIComponent(url) }) }, // 获取待付款列表 getList: function () { commonApi.user_post("order/list", { state: 'WAIT_PAYMENT', offset: 0, limit: 10, keywords: '' }).then(res => { if (res && res.data) { let arr = [] let trr = [] let yrr = [] let reslist = res.data.list || [] // 设置总数 this.setData({ dfkTotal: res.data.total || 0 }) if (reslist.length > 0) { let nowDateTime = parseInt(new Date().getTime() / 1000) for (let i = 0; i < reslist.length; i++) { let del = nowDateTime - this.strtotime(reslist[i].create_time) if (del < reslist[i].auto_close_time) { trr.push(reslist[i].auto_close_time - del) yrr.push(this.formatSeconds(reslist[i].auto_close_time - del)) arr.push(reslist[i].order_product_list[0]) } } this.setData({ list: arr, orderList: reslist, timeList: trr, formatTime: yrr }) this.timer(this.data.timeList) } else { this.setData({ list: [], orderList: [], timeList: [], formatTime: [] }) } } }) }, strtotime(str) { var _arr = str.split(' '); var _day = _arr[0].split('-'); _arr[1] = (_arr[1] == null) ? '0:0:0' : _arr[1]; var _time = _arr[1].split(':'); for (let i = _day.length - 1; i >= 0; i--) { _day[i] = isNaN(parseInt(_day[i])) ? 0 : parseInt(_day[i]); } for (let i = _time.length - 1; i >= 0; i--) { _time[i] = isNaN(parseInt(_time[i])) ? 0 : parseInt(_time[i]); } let _temp = new Date(_day[0], _day[1] - 1, _day[2], _time[0], _time[1], _time[2]); return _temp.getTime() / 1000; }, formatSeconds(value) { let secondTime = parseInt(value); let minuteTime = 0; let hourTime = 0; if (secondTime >= 60) { minuteTime = parseInt(secondTime / 60); secondTime = parseInt(secondTime % 60); if (minuteTime >= 60) { hourTime = parseInt(minuteTime / 60); minuteTime = parseInt(minuteTime % 60); } } hourTime = hourTime < 10 ? "0" + hourTime : hourTime; minuteTime = minuteTime < 10 ? "0" + minuteTime : minuteTime; secondTime = secondTime < 10 ? "0" + secondTime : secondTime; return hourTime + ":" + minuteTime + ":" + secondTime; }, timer(arr) { clearInterval(this.data.timerOut); let trr = [] let list = this.data.list this.data.timerOut = setInterval(() => { for (let i = 0; i < arr.length; i++) { arr[i]-- trr[i] = this.formatSeconds(arr[i]) if (arr[i] <= 0) { arr.splice(i, 1) list.splice(i, 1) trr.splice(i, 1) i-- } } this.setData({ timeList: arr, formatTime: trr, list: list }) if (arr.length === 0) { clearInterval(this.data.timerOut); } }, 1000) }, gotoDetail: function (e) { let item = e.currentTarget.dataset.item; item = this.getChild(item) util.gotoOrder(item) }, getChild(list) { let arr = { order_product_list: [] } for (let i = 0; i < list.order_product_list.length; i++) { if (list.order_product_list[i].product_model == "ticket") { arr.order_product_list.push(list.order_product_list[i]) break } } if (arr.order_product_list.length > 0) { list.order_product_list = [] list.order_product_list.push(arr.order_product_list[0]) return list } else { return list } }, onHide: function () { let that = this clearInterval(that.data.timerOut); this.setData({ list: [], orderList: [], timeList: [], formatTime: [] }) }, onPullDownRefresh: function () { this.onShow(); wx.stopPullDownRefresh(); }, onReachBottom: function () { } })