- 3 个并行 agent 各管 5 页,互不重叠命名空间 - 全 App 18 页均 i18n.bind,22 命名空间/400 键中英对齐 - 动态文案(时长/天数/价格/区域)JS 内 i18n.t 计算;区域标签复用 common.regions
80 行
2.1 KiB
JavaScript
80 行
2.1 KiB
JavaScript
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' })
|
|
}
|
|
})
|