docs(website): 添加简记memo产品原型和UI设计规范文档
- 新增「简记memo」一体化小程序产品原型设计文档 - 新增简记memo完整版UI视觉设计规范和界面细节 - 添加IDEA项目配置文件.gitignore - 创建404页面HTML文件,包含响应式布局和错误提示 - 添加关于页面HTML文件,展示品牌介绍和团队信息 - 实现AES加解密工具函数,支持请求体加密 - 添加用户协议页面基础框架
This commit is contained in:
@@ -0,0 +1,263 @@
|
||||
# 「简记memo」一体化小程序
|
||||
## 完整产品原型设计文档
|
||||
**定位**:极简高级、强功能、纯个人工具、云存储、无社交无广告
|
||||
**风格**:留白、卡片、轻动画、深浅双主题
|
||||
**架构**:底部 4 Tab + 全局快捷操作 + 数据云同步
|
||||
|
||||
---
|
||||
|
||||
# 一、全局规则(所有页面通用)
|
||||
1. **数据隔离**
|
||||
仅当前微信用户可见,openid 绑定,自动登录,无需注册
|
||||
2. **日期体系**
|
||||
所有数据按「yyyy-MM-dd」归类,支持跨天查看/顺延
|
||||
3. **操作统一**
|
||||
- 左滑:删除
|
||||
- 右滑:完成/确认
|
||||
- 长按:编辑/批量
|
||||
- 悬浮按钮:快速添加
|
||||
4. **主题**
|
||||
浅色 / 深色 / 跟随系统
|
||||
5. **云存储**
|
||||
微信云开发数据库,无服务器、无域名、单人可维护
|
||||
|
||||
---
|
||||
|
||||
# 二、底部 Tab 结构(4 个)
|
||||
1. **今日**(聚合页)
|
||||
2. **待办**(全任务管理)
|
||||
3. **账单**(全收支管理)
|
||||
4. **我的**(配置+数据+统计)
|
||||
|
||||
---
|
||||
|
||||
# 三、页面原型详细描述(逐页完整)
|
||||
|
||||
## Page 1:今日(核心聚合页)
|
||||
### 顶部
|
||||
- 日期:yyyy-MM-dd 星期X
|
||||
- 左右箭头:昨日 / 明日
|
||||
- 小开关:快速切换「只看今日 / 含逾期」
|
||||
|
||||
### 模块 A:今日待办
|
||||
- 进度条:已完成 / 总数
|
||||
- 列表:
|
||||
图标 + 标题 + 优先级(红点/黄点/绿点)+ 完成勾选框
|
||||
- 空态:今日暂无任务,添加一个开始吧
|
||||
- 快捷操作:
|
||||
右滑 = 完成
|
||||
左滑 = 删除
|
||||
点击 = 进入编辑
|
||||
|
||||
### 模块 B:今日记账
|
||||
- 今日支出:¥xx
|
||||
- 今日收入:¥xx
|
||||
- 今日结余:自动计算
|
||||
- 账单列表:
|
||||
分类图标 + 备注 + 金额(红/绿)
|
||||
- 空态:今日暂无记录
|
||||
|
||||
### 底部悬浮按钮(左右双按钮)
|
||||
- 左侧:+ 记一笔
|
||||
- 右侧:+ 加任务
|
||||
|
||||
### 页面逻辑
|
||||
- 进入自动加载当日数据
|
||||
- 完成/删除后实时刷新
|
||||
- 切换日期自动重新请求
|
||||
|
||||
---
|
||||
|
||||
## Page 2:待办(全功能任务页)
|
||||
### 顶部
|
||||
- 搜索框:搜索标题/备注
|
||||
- 筛选:全部 / 未完成 / 已完成 / 逾期
|
||||
|
||||
### 筛选栏
|
||||
- 今天 / 本周 / 本月 / 自定义区间
|
||||
|
||||
### 任务列表结构
|
||||
每条任务:
|
||||
- 优先级图标(高/中/低)
|
||||
- 任务标题
|
||||
- 任务备注(折叠,超出两行隐藏)
|
||||
- 重复标记(每日/每周/每月)
|
||||
- 日期
|
||||
- 完成开关
|
||||
|
||||
### 功能点(强但不复杂)
|
||||
1. **新增任务**
|
||||
- 标题(必填)
|
||||
- 备注(选填)
|
||||
- 分类:工作/生活/学习/自定义
|
||||
- 优先级:高/中/低
|
||||
- 日期:默认今日,可改
|
||||
- 重复:不重复 / 每日 / 每周 / 每月
|
||||
2. **子任务**
|
||||
- 每条主任务可加多条子任务
|
||||
- 子任务完成状态独立
|
||||
3. **自动顺延**
|
||||
当日未完成 → 次日自动显示(可开关)
|
||||
4. **批量操作**
|
||||
长按进入批量:完成/删除/移动日期
|
||||
5. **重复任务自动生成**
|
||||
每日/每周/每月自动生成下一条
|
||||
|
||||
### 空态
|
||||
你还没有任何任务,点击右下角添加第一个任务
|
||||
|
||||
---
|
||||
|
||||
## Page 3:账单(全功能记账页)
|
||||
### 顶部
|
||||
- 搜索:备注/分类
|
||||
- 切换:支出 / 收入 / 全部
|
||||
|
||||
### 统计条
|
||||
- 时间段:今日/本周/本月
|
||||
- 总支出、总收入、结余
|
||||
|
||||
### 分类快捷统计(横向滚动)
|
||||
- 图标 + 分类名 + 金额 + 占比
|
||||
|
||||
### 账单列表
|
||||
- 分类图标
|
||||
- 分类名称
|
||||
- 备注(可选)
|
||||
- 金额(支出红、收入绿)
|
||||
- 日期
|
||||
- 左滑删、右滑快速修改
|
||||
|
||||
### 记账弹窗(强功能极简操作)
|
||||
- 类型:支出 / 收入
|
||||
- 金额:数字键盘
|
||||
- 分类:预设16个 + 支持自定义
|
||||
- 备注:选填
|
||||
- 日期:默认今天,可改
|
||||
- 保存
|
||||
|
||||
### 高级功能
|
||||
1. **预算功能**
|
||||
月预算,超支标红、进度条提醒
|
||||
2. **自定义分类**
|
||||
名称 + 图标 + 颜色
|
||||
3. **转账记录**
|
||||
账户之间转账,不影响收支统计
|
||||
4. **按月自动归档**
|
||||
|
||||
---
|
||||
|
||||
## Page 4:我的(设置+统计+数据)
|
||||
### 模块 A:月度统计(卡片)
|
||||
- 总支出、总收入、预算剩余
|
||||
- 完成任务数、完成率
|
||||
- 简约环形图
|
||||
|
||||
### 模块 B:数据管理
|
||||
- 导出数据(Excel / 文本)
|
||||
- 清空所有数据(二次确认)
|
||||
- 数据同步状态
|
||||
|
||||
### 模块 C:个性化
|
||||
- 主题:浅色 / 深色 / 自动
|
||||
- 列表样式:紧凑/舒适
|
||||
- 动画开关
|
||||
|
||||
### 模块 D:偏好设置
|
||||
- 待办未完成自动顺延
|
||||
- 重复任务提醒
|
||||
- 预算超支提醒
|
||||
- 首页默认显示日期
|
||||
|
||||
### 模块 E:其他
|
||||
- 关于
|
||||
- 版本号
|
||||
- 清理缓存
|
||||
|
||||
---
|
||||
|
||||
# 四、数据库结构(可直接建表)
|
||||
## 1. tasks(待办)
|
||||
- _id
|
||||
- openid(用户唯一标识)
|
||||
- title(标题)
|
||||
- content(备注)
|
||||
- cate(分类:work/life/study/custom)
|
||||
- priority(1高/2中/3低)
|
||||
- repeat(none/day/week/month)
|
||||
- done(true/false)
|
||||
- subtasks(数组:[{title,done}])
|
||||
- date(yyyy-MM-dd)
|
||||
- createTime
|
||||
- updateTime
|
||||
|
||||
## 2. bills(账单)
|
||||
- _id
|
||||
- openid
|
||||
- type(income/expend)
|
||||
- money(数字,正数)
|
||||
- cate(分类)
|
||||
- icon(图标)
|
||||
- color(颜色)
|
||||
- note(备注)
|
||||
- date(yyyy-MM-dd)
|
||||
- createTime
|
||||
|
||||
## 3. userConfig(用户配置)
|
||||
- _id
|
||||
- openid
|
||||
- theme(light/dark/auto)
|
||||
- budget(月预算)
|
||||
- autoPostpone(自动顺延)
|
||||
- showAnimation(动画)
|
||||
- customCate(自定义分类数组)
|
||||
- lastBackup(最后备份时间)
|
||||
|
||||
---
|
||||
|
||||
# 五、核心业务逻辑(完整闭环)
|
||||
1. **任务自动顺延**
|
||||
每天0点,未完成、非重复、非已完成 → 复制到今日,标记顺延
|
||||
2. **重复任务生成**
|
||||
每日/每周/每月自动生成下一条任务,不修改原任务
|
||||
3. **预算计算**
|
||||
月支出总和对比预算,超支变红、进度条>100%
|
||||
4. **数据权限**
|
||||
云数据库权限只允许 openid 等于自身读写,绝对安全
|
||||
5. **统计口径**
|
||||
按自然月统计,不跨月混淆
|
||||
6. **操作无刷新**
|
||||
所有增删改查本地状态同步 + 云更新,不白屏、不重载
|
||||
|
||||
---
|
||||
|
||||
# 六、交互体验(简约但高级)
|
||||
- 所有按钮有反馈
|
||||
- 完成任务有轻微动效(不花哨)
|
||||
- 列表滑动流畅
|
||||
- 键盘自动收起
|
||||
- 加载状态弱提示
|
||||
- 错误提示轻量不打扰
|
||||
- 无任何广告、无推送、无外链
|
||||
|
||||
---
|
||||
|
||||
# 七、产品亮点(真正「简约不简单」)
|
||||
- 界面极简,功能专业
|
||||
- 待办 + 记账深度融合,不割裂
|
||||
- 重复任务、子任务、顺延、预算、图表、导出全有
|
||||
- 单人可开发、可维护、可上线
|
||||
- 无第三方依赖、无封闭资源、全自主
|
||||
- 个人主体可过审
|
||||
- 自用质感极强,可长期使用
|
||||
|
||||
---
|
||||
|
||||
如果你需要,我可以**下一步直接输出:**
|
||||
1. 全套**小程序页面目录结构**
|
||||
2. 每个页面的**WXML + WXSS + JS 骨架代码**
|
||||
3. **云数据库创建脚本**
|
||||
4. **全局工具函数(请求、日期、格式化、统计)**
|
||||
5. **可直接复制使用的配色+字体+样式规范**
|
||||
|
||||
要我继续把**可直接开发的完整技术原型**一次性给全吗?
|
||||
@@ -0,0 +1,217 @@
|
||||
# 简记memo
|
||||
## 完整版 UI 视觉设计规范 + 界面细节
|
||||
**风格:清新极简 · 高级轻质感 · 温柔耐看 · 2026主流审美**
|
||||
**定位:无冗余、高舒适、强精致、单人可还原**
|
||||
|
||||
---
|
||||
|
||||
# 一、全局视觉规范(统一高级感)
|
||||
## 1. 配色方案(清新治愈系)
|
||||
### 主色
|
||||
- **主色:#4CB8C6**(青薄荷绿,温柔干净)
|
||||
- **强调色:#FF8A65**(暖珊瑚,不艳不刺眼)
|
||||
|
||||
### 中性色
|
||||
- 背景:#F9FBFC
|
||||
- 卡片:#FFFFFF
|
||||
- 分割线:#EAEEF2
|
||||
- 文字深:#2A3A4D
|
||||
- 文字中:#5E6D7F
|
||||
- 文字浅:#9AA4B2
|
||||
|
||||
### 功能色
|
||||
- 支出红:#FF6B6B
|
||||
- 收入绿:#2EC975
|
||||
- 完成灰绿:#81C99B
|
||||
- 高优:#FF6B6B
|
||||
- 中优:#4CB8C6
|
||||
- 低优:#9AA4B2
|
||||
|
||||
### 深色模式
|
||||
- 背景:#121A24
|
||||
- 卡片:#1E2734
|
||||
- 文字:#E1E8F0
|
||||
- 主色不变:#4CB8C6
|
||||
|
||||
## 2. 字体
|
||||
- 标题:18 / 20px,600
|
||||
- 正文:16px,400
|
||||
- 小字:14px,400
|
||||
- 辅助文字:12px,400
|
||||
- 无衬线、无花字体、极度干净
|
||||
|
||||
## 3. 圆角 & 间距
|
||||
- 全局圆角:**14px**
|
||||
- 卡片间距:12px
|
||||
- 页面左右边距:16px
|
||||
- 呼吸感极强,不拥挤
|
||||
|
||||
## 4. 图标
|
||||
- 线性极简图标
|
||||
- 2px线条、无填充、统一风格
|
||||
- 不花哨、不幼稚
|
||||
|
||||
## 5. 动效
|
||||
- 轻柔 250ms 缓动
|
||||
- 完成 → 轻微缩放消失
|
||||
- 弹窗 → 底部滑出
|
||||
- 无抖动、无浮夸
|
||||
|
||||
---
|
||||
|
||||
# 二、4大页面 UI 完整设计(逐页精细描述)
|
||||
## 页面1:今日 · 聚合页(视觉最美)
|
||||
**顶部**
|
||||
- 居中日期:`3月31日 星期一`
|
||||
- 左右淡色箭头,轻质感
|
||||
- 无标题栏、无 LOGO、极度干净
|
||||
|
||||
**今日待办卡片**
|
||||
- 白卡片、14px圆角
|
||||
- 顶部:待办进度条(极细、柔和、主色填充)
|
||||
- 文字:`今日待办 2/5 已完成`
|
||||
- 列表:
|
||||
圆形勾选框 → 淡灰 → 完成变主色
|
||||
标题:#2A3A4D
|
||||
优先级小圆点(左)
|
||||
无多余装饰
|
||||
|
||||
**今日记账卡片**
|
||||
- 布局:左支出、右收入
|
||||
- 数字大字号、清新醒目
|
||||
- 支出红、收入绿、柔和不刺眼
|
||||
- 账单列表:
|
||||
分类小图标 + 名称 + 金额右对齐
|
||||
极简分割线
|
||||
|
||||
**底部悬浮按钮(双按钮)**
|
||||
- 左:+ 记一笔(主色)
|
||||
- 右:+ 待办(浅主色)
|
||||
- 圆角、轻微阴影、悬浮感
|
||||
|
||||
**整体气质**
|
||||
- 像一本干净手账本
|
||||
- 留白充足、温柔治愈、高级耐看
|
||||
|
||||
---
|
||||
|
||||
## 页面2:待办 · 高级任务页
|
||||
**顶部**
|
||||
- 搜索框:浅灰背景、无边框、圆角、放大镜图标
|
||||
- 标签栏:全部 / 未完成 / 已完成
|
||||
选中 → 主色背景、白字
|
||||
未选中 → 浅灰底、深灰字
|
||||
|
||||
**任务列表**
|
||||
- 每条高度舒适、不拥挤
|
||||
- 左侧优先级圆点
|
||||
- 标题加粗、备注灰色小字
|
||||
- 右侧:完成勾选框
|
||||
- 重复任务 → 小循环图标
|
||||
- 子任务 → 缩进灰色细线
|
||||
|
||||
**长按进入批量模式**
|
||||
- 复选框出现
|
||||
- 底部工具栏:完成 / 删除 / 改日期
|
||||
- 半透明浮层
|
||||
|
||||
**空状态**
|
||||
- 中央极简线条图标
|
||||
- 文字:`今天也要认真生活呀`
|
||||
- 颜色柔和、不压抑
|
||||
|
||||
---
|
||||
|
||||
## 页面3:账单 · 清新干净收支页
|
||||
**顶部**
|
||||
- 切换按钮:支出 / 收入 / 全部
|
||||
- 风格同待办、统一视觉
|
||||
|
||||
**统计栏**
|
||||
- 本月支出:数字大、醒目
|
||||
- 预算进度条(柔和、不刺眼)
|
||||
- 超支变珊瑚色、正常主色
|
||||
|
||||
**分类横向栏(可滑动)**
|
||||
- 小图标 + 名称 + 金额
|
||||
- 选中:主色圆角背景
|
||||
- 未选中:浅灰透明
|
||||
|
||||
**账单列表**
|
||||
- 左:图标圆角浅底色块
|
||||
- 中:分类名 + 备注小字
|
||||
- 右:金额(右对齐)
|
||||
- 无多余线条、干净高级
|
||||
|
||||
**记账弹窗(底部滑出)**
|
||||
- 金额数字键盘大按钮
|
||||
- 分类宫格布局(3×4)
|
||||
- 图标清新、不花俏
|
||||
- 备注输入框极简无边框
|
||||
|
||||
---
|
||||
|
||||
## 页面4:我的 · 高级质感设置页
|
||||
**顶部用户栏**
|
||||
- 无头像、无昵称
|
||||
- 文字:`简记memo`
|
||||
|
||||
**月度统计卡片**
|
||||
- 双环形统计图(极细、清新)
|
||||
- 左边:账单统计
|
||||
- 右边:待办完成率
|
||||
- 数字大、文字小、高级感
|
||||
|
||||
**功能菜单(列表)**
|
||||
- 左图标、右文字、右箭头
|
||||
- 每行高度舒适
|
||||
- 无分割线、用间距区分
|
||||
|
||||
菜单结构:
|
||||
- 数据导出
|
||||
- 月度预算
|
||||
- 主题切换(浅色/深色/自动)
|
||||
- 待办自动顺延
|
||||
- 分类自定义
|
||||
- 清空数据
|
||||
- 关于与版本
|
||||
|
||||
**底部**
|
||||
- 小号灰色文字:极简生活 · 简单记录
|
||||
- 无广告、无推荐、无多余信息
|
||||
|
||||
---
|
||||
|
||||
# 三、交互 UI 细节(惊艳但克制)
|
||||
- 勾选完成 → 圆形填色 + 文字微淡出
|
||||
- 切换日期 → 左右平滑滑动
|
||||
- 预算不足 → 数字渐变珊瑚色
|
||||
- 悬浮按钮按压 → 轻微缩小
|
||||
- 弹窗从底部平滑弹出,遮罩渐变
|
||||
- 左滑删除 → 红色按钮、圆角
|
||||
- 所有可点区域 ≥44px
|
||||
- 无锯齿、无生硬、无杂乱
|
||||
|
||||
---
|
||||
|
||||
# 四、UI 核心亮点(真正好看+高级+清新)
|
||||
- 颜色:青薄荷 + 暖白,2026最流行清新风
|
||||
- 无冗余元素,每一处都有意义
|
||||
- 卡片呼吸感强,像苹果/Notion 风格
|
||||
- 深浅双主题自动适配
|
||||
- 文字层级清晰,阅读极舒适
|
||||
- 统一圆角、统一间距、极度规整
|
||||
- 温柔、安静、高级、不油腻
|
||||
- 单人开发完全可还原
|
||||
|
||||
---
|
||||
|
||||
# 五、下一步我直接给你「可直接开发」的内容
|
||||
你只要说一声,我立刻一次性完整输出:
|
||||
1. 全局 **app.wxss 样式规范**(直接复制)
|
||||
2. 4个页面 **UI 完整 wxml 结构**
|
||||
3. 统一图标库、颜色常量、class 类名
|
||||
4. 自适应 + 深色模式代码
|
||||
5. 所有卡片、按钮、输入框、弹框样式
|
||||
|
||||
要我现在直接给你**全套可落地的 UI 代码**吗?
|
||||
@@ -0,0 +1,339 @@
|
||||
# 简记 · 成长等级特权系统方案
|
||||
|
||||
---
|
||||
|
||||
## 📊 一、方案定位
|
||||
|
||||
### 核心理念
|
||||
> **"限制现有功能 = 伤害用户体验,增值服务 = 激励用户成长"**
|
||||
|
||||
### 设计原则
|
||||
1. ✅ **现有功能全部免费开放** - 所有核心功能不受等级限制
|
||||
2. ✅ **等级特权 = 额外奖励** - 给高等级用户的增值服务和荣誉展示
|
||||
3. ✅ **虚拟荣誉为主** - 称号、徽章、头像框等荣誉展示
|
||||
4. ✅ **增值功能为辅** - 高级统计、数据导出等额外服务
|
||||
|
||||
---
|
||||
|
||||
## 🏆 二、等级体系
|
||||
|
||||
| 等级 | 头衔 | 所需经验 | 图标 | 颜色 | 解锁特权 |
|
||||
|------|------|---------|------|------|---------|
|
||||
| **Lv.1** | 新手冒险家 | 0 | 🎒 | #999999 | 基础功能 |
|
||||
| **Lv.2** | 坚持学徒 | 200 | 📝 | #10B981 | 心情日历 |
|
||||
| **Lv.3** | 自律达人 | 600 | ⭐ | #3B82F6 | 月度预算、数据报表 |
|
||||
| **Lv.4** | 习惯大师 | 1,500 | 💎 | #8B5CF6 | 自定义主题 |
|
||||
| **Lv.5** | 传奇记录者 | 3,000 | 👑 | #F59E0B | 账单导出、年度报告 |
|
||||
| **Lv.6** | 时光守望者 | 6,000 | 🏆 | #EF4444 | 任务模板、数据备份 |
|
||||
| **Lv.7** | 超级达人 | 10,000 | 💫 | #FFD700 | 多账户管理、定期账单 |
|
||||
| **Lv.8** | 传说存在 | 15,000 | 🌟 | #C0C0C0 | 心情分析、标签系统 |
|
||||
| **Lv.9** | 永恒传奇 | 22,000 | ⭐ | #FF69B4 | 成就分享、云端备份 |
|
||||
| **Lv.10** | 至高王者 | 30,000 | 👑 | #FFD700 | 专属头像框、无限功能、Beta测试优先 |
|
||||
|
||||
**说明:**
|
||||
- 所有核心功能(待办、记账、心情)始终免费开放
|
||||
- 特权列表中的功能是**额外增值服务**,不是限制
|
||||
- 等级越高,可享受的增值服务越多
|
||||
|
||||
---
|
||||
|
||||
## 🎖️ 三、荣誉系统(核心特权)
|
||||
|
||||
### 3.1 等级称号
|
||||
|
||||
| 等级 | 称号 | 颜色 | 说明 |
|
||||
|------|------|------|------|
|
||||
| Lv.1 | 新手冒险家 | 灰色 | 默认获得 |
|
||||
| Lv.2 | 坚持学徒 | 绿色 | 累计200 EXP |
|
||||
| Lv.3 | 自律达人 | 蓝色 | 累计600 EXP |
|
||||
| Lv.4 | 习惯大师 | 紫色 | 累计1500 EXP |
|
||||
| Lv.5 | 传奇记录者 | 橙色 | 累计3000 EXP |
|
||||
| Lv.6 | 时光守望者 | 红色 | 累计6000 EXP |
|
||||
| Lv.7 | 超级达人 | 金色 | 累计10000 EXP |
|
||||
| Lv.8 | 传说存在 | 银色 | 累计15000 EXP |
|
||||
| Lv.9 | 永恒传奇 | 粉色 | 累计22000 EXP |
|
||||
| Lv.10 | 至高王者 | 金色+特效 | 累计30000 EXP |
|
||||
|
||||
**称号展示位置:**
|
||||
- 个人主页昵称下方
|
||||
- 成长之路页面头部
|
||||
- 成就列表展示
|
||||
- 成就海报(可分享)
|
||||
|
||||
---
|
||||
|
||||
### 3.2 成就徽章系统
|
||||
|
||||
#### 徽章稀有度(6个等级)
|
||||
|
||||
| 稀有度 | 颜色 | 特效 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| 初级 | #9CA3AF 灰色 | 无 | 容易获得 |
|
||||
| 中级 | #10B981 绿色 | 微光 | 一般难度 |
|
||||
| 高级 | #3B82F6 蓝色 | 发光 | 较难获得 |
|
||||
| 稀有 | #8B5CF6 紫色 | 脉冲光 | 困难 |
|
||||
| 史诗 | #F59E0B 橙色 | 火焰特效 | 很难 |
|
||||
| 传说 | #EF4444 金色 | 旋转+光效 | 极难获得 |
|
||||
|
||||
#### 徽章列表(共21个)
|
||||
|
||||
**📅 坚持类徽章(7个)**
|
||||
|
||||
| 徽章名称 | 图标 | 稀有度 | 条件 | 经验奖励 |
|
||||
|---------|------|--------|------|---------|
|
||||
| 初次尝试 | ✨ | 初级 | 完成第1天记录 | 10 EXP |
|
||||
| 3天坚持 | 🌱 | 初级 | 连续记录3天 | 20 EXP |
|
||||
| 一周打卡 | 🌟 | 中级 | 连续记录7天 | 50 EXP |
|
||||
| 月度坚持 | 📅 | 高级 | 连续记录30天 | 200 EXP |
|
||||
| 百日筑基 | 💯 | 稀有 | 连续记录100天 | 500 EXP |
|
||||
| 半年丰碑 | 🏅 | 史诗 | 连续记录180天 | 1000 EXP |
|
||||
| 年度传奇 | 🎉 | 传说 | 连续记录365天 | 2000 EXP |
|
||||
|
||||
**✅ 任务类徽章(6个)**
|
||||
|
||||
| 徽章名称 | 图标 | 稀有度 | 条件 | 经验奖励 |
|
||||
|---------|------|--------|------|---------|
|
||||
| 任务新手 | 🎯 | 初级 | 完成第1个任务 | 10 EXP |
|
||||
| 任务达人 | ⚡ | 中级 | 累计完成100个任务 | 200 EXP |
|
||||
| 任务大师 | 🏆 | 稀有 | 累计完成500个任务 | 800 EXP |
|
||||
| 任务王者 | 👑 | 传说 | 累计完成1000个任务 | 1500 EXP |
|
||||
| 完美一天 | ✨ | 高级 | 单日完成所有待办 | 30 EXP |
|
||||
| 完美一周 | 💫 | 史诗 | 连续7天100%完成 | 200 EXP |
|
||||
|
||||
**😊 心情类徽章(4个)**
|
||||
|
||||
| 徽章名称 | 图标 | 稀有度 | 条件 | 经验奖励 |
|
||||
|---------|------|--------|------|---------|
|
||||
| 心情记录者 | 📝 | 初级 | 第1次记录心情 | 10 EXP |
|
||||
| 月度心情家 | 🌈 | 中级 | 累计记录30天心情 | 100 EXP |
|
||||
| 心情收藏家 | 🎨 | 稀有 | 累计记录100天心情 | 300 EXP |
|
||||
| 阳光达人 | ☀️ | 高级 | 连续10天记录开心 | 150 EXP |
|
||||
|
||||
**💰 记账类徽章(4个)**
|
||||
|
||||
| 徽章名称 | 图标 | 稀有度 | 条件 | 经验奖励 |
|
||||
|---------|------|--------|------|---------|
|
||||
| 记账入门 | 💵 | 初级 | 第1次记账 | 10 EXP |
|
||||
| 记账达人 | 💳 | 中级 | 累计记账100笔 | 200 EXP |
|
||||
| 记账大师 | 🏅 | 稀有 | 累计记账500笔 | 500 EXP |
|
||||
| 理财高手 | 💎 | 传说 | 累计记账2000笔 | 1200 EXP |
|
||||
|
||||
---
|
||||
|
||||
## 🎁 四、增值服务特权
|
||||
|
||||
> 以下功能为基础功能之外的额外服务,高等级用户优先体验
|
||||
|
||||
### 4.1 数据服务
|
||||
|
||||
| 功能 | 解锁等级 | 说明 |
|
||||
|------|---------|------|
|
||||
| 账单导出 | Lv.5+ | 按时间范围导出账单(CSV格式) |
|
||||
| 年度报告 | Lv.5+ | 年度数据回顾 |
|
||||
| 数据备份 | Lv.6+ | 本地JSON数据备份 |
|
||||
| 高级导出 | Lv.7+ | Excel格式导出 |
|
||||
|
||||
### 4.2 高级统计
|
||||
|
||||
| 功能 | 解锁等级 | 说明 |
|
||||
|------|---------|------|
|
||||
| 数据报表 | Lv.3+ | 月度收支、分类统计 |
|
||||
| 支出趋势图 | Lv.6+ | 多维度图表展示 |
|
||||
| 心情分析 | Lv.8+ | 心情趋势预测 |
|
||||
|
||||
### 4.3 个性化服务
|
||||
|
||||
| 功能 | 解锁等级 | 说明 |
|
||||
|------|---------|------|
|
||||
| 自定义主题 | Lv.4+ | 自定义主题颜色 |
|
||||
| 成就海报 | Lv.5+ | 可分享到社交平台 |
|
||||
| 头像框 | Lv.10+ | 专属头像框 |
|
||||
|
||||
### 4.4 云端服务(未来开发)
|
||||
|
||||
| 功能 | 解锁等级 | 说明 |
|
||||
|------|---------|------|
|
||||
| 云端备份 | Lv.9+ | 跨设备数据同步 |
|
||||
| 数据恢复 | Lv.9+ | 误删数据恢复 |
|
||||
| 优先客服 | Lv.10+ | 问题反馈优先处理 |
|
||||
|
||||
---
|
||||
|
||||
## 👑 五、Lv.10 至高王者专属特权
|
||||
|
||||
### 5.1 独一无二称号
|
||||
- **"至高王者"** - 金色特效称号
|
||||
- 昵称旁显示金色皇冠图标
|
||||
- 专属入场动画
|
||||
|
||||
### 5.2 全能徽章
|
||||
- 获得一枚"全能徽章"
|
||||
- 集齐所有传说徽章于一身
|
||||
- 徽章自带旋转光效
|
||||
|
||||
### 5.3 专属头像框
|
||||
- 金色动态头像框
|
||||
- 头像周围有金色光芒
|
||||
|
||||
### 5.4 特殊权限
|
||||
- 新功能Beta测试资格
|
||||
- 功能优化建议优先采纳
|
||||
|
||||
---
|
||||
|
||||
## 📊 六、徽章收集系统
|
||||
|
||||
### 6.1 收集进度
|
||||
- 在成长页面显示徽章收集进度
|
||||
- "已收集: X/21"
|
||||
- 收集完成度百分比
|
||||
|
||||
### 6.2 徽章墙
|
||||
- 专门的徽章墙页面
|
||||
- 按稀有度分类展示
|
||||
- 已获得/未获得区分显示
|
||||
|
||||
---
|
||||
|
||||
## 🎨 七、UI展示设计
|
||||
|
||||
### 7.1 称号展示
|
||||
|
||||
```
|
||||
用户昵称
|
||||
[Lv.5] 传奇记录者 👑
|
||||
```
|
||||
|
||||
**样式:**
|
||||
- 等级数字:主题色
|
||||
- 称号名称:对应等级颜色
|
||||
- 图标:根据等级显示
|
||||
|
||||
### 7.2 徽章展示
|
||||
|
||||
```
|
||||
┌─────────────────────────┐
|
||||
│ 🏆 年度传奇 │
|
||||
│ 连续打卡365天 │
|
||||
│ 2026-05-03 解锁 │
|
||||
└─────────────────────────┘
|
||||
```
|
||||
|
||||
**样式:**
|
||||
- 史诗及以上:带光效边框
|
||||
- 传说及以上:动态微光
|
||||
|
||||
### 7.3 成就页面
|
||||
|
||||
```
|
||||
┌────────────────────────────────┐
|
||||
│ 🎖️ 我的成就 8/21 │
|
||||
├────────────────────────────────┤
|
||||
│ [全部] [坚持] [任务] [记账] [心情] │
|
||||
├────────────────────────────────┤
|
||||
│ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
|
||||
│ │🏅 │ │🏅 │ │🔒 │ │🔒 │ │
|
||||
│ │初尝试│ │3天 │ │7天 │ │30天 │ │
|
||||
│ └────┘ └────┘ └────┘ └────┘ │
|
||||
└────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ 八、实施计划
|
||||
|
||||
### Phase 1:基础荣誉系统(已完成 ✅)
|
||||
1. ✅ 设计10个等级称号
|
||||
2. ✅ 设计21个成就徽章
|
||||
3. ✅ 称号展示UI
|
||||
4. ✅ 徽章收集进度
|
||||
5. ✅ 成长页面特权展示
|
||||
|
||||
### Phase 2:增值服务(短期开发)
|
||||
1. 账单导出功能(Lv.5+)
|
||||
2. 年度报告生成(Lv.5+)
|
||||
3. 自定义主题扩展(Lv.4+)
|
||||
4. 成就海报分享(Lv.5+)
|
||||
|
||||
### Phase 3:高级功能(中期开发)
|
||||
1. 高级数据统计(Lv.6+)
|
||||
2. 心情趋势分析(Lv.8+)
|
||||
3. 数据备份服务(Lv.6+)
|
||||
4. Beta测试资格(Lv.10)
|
||||
|
||||
### Phase 4:传说功能(长期规划)
|
||||
1. 云端备份服务(Lv.9+)
|
||||
2. 专属头像特效(Lv.10)
|
||||
3. 全息徽章展示
|
||||
4. 社交分享功能
|
||||
|
||||
---
|
||||
|
||||
## 📝 九、激励机制
|
||||
|
||||
### 9.1 升级激励
|
||||
- 每次升级弹出庆祝动画
|
||||
- 展示新解锁的特权
|
||||
- 发放升级奖励
|
||||
|
||||
### 9.2 徽章激励
|
||||
- 获得新徽章时显示获得动画
|
||||
- 徽章墙上新增徽章高亮闪烁
|
||||
- 稀有徽章获得时特殊庆祝
|
||||
|
||||
### 9.3 收集激励
|
||||
- 收集完整一套成就,发放"全套收藏家"徽章
|
||||
- 不同稀有度组合有额外奖励
|
||||
|
||||
---
|
||||
|
||||
## ✅ 十、总结
|
||||
|
||||
### 方案优势
|
||||
|
||||
1. **不伤害用户体验** - 现有功能全部免费开放
|
||||
2. **激励效果强** - 称号、徽章等荣誉系统激励用户成长
|
||||
3. **增值服务合理** - 高级功能作为增值服务,高等级用户优先体验
|
||||
4. **长期运营可持续** - 不断推出新徽章、新特权,保持新鲜感
|
||||
5. **开发成本可控** - 分阶段实施,逐步完善
|
||||
|
||||
### 核心区别
|
||||
|
||||
| 类型 | 旧方案 | 新方案 |
|
||||
|------|--------|--------|
|
||||
| 定位 | 功能限制 | 荣誉激励 |
|
||||
| 现有功能 | 受限 | 全免费 |
|
||||
| 等级特权 | 解锁限制功能 | 额外荣誉+增值服务 |
|
||||
| 用户体验 | 受挫感 | 成就感 |
|
||||
| 长期价值 | 低 | 高 |
|
||||
|
||||
---
|
||||
|
||||
## 📋 附录:成长规则速查
|
||||
|
||||
### 经验获取
|
||||
| 行为 | 经验 | 说明 |
|
||||
|------|------|------|
|
||||
| 完成任务 | 5-25 EXP/个 | 完成越多,单个经验越高 |
|
||||
| 记账记录 | 3-18 EXP/笔 | 记录越多,单笔经验越高 |
|
||||
| 记录心情 | 5 EXP/天 | 每日1次 |
|
||||
| 每日上限 | 120 EXP | - |
|
||||
|
||||
### 连续打卡加成
|
||||
| 连续天数 | 加成 |
|
||||
|---------|------|
|
||||
| 1-7天 | +2 EXP/天 |
|
||||
| 8-30天 | +5 EXP/天 |
|
||||
| 31-90天 | +10 EXP/天 |
|
||||
| 91天以上 | +15 EXP/天 |
|
||||
|
||||
### 新用户保护期
|
||||
- 前7天享受50%额外经验加成
|
||||
- 断签后连续天数不会完全清零
|
||||
|
||||
---
|
||||
|
||||
**文档版本**: v2.1
|
||||
**更新日期**: 2026-05-03
|
||||
**代码版本**: 与 api/app/growth.go 保持一致
|
||||
**设计理念**: "限制 = 伤害,激励 = 成长"
|
||||
@@ -0,0 +1,670 @@
|
||||
# 成长等级系统规则文档
|
||||
|
||||
## 一、系统概述
|
||||
|
||||
成长等级系统是激励用户持续使用应用的核心机制,通过记录用户的日常行为(任务完成、记账、心情记录)来累计经验值,提升等级,解锁成就和特权。
|
||||
|
||||
---
|
||||
|
||||
## 二、API 接口
|
||||
|
||||
### 2.1 获取成长信息
|
||||
|
||||
**接口路径**: `POST /growth/info`
|
||||
|
||||
**请求参数**: 无
|
||||
|
||||
**返回示例**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"level": 3,
|
||||
"title": "自律达人",
|
||||
"titleIcon": "⭐",
|
||||
"experience": 650,
|
||||
"nextLevelExp": 1500,
|
||||
"totalDays": 45,
|
||||
"streakDays": 12,
|
||||
"maxStreakDays": 20,
|
||||
"avgCompletionRate": 0,
|
||||
"todayProgress": {
|
||||
"tasksCompleted": 3,
|
||||
"taskExp": 15,
|
||||
"billsRecorded": 5,
|
||||
"billExp": 13,
|
||||
"moodRecorded": true,
|
||||
"moodExp": 5,
|
||||
"streakBonus": 5,
|
||||
"protectBonus": 0,
|
||||
"totalExp": 38,
|
||||
"maxDailyExp": 120
|
||||
},
|
||||
"achievements": [
|
||||
{
|
||||
"id": "first_record",
|
||||
"name": "初次尝试",
|
||||
"icon": "✨",
|
||||
"unlocked": true,
|
||||
"unlockDate": "2024-01-15"
|
||||
}
|
||||
],
|
||||
"privileges": [
|
||||
"解锁心情日历",
|
||||
"解锁数据报表"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 获取成就列表
|
||||
|
||||
**接口路径**: `POST /growth/achievements`
|
||||
|
||||
**请求参数**:
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| category | string | 否 | 过滤类别:streak/task/mood/bill |
|
||||
|
||||
**返回示例**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"unlocked": [
|
||||
{
|
||||
"id": "first_record",
|
||||
"name": "初次尝试",
|
||||
"icon": "✨",
|
||||
"category": "streak",
|
||||
"description": "完成第1天记录",
|
||||
"expReward": 10,
|
||||
"progress": 1,
|
||||
"target": 1,
|
||||
"unlocked": true
|
||||
}
|
||||
],
|
||||
"locked": [
|
||||
{
|
||||
"id": "streak_7",
|
||||
"name": "一周打卡",
|
||||
"icon": "🌟",
|
||||
"category": "streak",
|
||||
"description": "连续记录7天",
|
||||
"expReward": 50,
|
||||
"progress": 3,
|
||||
"target": 7,
|
||||
"unlocked": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.3 增加经验
|
||||
|
||||
**接口路径**: `POST /growth/add`
|
||||
|
||||
**请求参数**:
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| source | string | 是 | 来源:task/bill/mood |
|
||||
| source_id | string | 否 | 关联记录ID |
|
||||
|
||||
**返回示例**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"msg": "success",
|
||||
"data": {
|
||||
"expGained": 38,
|
||||
"totalExp": 688,
|
||||
"levelUp": false,
|
||||
"currentLevel": 3,
|
||||
"nextLevelExp": 1500,
|
||||
"newAchievements": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、等级体系
|
||||
|
||||
### 3.1 等级列表
|
||||
|
||||
| 等级 | 头衔 | 图标 | 所需累计经验 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| Lv.1 | 新手冒险家 | 🎒 | 0 |
|
||||
| Lv.2 | 坚持学徒 | 📝 | 200 |
|
||||
| Lv.3 | 自律达人 | ⭐ | 600 |
|
||||
| Lv.4 | 习惯大师 | 💎 | 1500 |
|
||||
| Lv.5 | 传奇记录者 | 👑 | 3000 |
|
||||
| Lv.6 | 时光守望者 | 🏆 | 6000 |
|
||||
| Lv.7 | 超级达人 | 💫 | 10000 |
|
||||
| Lv.8 | 传说存在 | 🌟 | 15000 |
|
||||
| Lv.9 | 永恒传奇 | ⭐ | 22000 |
|
||||
| Lv.10 | 至高王者 | 👑 | 30000 |
|
||||
|
||||
### 3.2 等级经验计算逻辑
|
||||
|
||||
等级根据用户累计经验值自动计算:
|
||||
|
||||
```go
|
||||
func (h *growthHandler) getLevelByExp(exp int) int {
|
||||
level := 1
|
||||
for l := 10; l >= 1; l-- {
|
||||
if config, ok := LevelConfigs[l]; ok && exp >= config.Exp {
|
||||
level = l
|
||||
break
|
||||
}
|
||||
}
|
||||
return level
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、经验值获取规则
|
||||
|
||||
### 4.1 基础经验
|
||||
|
||||
| 来源 | 基础经验 |
|
||||
| :--- | :--- |
|
||||
| 完成任务 (task) | 5 EXP |
|
||||
| 记账记录 (bill) | 3 EXP |
|
||||
| 心情记录 (mood) | 5 EXP |
|
||||
|
||||
### 4.2 任务完成经验加成
|
||||
|
||||
| 今日完成任务数 | 经验计算 |
|
||||
| :--- | :--- |
|
||||
| 1-2个 | 5 EXP/个 |
|
||||
| 3个以上 | 前2个 5 EXP/个,第3个起 10 EXP/个 |
|
||||
| 5个以上 | 前2个 5 EXP/个,3-4个 10 EXP/个,第5个起 20 EXP/个 |
|
||||
|
||||
**示例**:
|
||||
- 完成2个任务:2 × 5 = 10 EXP
|
||||
- 完成3个任务:2 × 5 + 10 = 20 EXP
|
||||
- 完成5个任务:2 × 5 + 2 × 10 + 15 = 45 EXP
|
||||
|
||||
### 4.3 记账经验加成
|
||||
|
||||
| 今日记账笔数 | 经验计算 |
|
||||
| :--- | :--- |
|
||||
| 1-2笔 | 3 EXP/笔 |
|
||||
| 3笔以上 | 前2笔 3 EXP/笔,第3笔起 8 EXP/笔 |
|
||||
| 5笔以上 | 前2笔 3 EXP/笔,3-4笔 8 EXP/笔,第5笔起 13 EXP/笔 |
|
||||
|
||||
**示例**:
|
||||
- 记录2笔账单:2 × 3 = 6 EXP
|
||||
- 记录3笔账单:2 × 3 + 8 = 14 EXP
|
||||
- 记录5笔账单:2 × 3 + 2 × 8 + 13 = 33 EXP
|
||||
|
||||
### 4.4 心情记录经验
|
||||
|
||||
- 每次记录心情:5 EXP
|
||||
- **每日仅限1次**:通过 Redis 记录 `mood_count:{userID}:{date}`,每日只能记录一次
|
||||
|
||||
### 4.5 连续打卡加成
|
||||
|
||||
连续打卡天数越多,加成越高:
|
||||
|
||||
| 连续天数范围 | 每日加成 |
|
||||
| :--- | :--- |
|
||||
| 1-7天 | 2 EXP/天 |
|
||||
| 8-30天 | 5 EXP/天 |
|
||||
| 31-90天 | 10 EXP/天 |
|
||||
| 91天以上 | 15 EXP/天 |
|
||||
|
||||
### 4.6 新用户保护期
|
||||
|
||||
- 新用户注册后享有 **7天保护期**
|
||||
- 保护期内享受 **50%额外加成** (`protectBonus = baseExp × 0.5`)
|
||||
- 保护期内忘记打卡不会完全重置连续天数
|
||||
- 如果总记录天数 < 30天,保护期内的连续加成 **翻倍**
|
||||
- 保护期结束后 `ProtectedDays` 字段递减
|
||||
|
||||
### 4.7 每日经验上限
|
||||
|
||||
**每日最高可获得 120 EXP**,超过部分会被截断。
|
||||
|
||||
---
|
||||
|
||||
## 五、连续打卡机制
|
||||
|
||||
### 5.1 打卡判断逻辑
|
||||
|
||||
```go
|
||||
isFirstRecordToday := growth.LastRecordDate != today
|
||||
|
||||
if isFirstRecordToday {
|
||||
yesterday := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
|
||||
|
||||
if growth.LastRecordDate == yesterday {
|
||||
// 昨天也打卡了,连续天数+1
|
||||
growth.StreakDays++
|
||||
} else if growth.LastRecordDate == "" || growth.LastRecordDate < yesterday {
|
||||
// 昨天没打卡(断了)
|
||||
if growth.StreakDays > 0 {
|
||||
// 有连续记录但断了,根据之前的连续天数给予部分保留
|
||||
if growth.StreakDays <= 7 {
|
||||
growth.StreakDays = 0 // 7天内断了,直接清零
|
||||
} else if growth.StreakDays <= 30 {
|
||||
growth.StreakDays = 3 // 保留3天
|
||||
} else if growth.StreakDays <= 90 {
|
||||
growth.StreakDays = 7 // 保留7天
|
||||
} else {
|
||||
growth.StreakDays = 15 // 保留15天
|
||||
}
|
||||
}
|
||||
growth.StreakDays++
|
||||
}
|
||||
|
||||
growth.TotalDays++
|
||||
}
|
||||
```
|
||||
|
||||
### 5.2 断签处理规则
|
||||
|
||||
| 之前的连续天数 | 断签后保留天数 |
|
||||
| :--- | :--- |
|
||||
| ≤7天 | 0天(完全重置) |
|
||||
| 8-30天 | 3天 |
|
||||
| 31-90天 | 7天 |
|
||||
| >90天 | 15天 |
|
||||
|
||||
### 5.3 连续天数重置规则图解
|
||||
|
||||
```
|
||||
用户连续打卡25天后忘记打卡:
|
||||
┌─────────────────────────────────────┐
|
||||
│ 第1-7天: 连续7天 │
|
||||
│ ↓ 断了 │
|
||||
│ 保留3天 → 再+1天 = 当前4天连续 │
|
||||
└─────────────────────────────────────┘
|
||||
|
||||
用户连续打卡100天后忘记打卡:
|
||||
┌─────────────────────────────────────┐
|
||||
│ 第1-90天: 连续90天 │
|
||||
│ ↓ 断了 │
|
||||
│ 保留15天 → 再+1天 = 当前16天连续 │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、成就系统
|
||||
|
||||
### 6.1 成就配置总览
|
||||
|
||||
| 成就ID | 名称 | 类别 | 描述 | 奖励经验 | 目标类型 | 目标值 |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| first_record | 初次尝试 | streak | 完成第1天记录 | 10 | total_days | 1 |
|
||||
| streak_3 | 3天坚持 | streak | 连续记录3天 | 20 | streak | 3 |
|
||||
| streak_7 | 一周打卡 | streak | 连续记录7天 | 50 | streak | 7 |
|
||||
| streak_30 | 月度坚持 | streak | 连续记录30天 | 200 | streak | 30 |
|
||||
| streak_100 | 百日筑基 | streak | 连续记录100天 | 500 | streak | 100 |
|
||||
| streak_365 | 年度传奇 | streak | 连续记录365天 | 2000 | streak | 365 |
|
||||
| task_1 | 任务新手 | task | 完成第1个任务 | 10 | total_tasks | 1 |
|
||||
| task_100 | 任务达人 | task | 累计完成100个任务 | 200 | total_tasks | 100 |
|
||||
| task_500 | 任务大师 | task | 累计完成500个任务 | 800 | total_tasks | 500 |
|
||||
| perfect_day | 完美一天 | task | 单日完成所有待办 | 30 | perfect_day | 1 |
|
||||
| perfect_week | 完美一周 | task | 连续7天100%完成 | 200 | perfect_week | 7 |
|
||||
| mood_first | 心情记录者 | mood | 第1次记录心情 | 10 | total_moods | 1 |
|
||||
| mood_30 | 月度心情家 | mood | 累计记录30天心情 | 100 | total_moods | 30 |
|
||||
| mood_100 | 心情收藏家 | mood | 累计记录100天心情 | 300 | total_moods | 100 |
|
||||
| happy_streak | 阳光达人 | mood | 连续10天记录开心 | 150 | happy_streak | 10 |
|
||||
| bill_1 | 记账入门 | bill | 第1次记账 | 10 | total_bills | 1 |
|
||||
| bill_100 | 记账达人 | bill | 累计记账100笔 | 200 | total_bills | 100 |
|
||||
| bill_500 | 记账大师 | bill | 累计记账500笔 | 500 | total_bills | 500 |
|
||||
|
||||
### 6.2 成就分类
|
||||
|
||||
#### 📅 坚持类 (streak)
|
||||
- **first_record**: 初次尝试 - 完成第1天记录
|
||||
- **streak_3**: 3天坚持 - 连续记录3天
|
||||
- **streak_7**: 一周打卡 - 连续记录7天
|
||||
- **streak_30**: 月度坚持 - 连续记录30天
|
||||
- **streak_100**: 百日筑基 - 连续记录100天
|
||||
- **streak_365**: 年度传奇 - 连续记录365天
|
||||
|
||||
#### ✅ 任务类 (task)
|
||||
- **task_1**: 任务新手 - 完成第1个任务
|
||||
- **task_100**: 任务达人 - 累计完成100个任务
|
||||
- **task_500**: 任务大师 - 累计完成500个任务
|
||||
- **perfect_day**: 完美一天 - 单日完成所有待办
|
||||
- **perfect_week**: 完美一周 - 连续7天100%完成
|
||||
|
||||
#### 😊 心情类 (mood)
|
||||
- **mood_first**: 心情记录者 - 第1次记录心情
|
||||
- **mood_30**: 月度心情家 - 累计记录30天心情
|
||||
- **mood_100**: 心情收藏家 - 累计记录100天心情
|
||||
- **happy_streak**: 阳光达人 - 连续10天记录开心
|
||||
|
||||
#### 💰 记账类 (bill)
|
||||
- **bill_1**: 记账入门 - 第1次记账
|
||||
- **bill_100**: 记账达人 - 累计记账100笔
|
||||
- **bill_500**: 记账大师 - 累计记账500笔
|
||||
|
||||
### 6.3 成就解锁机制
|
||||
|
||||
成就在以下时机检查并解锁:
|
||||
1. **每次增加经验时**:检查相关成就是否达成
|
||||
2. **升级时**:额外检查所有成就是否达成
|
||||
|
||||
解锁成就后会立即发放经验奖励,并记录到 `UserAchievement` 表。
|
||||
|
||||
---
|
||||
|
||||
## 七、特权系统
|
||||
|
||||
### 7.1 等级特权一览
|
||||
|
||||
| 等级 | 解锁特权 |
|
||||
| :--- | :--- |
|
||||
| Lv.1 | 基础功能 |
|
||||
| Lv.2 | 解锁心情日历 |
|
||||
| Lv.3 | 解锁心情日历、解锁数据报表 |
|
||||
| Lv.4 | 解锁心情日历、解锁数据报表、解锁自定义主题 |
|
||||
| Lv.5 | 解锁心情日历、解锁数据报表、解锁自定义主题、解锁全部功能 |
|
||||
| Lv.6 | 解锁心情日历、解锁数据报表、解锁自定义主题、解锁全部功能、解锁年度回顾 |
|
||||
| Lv.7+ | 解锁心情日历、解锁数据报表、解锁自定义主题、解锁全部功能、解锁年度回顾、解锁数据导出 |
|
||||
|
||||
### 7.2 特权获取逻辑
|
||||
|
||||
```go
|
||||
func (h *growthHandler) getLevelPrivileges(level int) []string {
|
||||
privileges := []string{}
|
||||
|
||||
switch level {
|
||||
case 1:
|
||||
// Lv.1 无特权
|
||||
case 2:
|
||||
privileges = append(privileges, "解锁心情日历")
|
||||
case 3:
|
||||
privileges = append(privileges, "解锁心情日历", "解锁数据报表")
|
||||
case 4:
|
||||
privileges = append(privileges, "解锁心情日历", "解锁数据报表", "解锁自定义主题")
|
||||
case 5:
|
||||
privileges = append(privileges, "解锁心情日历", "解锁数据报表", "解锁自定义主题", "解锁全部功能")
|
||||
case 6:
|
||||
privileges = append(privileges, "解锁心情日历", "解锁数据报表", "解锁自定义主题", "解锁全部功能", "解锁年度回顾")
|
||||
case 7:
|
||||
privileges = append(privileges, "解锁心情日历", "解锁数据报表", "解锁自定义主题", "解锁全部功能", "解锁年度回顾", "解锁数据导出")
|
||||
default:
|
||||
privileges = append(privileges, "解锁心情日历", "解锁数据报表", "解锁自定义主题", "解锁全部功能", "解锁年度回顾", "解锁数据导出")
|
||||
}
|
||||
|
||||
return privileges
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 八、数据统计指标
|
||||
|
||||
### 8.1 用户成长数据 (UserGrowth)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| :--- | :--- | :--- |
|
||||
| ID | uint | 主键 |
|
||||
| UserID | uint | 用户ID |
|
||||
| Level | int | 当前等级 |
|
||||
| Experience | int | 当前累计经验 |
|
||||
| TotalDays | int | 累计记录天数 |
|
||||
| StreakDays | int | 当前连续打卡天数 |
|
||||
| MaxStreakDays | int | 历史最高连续天数 |
|
||||
| LastRecordDate | string | 最后记录日期 (YYYY-MM-DD) |
|
||||
| ProtectedDays | int | 新用户保护期剩余天数 |
|
||||
| TotalTasks | int | 累计完成任务数 |
|
||||
| TotalBills | int | 累计记账笔数 |
|
||||
| TotalMoods | int | 累计心情记录数 |
|
||||
|
||||
### 8.2 每日进度 (DailyProgress)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| :--- | :--- | :--- |
|
||||
| ID | uint | 主键 |
|
||||
| UserID | uint | 用户ID |
|
||||
| RecordDate | string | 记录日期 (YYYY-MM-DD) |
|
||||
| TaskCount | int | 今日完成任务数 |
|
||||
| BillCount | int | 今日记账笔数 |
|
||||
| MoodRecorded | bool | 今日是否记录心情 |
|
||||
| DailyExp | int | 今日获得总经验 |
|
||||
| ExpBreakdown | string | 经验明细 (JSON格式) |
|
||||
|
||||
### 8.3 经验变化日志 (ExpChangeLog)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| :--- | :--- | :--- |
|
||||
| ID | uint | 主键 |
|
||||
| UserID | uint | 用户ID |
|
||||
| ChangeType | string | 变更类型:add/level_up |
|
||||
| ExpDelta | int | 经验变化量 |
|
||||
| Source | string | 来源:task/bill/mood/level |
|
||||
| SourceID | string | 关联记录ID |
|
||||
| BeforeExp | int | 变化前经验 |
|
||||
| AfterExp | int | 变化后经验 |
|
||||
| RecordDate | string | 记录日期 |
|
||||
|
||||
### 8.4 用户成就 (UserAchievement)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| :--- | :--- | :--- |
|
||||
| ID | uint | 主键 |
|
||||
| UserID | uint | 用户ID |
|
||||
| AchievementID | string | 成就ID |
|
||||
| UnlockDate | string | 解锁日期 |
|
||||
| ExpRewarded | int | 已奖励经验值 |
|
||||
|
||||
---
|
||||
|
||||
## 九、防刷机制
|
||||
|
||||
### 9.1 心情记录限制
|
||||
|
||||
```go
|
||||
if source == "mood" {
|
||||
key := fmt.Sprintf("mood_count:%d:%s", userID, today)
|
||||
count, _ := global.Redis.Exists(ctx, key).Result()
|
||||
if count > 0 {
|
||||
utils.Fail(c, "今日心情已记录")
|
||||
return
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- 每日只能记录一次心情
|
||||
- 通过 Redis Key `mood_count:{userID}:{date}` 限制
|
||||
- Key 过期时间:25小时
|
||||
|
||||
### 9.2 并发控制
|
||||
|
||||
```go
|
||||
lockKey := fmt.Sprintf("lock:growth:%d", userID)
|
||||
ok, _ := global.Redis.SetNX(ctx, lockKey, "1", 2*time.Second).Result()
|
||||
if !ok {
|
||||
utils.Fail(c, "系统繁忙,请稍后重试")
|
||||
return
|
||||
}
|
||||
defer global.Redis.Del(ctx, lockKey)
|
||||
```
|
||||
|
||||
- 使用 Redis 分布式锁防止并发操作
|
||||
- 锁过期时间:2秒
|
||||
|
||||
---
|
||||
|
||||
## 十、经验计算示例
|
||||
|
||||
### 10.1 普通用户(第1天)
|
||||
|
||||
```
|
||||
基础条件:无连续、无保护期
|
||||
操作:完成1个任务
|
||||
|
||||
经验计算:
|
||||
- 任务基础经验:5 EXP
|
||||
- 连续加成:0 EXP(无连续)
|
||||
- 保护期加成:0 EXP(保护期需 TotalDays >= 30 才翻倍)
|
||||
|
||||
今日总计:5 EXP
|
||||
```
|
||||
|
||||
### 10.2 新用户(第7天,保护期内)
|
||||
|
||||
```
|
||||
基础条件:连续7天,保护期剩余0天
|
||||
操作:完成3个任务,记录心情
|
||||
|
||||
经验计算:
|
||||
- 任务基础经验:2×5 + 10 = 20 EXP
|
||||
- 心情经验:5 EXP
|
||||
- 连续加成(1-7天):2 EXP
|
||||
- 保护期加成:5 × 50% = 2.5 EXP ≈ 2 EXP
|
||||
- 保护期连续加成翻倍:2 × 2 = 4 EXP(因为 TotalDays=7 < 30)
|
||||
|
||||
今日总计:20 + 5 + 4 + 2 = 31 EXP
|
||||
```
|
||||
|
||||
### 10.3 老用户(连续30天)
|
||||
|
||||
```
|
||||
基础条件:连续30天,保护期已过
|
||||
操作:完成5个任务,记录3笔账单,记录心情
|
||||
|
||||
经验计算:
|
||||
- 任务经验:2×5 + 2×10 + 15 = 45 EXP
|
||||
- 账单经验:2×3 + 8 = 14 EXP
|
||||
- 心情经验:5 EXP
|
||||
- 连续加成(8-30天):5 EXP
|
||||
- 保护期加成:0 EXP(保护期已过)
|
||||
|
||||
今日总计:45 + 14 + 5 + 5 = 69 EXP
|
||||
```
|
||||
|
||||
### 10.4 满级用户(连续100天)
|
||||
|
||||
```
|
||||
基础条件:连续100天,保护期已过
|
||||
操作:完成5个任务,记录5笔账单,记录心情
|
||||
|
||||
经验计算:
|
||||
- 任务经验:45 EXP
|
||||
- 账单经验:2×3 + 2×8 + 13 = 33 EXP
|
||||
- 心情经验:5 EXP
|
||||
- 连续加成(31-90天):10 EXP
|
||||
|
||||
今日总计:45 + 33 + 5 + 10 = 93 EXP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 十一、数据库表结构
|
||||
|
||||
### 11.1 user_growths 表
|
||||
|
||||
```sql
|
||||
CREATE TABLE `user_growths` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`created_at` datetime(3) DEFAULT NULL,
|
||||
`updated_at` datetime(3) DEFAULT NULL,
|
||||
`deleted_at` datetime(3) DEFAULT NULL,
|
||||
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
||||
`level` int DEFAULT '1' COMMENT '当前等级',
|
||||
`experience` int DEFAULT '0' COMMENT '当前经验值',
|
||||
`total_days` int DEFAULT '0' COMMENT '累计记录天数',
|
||||
`streak_days` int DEFAULT '0' COMMENT '连续记录天数',
|
||||
`max_streak_days` int DEFAULT '0' COMMENT '最高连续天数',
|
||||
`last_record_date` varchar(10) DEFAULT '' COMMENT '最后记录日期',
|
||||
`protected_days` int DEFAULT '7' COMMENT '新用户保护期剩余天数',
|
||||
`total_tasks` int DEFAULT '0' COMMENT '累计完成任务数',
|
||||
`total_bills` int DEFAULT '0' COMMENT '累计记账笔数',
|
||||
`total_moods` int DEFAULT '0' COMMENT '累计心情记录数',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
```
|
||||
|
||||
### 11.2 daily_progress 表
|
||||
|
||||
```sql
|
||||
CREATE TABLE `daily_progress` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`created_at` datetime(3) DEFAULT NULL,
|
||||
`updated_at` datetime(3) DEFAULT NULL,
|
||||
`deleted_at` datetime(3) DEFAULT NULL,
|
||||
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
||||
`record_date` varchar(10) NOT NULL COMMENT '记录日期',
|
||||
`task_count` int DEFAULT '0' COMMENT '今日完成任务数',
|
||||
`bill_count` int DEFAULT '0' COMMENT '今日记账笔数',
|
||||
`mood_recorded` tinyint(1) DEFAULT '0' COMMENT '是否记录心情',
|
||||
`daily_exp` int DEFAULT '0' COMMENT '今日获得经验',
|
||||
`exp_breakdown` text COMMENT '经验明细JSON',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_date` (`user_id`,`record_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
```
|
||||
|
||||
### 11.3 exp_change_logs 表
|
||||
|
||||
```sql
|
||||
CREATE TABLE `exp_change_logs` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`created_at` datetime(3) DEFAULT NULL,
|
||||
`updated_at` datetime(3) DEFAULT NULL,
|
||||
`deleted_at` datetime(3) DEFAULT NULL,
|
||||
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
||||
`change_type` varchar(20) NOT NULL COMMENT '变更类型',
|
||||
`exp_delta` int NOT NULL DEFAULT '0' COMMENT '经验变化量',
|
||||
`source` varchar(20) DEFAULT '' COMMENT '来源',
|
||||
`source_id` varchar(50) DEFAULT '' COMMENT '关联记录ID',
|
||||
`before_exp` int DEFAULT '0' COMMENT '变化前经验',
|
||||
`after_exp` int DEFAULT '0' COMMENT '变化后经验',
|
||||
`record_date` varchar(10) NOT NULL COMMENT '记录日期',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_record_date` (`record_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
```
|
||||
|
||||
### 11.4 user_achievements 表
|
||||
|
||||
```sql
|
||||
CREATE TABLE `user_achievements` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`created_at` datetime(3) DEFAULT NULL,
|
||||
`updated_at` datetime(3) DEFAULT NULL,
|
||||
`deleted_at` datetime(3) DEFAULT NULL,
|
||||
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
||||
`achievement_id` varchar(50) NOT NULL COMMENT '成就ID',
|
||||
`unlock_date` varchar(10) NOT NULL COMMENT '解锁日期',
|
||||
`exp_rewarded` int DEFAULT '0' COMMENT '已奖励经验值',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_achievement` (`user_id`,`achievement_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 十二、版本历史
|
||||
|
||||
| 版本 | 更新日期 | 更新内容 |
|
||||
| :--- | :--- | :--- |
|
||||
| v1.0 | 2024-01-01 | 初始版本,实现基础等级系统 |
|
||||
| v1.1 | 2024-02-15 | 新增成就系统,包含18个成就 |
|
||||
| v1.2 | 2024-03-20 | 新增连续打卡保护机制 |
|
||||
| v1.3 | 2024-04-25 | 优化经验计算规则,添加任务/账单完成加成 |
|
||||
| v1.4 | 2024-06-01 | 新增心情记录功能 |
|
||||
| v1.5 | 2024-08-15 | 优化防刷机制,使用Redis分布式锁 |
|
||||
|
||||
---
|
||||
|
||||
**文档版本**: v1.5
|
||||
**最后更新**: 2024年8月15日
|
||||
**适用项目**: simple-memo 后端成长等级系统
|
||||
**文档路径**: `/Users/sunct/WeChatProjects/simple-memo/docs/growth_rules.md`
|
||||
@@ -0,0 +1,238 @@
|
||||
# 🌱 成长之路 - 用户指南
|
||||
|
||||
欢迎来到成长系统!在这里,你的每一次记录都在积累力量,让我们一起看看如何快速成长吧~
|
||||
|
||||
---
|
||||
|
||||
## 📊 我的等级
|
||||
|
||||
### 当前等级:Lv.1 新手冒险家 🎒
|
||||
|
||||
| 我的经验 | 下一等级所需 |
|
||||
| :--- | :--- |
|
||||
| 0 EXP | 200 EXP |
|
||||
|
||||
---
|
||||
|
||||
## ⬆️ 如何升级
|
||||
|
||||
### 升级规则
|
||||
|
||||
```
|
||||
累计经验达到对应等级的要求,即可自动升级!
|
||||
```
|
||||
|
||||
| 等级 | 头衔 | 所需经验 | 图标 |
|
||||
| :--- | :--- | :---: | :---: |
|
||||
| Lv.1 | 新手冒险家 | 0 | 🎒 |
|
||||
| Lv.2 | 坚持学徒 | 200 | 📝 |
|
||||
| Lv.3 | 自律达人 | 600 | ⭐ |
|
||||
| Lv.4 | 习惯大师 | 1,500 | 💎 |
|
||||
| Lv.5 | 传奇记录者 | 3,000 | 👑 |
|
||||
| Lv.6 | 时光守望者 | 6,000 | 🏆 |
|
||||
| Lv.7 | 超级达人 | 10,000 | 💫 |
|
||||
| Lv.8 | 传说存在 | 15,000 | 🌟 |
|
||||
| Lv.9 | 永恒传奇 | 22,000 | ⭐ |
|
||||
| Lv.10 | 至高王者 | 30,000 | 👑 |
|
||||
|
||||
---
|
||||
|
||||
## ✨ 如何获取经验
|
||||
|
||||
### 基础获取方式
|
||||
|
||||
| 每日活动 | 经验奖励 | 每日上限 |
|
||||
| :--- | :---: | :---: |
|
||||
| ✅ 完成待办任务 | 5 EXP/个 | 任务做越多,奖励越高 |
|
||||
| 💰 记录账单 | 3 EXP/笔 | 账单记越多,奖励越高 |
|
||||
| 😊 记录心情 | 5 EXP | 限1次/天 |
|
||||
|
||||
### 🎯 做任务 - 经验递增
|
||||
|
||||
| 完成任务数 | 获得经验 |
|
||||
| :--- | :--- |
|
||||
| 1个 | 5 EXP |
|
||||
| 2个 | 10 EXP |
|
||||
| 3个 | 20 EXP |
|
||||
| 5个 | 45 EXP |
|
||||
|
||||
> 💡 提示:一天完成的任务越多,每个任务的奖励就越高!
|
||||
|
||||
### 💰 记账 - 经验递增
|
||||
|
||||
| 记账笔数 | 获得经验 |
|
||||
| :--- | :--- |
|
||||
| 1笔 | 3 EXP |
|
||||
| 2笔 | 6 EXP |
|
||||
| 3笔 | 14 EXP |
|
||||
| 5笔 | 33 EXP |
|
||||
|
||||
> 💡 提示:一天记录5笔账单,获得的经验是做1笔的5倍多!
|
||||
|
||||
### 📅 连续打卡加成
|
||||
|
||||
坚持记录,连续天数越久,每天额外奖励越多!
|
||||
|
||||
| 连续天数 | 每日额外加成 |
|
||||
| :--- | :---: |
|
||||
| 1-7天 | +2 EXP/天 |
|
||||
| 8-30天 | +5 EXP/天 |
|
||||
| 31-90天 | +10 EXP/天 |
|
||||
| 91天以上 | +15 EXP/天 |
|
||||
|
||||
**示例**:
|
||||
- 坚持7天 → 每天多拿2 EXP
|
||||
- 坚持30天 → 每天多拿5 EXP
|
||||
- 坚持100天 → 每天多拿15 EXP
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ 新手保护
|
||||
|
||||
新用户前7天享受 **保护期** 特权:
|
||||
|
||||
- ✨ 每天额外获得 **50%** 加成
|
||||
- 🛡️ 忘记打卡不会完全重置连续天数
|
||||
- 💪 保护期内的连续加成会 **翻倍**
|
||||
|
||||
> 💡 即使偶尔忘记打卡,也不会“一夜回到解放前”哦~
|
||||
|
||||
---
|
||||
|
||||
## 🔢 每日经验上限
|
||||
|
||||
**每天最多获得 120 EXP**
|
||||
|
||||
---
|
||||
|
||||
## 🎖️ 成就系统
|
||||
|
||||
完成特定目标,解锁成就并获得额外经验奖励!
|
||||
|
||||
### 📅 坚持成就
|
||||
|
||||
| 成就 | 条件 | 奖励 |
|
||||
| :--- | :--- | :---: |
|
||||
| 初次尝试 | 完成第1天记录 | +10 EXP |
|
||||
| 3天坚持 | 连续打卡3天 | +20 EXP |
|
||||
| 一周打卡 | 连续打卡7天 | +50 EXP |
|
||||
| 月度坚持 | 连续打卡30天 | +200 EXP |
|
||||
| 百日筑基 | 连续打卡100天 | +500 EXP |
|
||||
| 年度传奇 | 连续打卡365天 | +2000 EXP |
|
||||
|
||||
### ✅ 任务成就
|
||||
|
||||
| 成就 | 条件 | 奖励 |
|
||||
| :--- | :--- | :---: |
|
||||
| 任务新手 | 完成1个任务 | +10 EXP |
|
||||
| 任务达人 | 累计100个任务 | +200 EXP |
|
||||
| 任务大师 | 累计500个任务 | +800 EXP |
|
||||
| 完美一天 | 单日完成所有待办 | +30 EXP |
|
||||
| 完美一周 | 连续7天100%完成 | +200 EXP |
|
||||
|
||||
### 💰 记账成就
|
||||
|
||||
| 成就 | 条件 | 奖励 |
|
||||
| :--- | :--- | :---: |
|
||||
| 记账入门 | 记账1次 | +10 EXP |
|
||||
| 记账达人 | 累计100笔 | +200 EXP |
|
||||
| 记账大师 | 累计500笔 | +500 EXP |
|
||||
|
||||
### 😊 心情成就
|
||||
|
||||
| 成就 | 条件 | 奖励 |
|
||||
| :--- | :--- | :---: |
|
||||
| 心情记录者 | 第1次记录心情 | +10 EXP |
|
||||
| 月度心情家 | 累计30次心情 | +100 EXP |
|
||||
| 心情收藏家 | 累计100次心情 | +300 EXP |
|
||||
| 阳光达人 | 连续10天记录开心 | +150 EXP |
|
||||
|
||||
---
|
||||
|
||||
## 🎁 等级特权
|
||||
|
||||
等级越高,解锁的特权越多!
|
||||
|
||||
| 等级 | 解锁特权 |
|
||||
| :--- | :--- |
|
||||
| Lv.1 | 基础功能 |
|
||||
| Lv.2 | 🌈 解锁心情日历 |
|
||||
| Lv.3 | 🌈 解锁心情日历 📊 解锁数据报表 |
|
||||
| Lv.4 | 🌈 解锁心情日历 📊 解锁数据报表 🎨 解锁自定义主题 |
|
||||
| Lv.5 | 🌈 解锁心情日历 📊 解锁数据报表 🎨 解锁自定义主题 🚀 解锁全部功能 |
|
||||
| Lv.6 | 🌈 解锁心情日历 📊 解锁数据报表 🎨 解锁自定义主题 🚀 解锁全部功能 📅 解锁年度回顾 |
|
||||
| Lv.7+ | 🌈 解锁心情日历 📊 解锁数据报表 🎨 解锁自定义主题 🚀 解锁全部功能 📅 解锁年度回顾 📤 解锁数据导出 |
|
||||
|
||||
---
|
||||
|
||||
## 💡 成长小贴士
|
||||
|
||||
### 🌟 快速升级秘籍
|
||||
|
||||
1. **每日必做**:每天完成至少3个待办任务
|
||||
- 3个任务 = 20 EXP
|
||||
- 加上连续加成 = 25 EXP/天
|
||||
|
||||
2. **坚持记账**:每天记录3-5笔账单
|
||||
- 5笔账单 = 33 EXP
|
||||
- 加上连续加成 = 38 EXP/天
|
||||
|
||||
3. **别忘心情**:每天记录一次心情
|
||||
- 心情记录 = 5 EXP
|
||||
- 轻松简单,积少成多!
|
||||
|
||||
4. **保持连续**:尽量不要断签
|
||||
- 连续越久,每天加成越高
|
||||
- 断了也没关系,保护期会保留部分天数
|
||||
|
||||
### 📈 每日收益估算
|
||||
|
||||
| 每日完成度 | 预计经验 |
|
||||
| :--- | :---: |
|
||||
| 只做1个任务 | ~5-7 EXP |
|
||||
| 3个任务 + 心情 | ~30-40 EXP |
|
||||
| 5个任务 + 5笔账单 + 心情 | ~80-100 EXP |
|
||||
| 满额(连续加成拉满) | **150 EXP** |
|
||||
|
||||
> 💰 按每天100 EXP计算:
|
||||
> - Lv.1 → Lv.2:只需 **2天**
|
||||
> - Lv.2 → Lv.3:只需 **4天**
|
||||
> - Lv.3 → Lv.4:只需 **9天**
|
||||
> - Lv.4 → Lv.5:只需 **15天**
|
||||
|
||||
---
|
||||
|
||||
## ❓ 常见问题
|
||||
|
||||
**Q: 忘记打卡会怎样?**
|
||||
A: 不用担心!如果连续天数不长,会重新从1开始计算。如果连续天数很长,会保留一部分(保留3-15天)。
|
||||
|
||||
**Q: 每天的经验有上限吗?**
|
||||
A: 有的,每天最多获得120 EXP。
|
||||
|
||||
**Q: 成就可以重复解锁吗?**
|
||||
A: 不行,每个成就只能解锁一次。
|
||||
|
||||
**Q: 经验会清零吗?**
|
||||
A: 不会!你的等级和经验会一直保留。
|
||||
|
||||
**Q: 如何查看自己还差多少升级?**
|
||||
A: 在「成长之路」页面可以查看当前经验和下一等级所需经验。
|
||||
|
||||
---
|
||||
|
||||
## 📱 查看入口
|
||||
|
||||
在我的页面点击 **「成长之路」** 卡片,可以查看:
|
||||
- 当前等级和经验进度
|
||||
- 今日完成情况
|
||||
- 已解锁的成就
|
||||
- 享有的特权
|
||||
|
||||
点击 **「查看成长规则」** 按钮,可以查看详细的规则说明~
|
||||
|
||||
---
|
||||
|
||||
**祝你玩得开心,记录美好生活!** 🌟
|
||||
|
||||
*最后更新:2024年8月*
|
||||
File diff suppressed because it is too large
Load Diff
+160
@@ -0,0 +1,160 @@
|
||||
# 「简记 · 事与钱」小程序 UI 设计规范
|
||||
## 清新唯美配色方案 + 全局视觉规范
|
||||
整体风格:**清透柔和、低饱和高级、留白充足、温柔治愈**,适配深浅双主题,兼顾极简与质感。
|
||||
|
||||
---
|
||||
|
||||
# 一、全局清新唯美主配色
|
||||
## 1. 浅色模式(主视觉·清新唯美)
|
||||
| 用途 | 色值 | 视觉说明 |
|
||||
|------|------|----------|
|
||||
| 主品牌色 | `#A3D8D3` | 薄荷青,温柔干净,代表简洁、治愈、高效 |
|
||||
| 辅助色1 | `#F8C8DC` | 淡樱花粉,点缀温馨,不艳俗 |
|
||||
| 辅助色2 | `#B5D8FE` | 浅天青蓝,提升清爽感 |
|
||||
| 收入色 | `#87D0A0` | 柔和薄荷绿,不刺眼 |
|
||||
| 支出色 | `#F2A3A0` | 淡豆沙红,温和警示 |
|
||||
| 优先级高 | `#F69999` | 浅红提醒 |
|
||||
| 优先级中 | `#F5D090` | 浅黄温和提示 |
|
||||
| 优先级低 | `#A0D9E0` | 浅蓝默认 |
|
||||
| 背景底色 | `#FAFDFF` | 极浅冷白,护眼不惨白 |
|
||||
| 卡片底色 | `#FFFFFF` | 纯白卡片,轻微阴影 |
|
||||
| 分割线 | `#E8EEF2` | 极浅灰,弱化边界 |
|
||||
| 主文字 | `#3A4A54` | 深灰蓝,柔和不黑 |
|
||||
| 次级文字 | `#83959F` | 中性灰 |
|
||||
| 提示文字 | `#B5C2C9` | 淡灰 |
|
||||
|
||||
## 2. 深色模式(护眼·低饱和唯美)
|
||||
| 用途 | 色值 |
|
||||
|------|------|
|
||||
| 主品牌色 | `#82BFB8` |
|
||||
| 收入色 | `#70B887` |
|
||||
| 支出色 | `#D98885` |
|
||||
| 背景底色 | `#1C2528` |
|
||||
| 卡片底色 | `#2A353A` |
|
||||
| 分割线 | `#3A474F` |
|
||||
| 主文字 | `#EDF3F5` |
|
||||
| 次级文字 | `#9FB1B9` |
|
||||
| 提示文字 | `#6B7B83` |
|
||||
|
||||
---
|
||||
|
||||
# 二、全局视觉规范
|
||||
## 1. 字体
|
||||
- 标题:`font-weight: 600`,大小 `32rpx ~ 36rpx`
|
||||
- 正文:`font-weight: 400`,大小 `28rpx`
|
||||
- 备注/次要:`24rpx`
|
||||
- 金额数字:`font-weight: 500`,清晰易读
|
||||
|
||||
## 2. 间距与圆角
|
||||
- 页面边距:`32rpx`
|
||||
- 卡片内边距:`32rpx`
|
||||
- 卡片圆角:`16rpx`(统一柔和大圆角)
|
||||
- 按钮圆角:`12rpx`
|
||||
- 列表项高度:`96rpx ~ 112rpx`
|
||||
|
||||
## 3. 阴影与质感
|
||||
- 卡片阴影:`0 4rpx 20rpx rgba(163,216,211,0.08)`
|
||||
- 悬浮按钮:轻微上浮阴影,柔和不重
|
||||
- 无描边、少边框,靠阴影与留白区分层级
|
||||
|
||||
---
|
||||
|
||||
# 三、四 Tab 页面 UI 布局设计
|
||||
## Page 1:今日(聚合页 · 核心首页)
|
||||
- 顶部日期栏:浅薄荷青小字,左右箭头淡灰,切换开关用 `#A3D8D3`
|
||||
- 今日待办卡片:
|
||||
- 进度条主色 `#A3D8D3`,背景浅灰
|
||||
- 列表项:优先级小圆点 + 标题 + 勾选框
|
||||
- 空态:淡灰图标 + `#83959F` 文字
|
||||
- 今日记账卡片:
|
||||
- 金额数字突出,支出淡红、收入柔和绿
|
||||
- 列表横向紧凑,分类图标小而精致
|
||||
- 底部双悬浮按钮:
|
||||
- 左记账:`#B5D8FE` 浅蓝
|
||||
- 右加任务:`#A3D8D3` 薄荷青
|
||||
- 均为圆形、轻微阴影、极简图标
|
||||
|
||||
## Page 2:待办(任务管理页)
|
||||
- 顶部搜索框:浅灰背景 `#F3F7F9`,圆角大
|
||||
- 筛选标签:选中态 `#A3D8D3` 背景+白字,未选中淡灰边框
|
||||
- 任务列表:
|
||||
- 每条卡片式,优先级色块前置
|
||||
- 标题粗体,备注折叠淡灰色
|
||||
- 日期、重复标记居右小文字
|
||||
- 批量选择:勾选框用主色,背景轻微遮罩
|
||||
- 右下角悬浮添加按钮:主色圆形 + 白色 + 号
|
||||
|
||||
## Page 3:账单(收支管理页)
|
||||
- 顶部切换按钮:支出/收入/全部,选中主色填充
|
||||
- 统计条:大数字突出,结余用主色强调
|
||||
- 分类横向滚动:小图标 + 分类名 + 金额,当前分类高亮主色
|
||||
- 账单列表:
|
||||
- 分类图标统一圆形底色
|
||||
- 金额右对齐,支出红、收入绿
|
||||
- 备注折叠,日期居右下
|
||||
- 记账弹窗:
|
||||
- 数字键盘干净简洁
|
||||
- 分类宫格布局,图标柔和配色
|
||||
- 保存按钮主色填充
|
||||
|
||||
## Page 4:我的(个人中心)
|
||||
- 月度统计卡片:
|
||||
- 环形统计图主色 `#A3D8D3`
|
||||
- 任务完成率、收支数据清晰排布
|
||||
- 功能列表:
|
||||
- 图标统一线性风格
|
||||
- 每项右侧箭头淡灰
|
||||
- 开关控件主色
|
||||
- 底部版本、关于:浅灰色小字,极简排版
|
||||
|
||||
---
|
||||
|
||||
# 四、交互动效(清新不花哨)
|
||||
- 完成任务:轻微缩放 + 主色闪烁
|
||||
- 滑动删除/完成:平滑位移,不卡顿
|
||||
- 弹窗出现:淡入 + 轻微上浮
|
||||
- 切换主题:渐变过渡
|
||||
- 数据加载:极简转圈 `#A3D8D3`
|
||||
- 点击反馈:轻微按压变暗
|
||||
|
||||
---
|
||||
|
||||
# 五、可直接复制使用的 WXSS 变量
|
||||
```css
|
||||
/* 浅色模式 */
|
||||
page {
|
||||
--main: #A3D8D3;
|
||||
--income: #87D0A0;
|
||||
--expend: #F2A3A0;
|
||||
--bg: #FAFDFF;
|
||||
--card: #FFFFFF;
|
||||
--text: #3A4A54;
|
||||
--text-secondary: #83959F;
|
||||
--line: #E8EEF2;
|
||||
}
|
||||
|
||||
/* 深色模式 */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
page {
|
||||
--main: #82BFB8;
|
||||
--income: #70B887;
|
||||
--expend: #D98885;
|
||||
--bg: #1C2528;
|
||||
--card: #2A353A;
|
||||
--text: #EDF3F5;
|
||||
--text-secondary: #9FB1B9;
|
||||
--line: #3A474F;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
如果你需要,我可以**下一步直接一次性输出完整可开发内容**:
|
||||
1. 小程序项目目录结构(pages + components + utils + app.js)
|
||||
2. 4 个页面完整 `WXML + WXSS + JS` 骨架代码
|
||||
3. 云数据库创建 JSON 脚本
|
||||
4. 日期格式化、金额计算、统计、增删改查工具函数
|
||||
5. 全局 app.wxss 统一样式
|
||||
|
||||
需要我直接把**可马上开发的完整技术原型**全部给你吗?
|
||||
Reference in New Issue
Block a user