var http = require('../../utils/request') var ble = require('../../services/ble') var app = getApp() Page({ data: { statusBarHeight: 44, sessionId: '', regions: 0, duration: 0, avgPd: 0, mode: 0, durationText: '', regionNames: [], syncing: false, synced: false }, onBack: function () { wx.reLaunch({ url: '/pages/index/index' }) }, onLoad: function (options) { this.setData({ statusBarHeight: app.globalData.statusBarHeight }) var durationMs = parseInt(options.duration) || 0 var mins = Math.floor(durationMs / 60000) var secs = Math.floor((durationMs % 60000) / 1000) var durationText = '' if (mins > 0) { durationText = mins + '分钟' } else { durationText = secs + '秒' } this.setData({ sessionId: options.session_id || '', regions: parseInt(options.regions) || 0, duration: durationMs, avgPd: options.avg_pd || 0, durationText: durationText, mode: parseInt(options.mode) || 0, regionNames: ble.getRegionName(parseInt(options.regions) || 0) }) this.syncRecord() }, syncRecord: function () { var self = this var treatment = (app.globalData.currentTreatment) || {} self.setData({ syncing: true }) http.post('/api/v1/treatment/sync', { session_id: self.data.sessionId, device_id: ble.getDeviceId(), start_time: new Date(Date.now() - self.data.duration).toISOString(), end_time: new Date().toISOString(), regions: self.data.regions, total_duration_ms: self.data.duration, mode: self.data.mode, avg_pd: self.data.avgPd, source: treatment.source || 'device' }).then(function () { self.setData({ syncing: false, synced: true }) }).catch(function () { self.setData({ syncing: false, synced: false }) }) }, onBackHome: function () { wx.switchTab({ url: '/pages/index/index' }) } })