var api = require('../../utils/api') var i18n = require('../../i18n/index') Page({ data: { statusBarHeight: 44, planName: '', expiryDate: '' }, onBack: function () { wx.navigateBack({ fail: function () { wx.reLaunch({ url: '/pages/index/index' }) } }) }, onShow: function () { i18n.bind(this) this.render() }, // Recompute locale-dependent display strings from stored raw values. render: function () { this.setData({ planName: this.planNameFor(this._plan), expiryDate: this._expireTime ? this.formatDate(this._expireTime) : '' }) }, planNameFor: function (plan) { if (plan === 'trial') return i18n.t('subSuccess.planTrial') if (plan === 'monthly') return i18n.t('subSuccess.planMonthly') if (plan === 'yearly') return i18n.t('subSuccess.planYearly') return i18n.t('subSuccess.planDefault') }, formatDate: function (raw) { var date = new Date(raw) var y = date.getFullYear() var m = ('0' + (date.getMonth() + 1)).slice(-2) var d = ('0' + date.getDate()).slice(-2) if (i18n.getLocale() === 'en') return y + '-' + m + '-' + d return y + '年' + m + '月' + d + '日' }, onLoad: function (options) { var self = this var app = getApp() self.setData({ statusBarHeight: app.globalData.statusBarHeight }) var plan = options.plan || 'yearly' self._plan = plan // Fetch actual subscription expiry from server instead of computing client-side api.getSubscription().then(function (res) { if (res && res.expire_time) { self._expireTime = res.expire_time } self.render() }).catch(function () { // Fallback: compute from current date if server call fails var durationMap = { yearly: 365, monthly: 30, trial: 7 } var now = new Date() now.setDate(now.getDate() + (durationMap[plan] || 365)) self._expireTime = now.getTime() self.render() }) }, onStartSmart: function () { wx.navigateTo({ url: '/pages/wear-check/wear-check' }) }, onBackHome: function () { wx.switchTab({ url: '/pages/index/index' }) } })