fix: resolve subscription UX issues and add placeholder pages

- Profile: show "未订阅" card when subscription inactive/0 days
- Profile: subscription management navigates to page instead of modal
- Subscribe-plans: data-driven plan cards with mock payment flow
- Subscribe-plans: show current subscription status at top
- Subscribe-prompt: "先使用普通模式" goes to wear-check directly
- Add help and contact placeholder pages
- Fix unbindDevice to work without explicit deviceId
这个提交包含在:
Guoguo
2026-04-29 07:00:36 -07:00
父节点 453f3854bd
当前提交 71e4a487a5
修改 19 个文件,包含 205 行新增46 行删除
@@ -6,6 +6,18 @@
</view>
<view class="page-content">
<!-- Current subscription status -->
<view class="current-sub" wx:if="{{subscription && subscription.status === 'active' && subRemaining > 0}}">
<view class="current-sub-row">
<text class="current-sub-label">当前套餐</text>
<text class="current-sub-value">{{subscription.plan === 'trial' ? '试用' : subscription.plan === 'monthly' ? '月卡' : subscription.plan === 'yearly' ? '年卡' : subscription.plan}}</text>
</view>
<view class="current-sub-row">
<text class="current-sub-label">剩余天数</text>
<text class="current-sub-value">{{subRemaining}}天</text>
</view>
</view>
<view class="page-title">选择订阅套餐</view>
<view class="service-card">
@@ -17,17 +29,11 @@
</view>
<view class="plans">
<view class="plan {{selected === 'monthly' ? 'selected' : ''}}" bindtap="onSelect" data-plan="monthly">
<view class="plan-price">¥99</view>
<view class="plan-name">月卡</view>
<view class="plan-save">约3.3元/天</view>
</view>
<view class="plan {{selected === 'yearly' ? 'selected' : ''}}" bindtap="onSelect" data-plan="yearly">
<view class="plan-tag" wx:if="{{selected !== 'yearly'}}">推荐</view>
<view class="plan-tag plan-tag-active" wx:else>推荐</view>
<view class="plan-price">¥899</view>
<view class="plan-name">年卡</view>
<view class="plan-save">省¥289</view>
<view class="plan {{selected === item.key ? 'selected' : ''}}" wx:for="{{plans}}" wx:key="key" bindtap="onSelect" data-plan="{{item.key}}">
<view class="plan-tag {{selected === item.key ? 'plan-tag-active' : ''}}" wx:if="{{item.tag}}">{{item.tag}}</view>
<view class="plan-price">{{item.priceLabel}}</view>
<view class="plan-name">{{item.name}}</view>
<view class="plan-save">{{item.desc}}</view>
</view>
</view>