var http = require('../../utils/request') var ble = require('../../services/ble') Page({ data: { records: [], total: 0, totalHours: 0, totalMs: 0, monthCount: 0, page: 1, pageSize: 20, loading: true, loadingMore: false }, onShow: function () { this.loadRecords(true) }, onPullDownRefresh: function () { this.loadRecords(true).then(function () { wx.stopPullDownRefresh() }) }, onReachBottom: function () { if (this.data.records.length < this.data.total) { this.loadRecords(false) } }, loadRecords: function (refresh) { var self = this var page = refresh ? 1 : self.data.page + 1 if (refresh) { self.setData({ loading: true }) } else { self.setData({ loadingMore: true }) } return http.get('/api/v1/treatment/history', { page: page, page_size: self.data.pageSize }).then(function (data) { var pageMs = 0 var now = new Date() var monthStart = new Date(now.getFullYear(), now.getMonth(), 1) var monthCount = refresh ? 0 : self.data.monthCount var records = (data.records || []).map(function (r) { var durationMin = Math.floor((r.total_duration_ms || 0) / 60000) pageMs += (r.total_duration_ms || 0) r.duration_text = durationMin + '分钟' r.region_names = ble.getRegionName(r.regions || 0).join('、') r.wavelength_name = ble.getWavelengthName(r.wavelength || 2) r.date_text = self.formatDate(r.start_time || r.created_at) if (r.start_time && new Date(r.start_time) >= monthStart) { monthCount++ } return r }) var totalMs = refresh ? pageMs : self.data.totalMs + pageMs self.setData({ records: refresh ? records : self.data.records.concat(records), total: data.total || 0, totalMs: totalMs, totalHours: Math.round(totalMs / 3600000), monthCount: monthCount, page: page, loading: false, loadingMore: false }) }).catch(function () { self.setData({ loading: false, loadingMore: false }) }) }, formatDate: function (dateStr) { if (!dateStr) return '' var d = new Date(dateStr) var now = new Date() var today = new Date(now.getFullYear(), now.getMonth(), now.getDate()) var yesterday = new Date(today.getTime() - 86400000) var h = ('0' + d.getHours()).slice(-2) var m = ('0' + d.getMinutes()).slice(-2) if (d >= today) return '今天 ' + h + ':' + m if (d >= yesterday) return '昨天 ' + h + ':' + m return (d.getMonth() + 1) + '月' + d.getDate() + '日 ' + h + ':' + m } })