Files
fitness-coach/miniprogram/pages/profile/profile.wxml
wm b94eb706ff feat: Kinetic Dark 设计语言 + Lucide 图标迁移 + 首页轻量个性化
- 建立 Lucide 子集 iconfont(49 字形),全站 emoji 替换为 fc-icon 组件
- 重塑 Design Token(冷中性近黑底 + Volt 荧光绿 #B6F24E),消除硬编码颜色
- 首页登录后个性化:我的计划 / 我的收藏 / 今日推荐(纯前端复用现有 API)
- 后端 DEFAULT_EMOJI→Lucide 名,PALETTE 对齐 Kinetic Dark 语义色板
- 修复 person-standing 缺失字形;14 个官方组合 seed emoji 全部映射到现有字形
2026-07-22 21:38:56 +08:00

90 lines
3.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<view class="page">
<navbar title="我的" />
<!-- 未登录 -->
<view wx:if="{{!loggedIn}}" class="login">
<view class="login__logo"><fc-icon name="dumbbell" size="64" color="var(--accent)" /></view>
<view class="login__title">FITCOACH 智能健身教练</view>
<view class="login__sub">登录后同步你的收藏与训练计划</view>
<button class="login__btn" bindtap="onLogin">微信登录</button>
</view>
<!-- 已登录 -->
<view wx:else class="center">
<view class="profile">
<view class="profile__head">
<avatar avatar="{{profile.avatar}}" size="{{120}}" />
<view class="profile__info">
<view class="profile__name">{{profile.nickname || '健身达人'}}</view>
<view class="profile__edit" bindtap="onEdit">编辑 </view>
</view>
</view>
<view class="stats">
<view class="stat" bindtap="goFav">
<view class="stat__n">{{counts.fav}}</view>
<view class="stat__l">收藏动作</view>
</view>
<view class="stat" bindtap="goPlans">
<view class="stat__n">{{counts.plans}}</view>
<view class="stat__l">我的计划</view>
</view>
<view class="stat" bindtap="goFavPlans">
<view class="stat__n">{{counts.favPlans}}</view>
<view class="stat__l">收藏计划</view>
</view>
</view>
</view>
<view class="menu card">
<view class="cell" bindtap="goFav">
<fc-icon class="cell__icon" name="heart" size="24" color="var(--text-2)" />
<text class="cell__label">我的收藏动作</text>
<text class="cell__arrow"></text>
</view>
<view class="cell" bindtap="goPlans">
<fc-icon class="cell__icon" name="folder-open" size="24" color="var(--text-2)" />
<text class="cell__label">我的训练计划</text>
<text class="cell__arrow"></text>
</view>
<view class="cell" bindtap="goFavPlans">
<fc-icon class="cell__icon" name="star" size="24" color="var(--text-2)" />
<text class="cell__label">收藏的官方计划</text>
<text class="cell__arrow"></text>
</view>
<view class="cell" bindtap="goOfficial">
<fc-icon class="cell__icon" name="clipboard-list" size="24" color="var(--text-2)" />
<text class="cell__label">官方训练计划</text>
<text class="cell__arrow"></text>
</view>
</view>
<view class="logout" bindtap="onLogout">退出登录</view>
</view>
<!-- 编辑头像弹层 -->
<view wx:if="{{showEmojiPicker}}" class="sheet" bindtap="onCancelEdit">
<view class="sheet__panel" catchtap="noop">
<view class="sheet__title">选择头像</view>
<scroll-view scroll-x class="emoji-row">
<view
wx:for="{{emojis}}"
wx:key="*this"
class="emoji {{draftAvatar === item ? 'emoji--active' : ''}}"
data-emoji="{{item}}"
bindtap="onPickEmoji">
<fc-icon name="{{item}}" size="48" color="var(--text)" />
</view>
</scroll-view>
<view class="sheet__nick">{{draftNickname || '未命名'}}</view>
<view class="sheet__actions">
<view class="sheet__btn sheet__btn--ghost" bindtap="onCancelEdit">取消</view>
<view class="sheet__btn sheet__btn--gold" bindtap="onConfirmEdit">保存</view>
</view>
</view>
</view>
<view style="height: 160rpx;"></view>
<bottom-nav active="mine" />
</view>