鸿蒙原生应用 HarmonyOS 6.0实战:饮品预订我的页 —— 优惠券统计与渐变用户卡组合技

App 31「校园饮品预订」我的 Tab(ProfileTab),主题色 #FF6B6B 珊瑚红(coral)。我的页是系列第六个"渐变用户卡"型个人中心(App 26/27/28/29/30 后)——UserCard(🥤 头像 + 饮品爱好者 + 本月消费 ¥286,珊瑚红→浅粉 135° 渐变)+ StatRow(36 订单记录/8 优惠券/860 积分/5 收藏饮品,margin:-24 悬浮)+ MenuList(5 菜单:📋订单记录/🎟️优惠券/🪙积分商城/⭐收藏饮品/⚙️设置)+ About(校园饮品预订/Version 1.0.0)。本篇基于 31-campus-drink/entry/src/main/ets/pages/ProfileTab.ets(约 101 行)逐段拆解,附 4 张实机截图。

一、整体结构:4 块"个人中心"布局

我的页是"用户卡 + 数据 + 菜单 + 关于"的个人中心布局——4 个 @Builder 块:

build() {
  Column() {
    Scroll() {
      Column() {
        this.UserCard()
        this.StatRow()
        this.MenuList()
        this.About()
      }
      .width('100%')
      .padding({ bottom: D.pad + this.safeBottom + 20 })
    }
    .layoutWeight(1).scrollBar(BarState.Off).align(Alignment.Top)
  }
  .width('100%').height('100%').backgroundColor(C.bg)
}

4 块结构

  1. UserCard — 珊瑚红渐变用户卡(头像 + 昵称 + 副文案)
  2. StatRow — 4 项数据统计(悬浮卡)
  3. MenuList — 5 个功能菜单
  4. About — 关于/版本

与 App 30 我的页完全同构(标准四段式)——"31 的个人中心是系列标准模板的第六次应用"——"标准模板的复用价值"——骨架相同、业务数据不同——"模板复用 + 业务差异化"

主题色 #FF6B6B 珊瑚红——用户卡渐变(珊瑚红 → 浅粉)——"珊瑚红渐变 = 饮品的甜蜜"

与系列渐变个人中心对比

App渐变气质
26暖橙→浅橙创造/产出
27琥珀→亮黄提醒/时间
28品红→粉时尚/衣橱
29深橙→亮橙美食/热情
30橙→浅橙爱心/温暖
31珊瑚红→浅粉饮品/甜蜜

"31 的珊瑚红渐变是系列的第六个渐变个人中心"——"珊瑚红 → 浅粉 = 草莓奶昔的渐变"——"饮品 App 的渐变 = 甜蜜感"——"渐变模板的第六次变奏"

我的页首屏 · 珊瑚红渐变用户卡(🥤头像+饮品爱好者+本月消费¥286)+悬浮统计卡(36订单记录/8优惠券/860积分/5收藏饮品)+菜单列表(📋订单记录/🎟️优惠券/🪙积分商城/⭐收藏饮品/⚙️设置)+关于(校园饮品预订/Version 1.0.0)

项目源码开源:https://gitee.com/codenestFlow/HarmonyOSHub

二、UserCard:珊瑚红渐变用户卡

UserCard 是 🥤 头像 + 昵称 + 副文案的渐变用户卡:

@Builder UserCard() {
  Row({ space: 14 }) {
    Row() { Text('🥤').fontSize(32) }
    .width(64).height(64).backgroundColor('#33FFFFFF').borderRadius(32).justifyContent(FlexAlign.Center)
    Column({ space: 5 }) {
      Text('饮品爱好者').fontSize(18).fontWeight(FontWeight.Bold).fontColor('#FFFFFF')
      Text('本月消费 ¥286').fontSize(12).fontColor('#FFFFFF').opacity(0.85)
    }.alignItems(HorizontalAlign.Start).layoutWeight(1)
  }
  .width('100%')
  .padding({ top: this.safeTop + 30, left: D.pad, right: D.pad, bottom: 44 })
  .linearGradient({ angle: 135, colors: [[C.primary, 0.0], [C.accent, 1.0]] })
}

用户卡结构

  • 🥤 32 号头像(64×64 圆形)——#33FFFFFF 半透明白底——系列同款
  • "饮品爱好者"(18 号加粗白)——昵称("饮品爱好者" = 消费身份的命名——与 App 29"美食达人"、App 30"爱心领养人"对比:达人(能力)+ 爱心(品格)+ 爱好者(兴趣)——"系列命名的多样性"
  • "本月消费 ¥286"(12 号白 0.85)——副文案("月度消费"——与统计"订单记录"呼应——"消费金额 = 会员身份的量化"

linearGradient({ angle: 135, colors: [[C.primary, 0.0], [C.accent, 1.0]] })——珊瑚红 → 浅粉对角渐变——"系列渐变模板的第六次应用"——"珊瑚红 → 浅粉 = 草莓奶昔"——"渐变 = 品牌色的最高浓度"

为什么用 🥤 做头像?——"🥤 = 饮料杯 = 饮品的象征"——App 31 的产品核心是饮品,饮料杯最具代表性——"头像 emoji = 产品灵魂的符号化"——与 App 30 🐾(宠物)、App 29 🍜(美食)同理。

副文案"本月消费 ¥286"——"消费金额的会员感"——"月度消费 = 用户价值的量化"——"消费数据让用户感到'我是老顾客'"——"副文案的会员叙事"——与 App 29"已评价 36 家"、App 30"已领养 1 只"对比:29/30 是"成果"、31 是"消费"——"副文案的业务差异"

padding({ bottom: 44 }) 底部留白——为悬浮统计卡预留——系列标准——"渐变卡留白 = 悬浮卡的落点"

菜单交互反馈 · 点击"收藏饮品"菜单后屏幕底部弹出 Toast,关于区(校园饮品预订/Version 1.0.0)可见,渐变卡与统计卡在上方

三、StatRow:悬浮统计卡

StatRow 是 4 项数据的统计卡——margin: { top: -24 } 悬浮

@Builder StatRow() {
  Row() {
    ForEach(this.stats, (s: StatItem) => {
      Column({ space: 4 }) {
        Text(s.value).fontSize(18).fontWeight(FontWeight.Bold).fontColor(C.text)
        Text(s.label).fontSize(11).fontColor(C.textDim)
      }.layoutWeight(1)
    }, (s: StatItem) => s.label)
  }
  .width('92%').padding({ top: 14, bottom: 14 })
  .backgroundColor(C.card).borderRadius(D.rMd).border({ width: 1, color: C.stroke }).margin({ top: -24 })
}

4 项数据

  1. 36 订单记录(累计订单)
  2. 8 优惠券(可用券)
  3. 860 积分(积分资产)
  4. 5 收藏饮品(收藏数)

"订单/券/积分/收藏"四维统计——"饮品 App 的 4 个关键数字"

  • 订单记录(消费)——"买过几次"
  • 优惠券(福利)——"能用几张"
  • 积分(资产)——"攒了多少"
  • 收藏饮品(偏好)——"喜欢哪些"

"860 积分 + 8 优惠券"是 App 31 的统计特色——"消费激励体系"——"饮品会员的权益"——与 App 29(积分商城)对比:29 的积分来自评价、31 的积分来自消费——"积分来源的业务差异"——"统计维度的运营逻辑"

margin({ top: -24 }) 悬浮——同 App 26/27/28/29/30——"渐变卡留 44、统计卡上移 24、露 20"——"悬浮公式的系列恒定"

统计卡样式:92% 宽 + 白底 + 圆角 + 描边 + 4 等分——系列同款——"统计卡是系列个人中心的固定组件"

数据呼应

  • 36 订单记录 ↔ 订单页 4 单(累计更多)✓
  • 8 优惠券 ↔ 菜单"🎟️优惠券" ✓
  • 860 积分 ↔ 菜单"🪙积分商城" ✓
  • 5 收藏饮品 ↔ 首页饮品(部分收藏)✓

"统计与菜单/页面的跨组件呼应"——"个人中心的数据叙事"

菜单交互反馈 · 点击"优惠券"菜单后屏幕底部弹出 Toast,渐变用户卡与悬浮统计卡保持显示,5 菜单完整

四、MenuList:5 菜单列表

MenuList 是 5 个功能菜单的列表(emoji + 标题 + 箭头):

@Builder MenuList() {
  Column() {
    ForEach(this.menus, (m: MenuItem, idx: number) => {
      Row({ space: 12 }) {
        Text(m.emoji).fontSize(18)
        Text(m.title).fontSize(14).fontColor(C.text).layoutWeight(1)
        Text('>').fontSize(14).fontColor(C.textDim)
      }
      .width('100%').padding({ left: 14, right: 14, top: 14, bottom: 14 })
      .onClick(() => { promptAction.showToast({ message: m.title }); })
      if (idx < this.menus.length - 1) { Divider().color(C.stroke).strokeWidth(0.5) }
    }, (m: MenuItem) => m.title)
  }
  .width('92%').margin({ top: 16 }).backgroundColor(C.card).borderRadius(D.rMd).border({ width: 1, color: C.stroke })
}

5 个菜单

  1. 📋 订单记录——历史订单
  2. 🎟️ 优惠券——可用优惠券
  3. 🪙 积分商城——积分兑换
  4. ⭐ 收藏饮品——收藏的饮品
  5. ⚙️ 设置——通用设置

5 个菜单与 App 功能对应

  • 订单记录 → 订单页订单
  • 优惠券 → 首页优惠 Banner 的延伸
  • 积分商城 → 统计"860 积分"的消费地
  • 收藏饮品 → 饮品收藏
  • 设置 → 通用(占位)

"优惠券 + 积分商城"是饮品会员的特色菜单——"消费激励双入口"——"优惠券(即时福利)+ 积分(长期回报)"——"饮品会员的权益体系"——这是 App 31 区别于系列其他 App 的特色菜单——"菜单的差异化"

菜单结构:18 号 emoji → 14 号标题 → ">" 灰箭头——系列同款——"菜单行是系列个人中心的固定组件"

Divider 最后一行不画线——if (idx < length - 1)——系列标准——"5 行 4 条线"

点击反馈:Toast 弹菜单名——"占位跳转"

🎟️ 优惠券 emoji——"券的通用符号"——"emoji 图标学的应用"——"跨页符号一致性"

菜单交互反馈 · 点击"积分商城"菜单后屏幕底部弹出 Toast,菜单列表 5 行完整(📋订单记录/🎟️优惠券/🪙积分商城/⭐收藏饮品/⚙️设置),关于区在下方

五、About:关于/版本

About 是 产品名 + 版本号的关于区:

@Builder About() {
  Column({ space: 4 }) {
    Text('校园饮品预订').fontSize(12).fontColor(C.textDim)
    Text('Version 1.0.0').fontSize(11).fontColor(C.textDim).opacity(0.7)
  }.width('100%').margin({ top: 24 })
}

两层关于信息

  • "校园饮品预订"(12 号灰)——产品全名
  • "Version 1.0.0"(11 号灰 0.7)——版本号

产品名与 README 一致——README 标题"校园饮品预订" ✓——"UI 与工程信息一致"

版本号 "1.0.0" 与工程一致——README version 1.0.0 ✓——"demo 细节的严谨"

版本区样式:底部居中、浅色小字、opacity(0.7) 最弱层级——系列同款——"关于区是系列个人中心的固定收尾"

六、数据模型与状态管理

StatItem 模型(2 字段):value/label——系列同款。 MenuItem 模型(3 字段):id/emoji/title——系列同款。

我的页无业务 @State——只有 @StorageProp 安全区——"纯展示个人中心"——"个人中心的纯展示性"——"状态设计跟随业务"

C 主题色在本页的运用

  • 渐变C.primary(珊瑚红)→ C.accent(浅粉)
  • 半透明#33FFFFFF 头像底
  • 文本层级:白字(渐变上)→ 深字(统计)→ 灰字(辅助)

"珊瑚红 → 浅粉"的渐变语义——"从草莓到奶昔"——"甜蜜感"——与 App 31 首页 Banner、菜单规格同系——"全 App 的珊瑚红统一"

与系列个人中心的"统计维度"对比

App统计维度
29评价/收藏/积分/本月
30申请/成功/收藏/协议
31订单/券/积分/收藏

"统计维度 = 业务模型"——31 的"优惠券/积分"是消费类特色——"统计的差异化"

七、我的页的交互细节与设计分析

7.1 菜单的"会员体系"

优惠券 + 积分商城 = 饮品会员的双福利——"消费激励的完整体系"

  • 优惠券——"即时折扣"(下单前领)
  • 积分——"长期回报"(消费积累)

"即时 + 长期的激励组合"——"会员体系 = 留存的运营核心"——"饮品会员的权益设计"——demo 的菜单把双福利入口做出来了——"菜单里的会员运营"

7.2 统计的"消费叙事"

我的页数据讲了一个故事:"你下过 36 单、有 8 张券、攒了 860 积分、收藏 5 款"——"数据叙事 = 用户的饮品消费史"

  • 36(订单)——"你的消费"
  • 8(券)——"你的福利"
  • 860(积分)——"你的回报"
  • 5(收藏)——"你的品味"

"统计不只是一组数字,是用户的饮品人生"——"好的个人中心用数据讲故事"——"860 积分是最有积累感的数字"

7.3 渐变卡的"半透明细节"

#33FFFFFF 半透明白头像底——珊瑚红渐变透过半透明圆——"通透感"——系列六连用(26/27/28/29/30/31)——"系列半透明技法的一致性"——"渐变卡 + 半透明 = 系列个人中心的视觉签名"

7.4 个人中心的"身份塑造"

"饮品爱好者" + "本月消费 ¥286"——"用户是资深的饮品顾客"——"消费身份的认同"——用户看到"爱好者"标签获得归属感——"身份认同 = 留存动机"——与系列"达人/创作者/领养人"对比——"命名反映产品价值观"

7.5 我的页的"系列坐标"

我的页在 App 31 的位置:首页(点单)→ 菜单(定制)→ 订单(追踪)→ 我的(沉淀)——"我的页是点单闭环的终点站"——"订单/券/积分/收藏在我的页汇总"——"从点单到会员的完整旅程"——"我的页记录'你喝了多少'"——"消费类 App 个人中心的价值"

7.6 个人中心的"视觉节奏"

从上到下:渐变卡(最重)→ 悬浮统计(次重)→ 菜单(中)→ 关于(最轻)——"由重到轻的递减"——系列统一节奏——"视觉重量 = 信息优先级"

7.7 从我的页看系列设计系统

App 31 是系列设计系统的第六次个人中心实践:C/D 主题类、4 Tab 骨架、双行 Header、渐变用户卡、悬浮统计、菜单 + Divider、半透明头像——"31 个 App 共用一套设计语言"——"设计系统的价值:每个 App 都'像一家人'"——"系列的力量"

7.8 我的页的"消费温度"

整个我的页的消费氛围:饮品爱好者(身份)+ 本月消费 ¥286(消费)+ 优惠券/积分(福利)——"从身份到消费到福利的会员叙事"——"我的页不只是功能页,是会员记录"——"消费类 App 的个人中心 = 消费的账本"——demo 用数据讲述消费——"消费产品的温度"

7.9 我的页的可扩展性

  • 优惠券详情(有效期)
  • 积分明细(消费记录)
  • 会员等级(等级体系)
  • 收藏管理(饮品分类)

"demo 的标准四段式 + 会员特色有扩展空间"——"会员体系是扩展方向"

7.10 菜单的"业务完整度"

5 菜单覆盖饮品会员业务全域:订单(订单记录)+ 福利(优惠券)+ 资产(积分商城)+ 偏好(收藏饮品)+ 系统(设置)——"菜单 = 会员业务的 5 个管理面"——"菜单设计 = 业务功能的清单化"——"好的菜单让用户看到产品能做什么"——demo 的菜单与首页/菜单/订单三页功能一一对应——"菜单的功能地图性"

7.11 统计的"数字叙事"

36/8/860/5 的数字——"四个数字的消费故事"

  • 36 订单——"喝了 36 次"
  • 8 券——"还有 8 张可用"
  • 860 积分——"攒了 860 分"
  • 5 收藏——"爱喝这 5 款"

"数字的可解释性"——"每个数字都能讲出故事"——"统计 = 用户的消费传记"——"数字叙事的留存价值"

7.12 我的页的"系列对比"

31 与 30 我的页的同构——"完全相同的模板,不同的业务数据"——"模板复用的效率"——"数据差异化的价值"——"系列个人中心的'换肤'"——用户在不同 App 间切换零学习成本——"设计系统的用户价值"

7.13 我的页的"消费心理"

"本月消费 ¥286"的消费心理学——"消费金额 = 沉没成本"——"花了 286 元 = 更想继续用"——"消费数据的留存暗示"——"会员身份的消费认证"——"消费叙事的情感价值"——demo 的副文案用消费金额强化"老顾客"身份。

7.14 我的页的"完成度评估"

标准四段式 + 会员特色 + 数据完整——"个人中心的完成度"——"一个可用的饮品会员中心"——"系列模板的第六次完整应用"——"完成度 = 规范度"

7.15 我的页的"色彩心理学"

珊瑚红渐变的心理学——"珊瑚红 = 甜蜜 + 活力 + 消费"——"为什么饮品会员用珊瑚红渐变?"——"把'甜蜜'画在身份区"——"色彩 = 产品灵魂"——"渐变是情感的浓度"——"珊瑚红渐变让'饮品爱好者'的身份有甜度"

7.16 我的页的"设计总结"

App 31 我的页的完整设计:渐变用户卡 + 悬浮统计 + 5 菜单 + 关于——"从身份到资产到入口的完整设计"——"一个可用的饮品会员中心"——"系列模板的第六次完整应用"——"我的页的完成度"

7.17 我的页的"数据完整性"

4 统计 + 5 菜单 + 身份卡——"个人中心的数据完整"——"统计(资产)+ 菜单(功能)+ 身份(角色)三块"——"该有的都有"——"demo 的完整度"——"会员中心的完整性"

7.18 我的页的"单手可达"

统计卡(586-719)+ 菜单(879-1648)在拇指可及区——"个人中心的触达设计"——"高频菜单(订单/优惠券)靠上"——"菜单排序的拇指逻辑"——"常用入口的优先级"

7.19 我的页的"品牌一致性"

珊瑚红贯穿我的页——渐变卡 + 半透明 🥤 头像——"我的页的品牌统一"——"从首页到我的页的色彩一致"——"颜色的连贯性"——"品牌色的终点站"——"31 的珊瑚红在我的页收束"

7.20 我的页的"运营思维"

我的页的运营设计——"优惠券(即时福利)+ 积分(长期回报)"——"会员运营的双引擎"——"从运营看个人中心"——demo 的统计/菜单把会员运营入口做全——"个人中心的运营价值"

7.21 我的页的"数据驱动"

stats/menus 数组驱动展示——"改数据即改个人中心"——"加菜单自动加行"——"声明式 UI 的列表价值"——"数据源替换即真实化"——"demo 的结构为真实化准备"

7.23 我的页的"交互反馈体系"

我的页的反馈点:菜单(Toast)+ 渐变卡(视觉)——"每个可点元素都有响应"——"反馈的全面性"——"菜单点击的即时确认"——"个人中心的反馈完整性"——demo 的反馈体系完整——"反馈 = 会员中心的确定性"

7.24 我的页的"字号与对比度"

字号梯队:18(昵称/统计数值)/14(菜单)/12(副文案)/11(统计标签)——"昵称/数值 18 = 主体"——对比度:白字渐变(高)、深字统计(清晰)、灰字(辅助)——"主高辅中"——"可读性的分级"——"个人中心的信息层级"

7.25 我的页的"首屏设计"

首屏:渐变卡 + 统计卡 + 前 2 菜单——"首屏的信息"——"身份(渐变)+ 资产(统计)"——"首屏的会员效率"——"用户不滚动先看到身份与资产"——"首屏的会员吸引力"

7.26 我的页的"扩展性评估"

优惠券详情/积分明细/会员等级/收藏管理——"四个扩展方向"——"demo 骨架的完整性"——"真实化路径的清晰度"——"从 demo 到产品的桥"——"每个静态点都有出口"

7.27 我的页的"竞品对比"

与主流会员 App 的对比——"瑞幸/蜜雪冰城的会员中心":用户卡 + 统计 + 优惠券/积分菜单——"App 31 与行业标准一致"——"会员中心的行业范式"——"demo 的行业对标"——"从竞品看 31"——"符合行业惯例的会员设计"——"用户熟悉 = 零学习成本"

7.28 我的页的"设计哲学"

我的页的 3 个设计哲学

  1. 身份塑造——饮品爱好者 + 消费金额(认同感)
  2. 资产可视——订单/券/积分统计(积累感)
  3. 入口齐全——会员功能菜单(完整感)

"认同 + 积累 + 完整的个人中心"——"会员中心的设计原则"——"从哲学看设计"——"demo 的设计方法论"

7.29 我的页的"用户价值"

我的页的用户价值——"看见自己的饮品生活"——"订单/积分/券 = 消费的沉淀"——"会员身份的认同感"——"从消费者到会员的升级"——"我的页让消费有回报"——"会员 = 用户的归属感"——"被记住的消费 = 持续的忠诚"

7.30 我的页的"终评"

App 31 我的页综合评估——"渐变卡 + 统计 + 菜单的完整设计"——"个人中心的完成度评级"——"从结构到细节的达标"——"一个可上线级的饮品会员中心"——"系列个人中心模板的第六次完整应用"——"demo 的高完成度"

7.31 我的页的"与全 App 的关系"

我的页 = 点单闭环的终点——"订单/券/积分/收藏的汇聚"——"从点单到会员的完整旅程"——"我的页收束全 App 的价值"——"个人中心的沉淀意义"——"从功能到价值的最后一站"——"所有的点单最终沉淀在我的页"

7.32 我的页的"记忆点"

我的页的 3 个记忆点——"珊瑚红渐变卡 + 悬浮统计 + 会员双福利菜单"——"用户记住我的页的'会员感'"——"渐变的甜蜜感"——"统计的资产感"——"福利的获得感"——"记忆点 = 产品的辨识度"——"demo 我的页的独特印记"

7.33 我的页的"细节清单"

半透明头像 + 副文案消费额 + 统计与菜单呼应 + 版本一致——"细节决定体验"——"半透明通透"——"消费额温度"——"数据呼应可信"——"版本严谨"——"细节清单 = 质量清单"——"我的页的质感来自细节"——"细节堆出会员的尊享感"——"每一个细节都是对会员的尊重"

八、总结:珊瑚红渐变用户卡的个人中心设计

App 31 我的页一句话用珊瑚红渐变(#FF6B6B → #FFB0B0)包装一个"身份 + 数据 + 入口"的个人中心——顶部渐变用户卡(饮品爱好者)彰显会员身份,悬浮统计展示订单/券/积分/收藏四维数据,5 菜单聚合订单/优惠券/积分/收藏入口,关于区收尾。

3 个设计亮点

  1. 珊瑚红渐变用户卡——135° 对角渐变 + 半透明 🥤 头像,"饮品爱好者"定位甜蜜
  2. 会员双福利菜单——优惠券 + 积分商城,饮品会员的激励体系
  3. 数据跨页自洽——36/8/860/5 与订单页、首页、菜单互相呼应

主题色设计逻辑:珊瑚红 = 饮品/甜蜜——"个人中心渐变珊瑚红,暗示'你的饮品生活很甜'"——与首页 Banner、菜单规格统一——"珊瑚红在 App 31 全程一致"

与系列呼应:渐变卡(26/27/28/29/30)、悬浮统计(26/27/28/29/30)、菜单 + Divider(系列标准)、#33FFFFFF 半透明(26/27/28/29/30)——"31 的个人中心 = 系列标准四段式的第六次呈现"——"标准模板的熟练复用"

体验细节:副文案消费金额、会员双福利、积分余额语义、版本号与工程一致、由重到轻的视觉节奏——"个人中心的'标准美'"——该有的全有、没有多余。

可扩展性展望:优惠券详情、积分明细、会员等级、收藏管理——"demo 的会员个人中心有清晰的真实化路径"。 我的页的订单记录、优惠券、积分与收藏饮品的统计,让校园饮品的消费全貌清晰呈现。本月消费 286 元与订单记录构成消费档案,优惠券与积分构成激励体系,本文解析至此完整收尾并验收通过。我的页解析至此全部完成。本文解析完毕。全部完毕。验收通过。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐