const { request, ensureLogin, cents, clientRequestId, } = require('../../utils/api.js') Page({ data: { loading: false, errorMessage: '', successMessage: '', plans: [], selectedPlanId: '', rechargeOrder: null, }, onLoad() { this.loadPlans() }, async loadPlans() { this.setData({ loading: true, errorMessage: '', successMessage: '' }) try { await ensureLogin() const response = await request('/recharge/plans') const plans = (response.data || []).map((item) => ({ ...item, payText: cents(item.payAmountCents), giftText: cents(item.giftAmountCents), totalText: cents(Number(item.payAmountCents || 0) + Number(item.giftAmountCents || 0)), })) this.setData({ plans, selectedPlanId: plans[0]?.planId || '', }) } catch (error) { this.setData({ errorMessage: error.message || '充值计划加载失败' }) } finally { this.setData({ loading: false }) } }, selectPlan(event) { this.setData({ selectedPlanId: event.currentTarget.dataset.planId || '', rechargeOrder: null, errorMessage: '', successMessage: '', }) }, async createRechargeOrder() { if (!this.data.selectedPlanId) { this.setData({ errorMessage: '请选择充值计划' }) return } const plan = this.data.plans.find((item) => item.planId === this.data.selectedPlanId) await this.withRequest(async () => { const response = await request('/recharge/orders', { method: 'POST', data: { planId: this.data.selectedPlanId, storeId: plan?.storeId || null, clientRequestId: clientRequestId('miniapp-recharge'), }, }) this.setData({ rechargeOrder: { ...response.data, payText: cents(response.data.payAmountCents), giftText: cents(response.data.giftAmountCents), }, successMessage: '充值单已创建', }) }) }, async withRequest(work) { this.setData({ loading: true, errorMessage: '', successMessage: '' }) try { await ensureLogin() await work() } catch (error) { this.setData({ errorMessage: error.message || '充值操作失败' }) } finally { this.setData({ loading: false }) } }, })