var ble = require('../../services/ble') Page({ data: { statusBarHeight: 44, regions: [ { name: '左脸颊', mask: 0x01, checked: true }, { name: '右脸颊', mask: 0x02, checked: true }, { name: '额头', mask: 0x04, checked: true }, { name: '下巴', mask: 0x08, checked: true }, { name: '鼻唇', mask: 0x10, checked: true } ], selectedMode: 0, subExpired: false, subDays: 6, submitting: false, error: '' }, onLoad: function () { var app = getApp() this.setData({ statusBarHeight: app.globalData.statusBarHeight }) this.checkSubscription() }, checkSubscription: function () { var http = require('../../utils/request') var self = this http.get('/api/v1/subscription/status').then(function (sub) { self.setData({ subExpired: sub.status !== 'active', subDays: sub.remaining_days || 0 }) }).catch(function () {}) }, onToggleRegion: function (e) { var idx = e.currentTarget.dataset.idx var regions = this.data.regions regions[idx].checked = !regions[idx].checked this.setData({ regions: regions }) }, onSelectMode: function (e) { var mode = parseInt(e.currentTarget.dataset.value) if (mode === 1 && this.data.subExpired) { wx.navigateTo({ url: '/pages/subscribe-prompt/subscribe-prompt' }) return } this.setData({ selectedMode: mode }) }, onStart: function () { var self = this var mask = 0 self.data.regions.forEach(function (r) { if (r.checked) mask |= r.mask }) if (mask === 0) { wx.showToast({ title: '请至少选择一个区域', icon: 'none' }) return } self.setData({ submitting: true, error: '' }) if (self.data.selectedMode === 1) { self.setData({ submitting: false }) wx.navigateTo({ url: '/pages/auto-scan/auto-scan' }) return } ble.setParams({ region_mask: mask, wavelength: 2, brightness: 200, duration_ms: 600000, mode: self.data.selectedMode }).then(function () { return ble.startTreatment(mask) }).then(function () { self.setData({ submitting: false }) wx.redirectTo({ url: '/pages/treating/treating?regions=' + mask + '&wavelength=2' + '&duration=600000' + '&mode=' + self.data.selectedMode }) }).catch(function (err) { self.setData({ submitting: false, error: err.error_msg || '启动失败' }) }) } })