docs(website): 添加简记memo产品原型和UI设计规范文档

- 新增「简记memo」一体化小程序产品原型设计文档
- 新增简记memo完整版UI视觉设计规范和界面细节
- 添加IDEA项目配置文件.gitignore
- 创建404页面HTML文件,包含响应式布局和错误提示
- 添加关于页面HTML文件,展示品牌介绍和团队信息
- 实现AES加解密工具函数,支持请求体加密
- 添加用户协议页面基础框架
This commit is contained in:
sunct
2026-07-31 14:12:32 +08:00
commit 3c3bf53ae4
115 changed files with 21304 additions and 0 deletions
@@ -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
- priority1高/2中/3低)
- repeatnone/day/week/month
- donetrue/false
- subtasks(数组:[{title,done}]
- dateyyyy-MM-dd
- createTime
- updateTime
## 2. bills(账单)
- _id
- openid
- typeincome/expend
- money(数字,正数)
- cate(分类)
- icon(图标)
- color(颜色)
- note(备注)
- dateyyyy-MM-dd
- createTime
## 3. userConfig(用户配置)
- _id
- openid
- themelight/dark/auto
- budget(月预算)
- autoPostpone(自动顺延)
- showAnimation(动画)
- customCate(自定义分类数组)
- lastBackup(最后备份时间)
---
# 五、核心业务逻辑(完整闭环)
1. **任务自动顺延**
每天0点,未完成、非重复、非已完成 → 复制到今日,标记顺延
2. **重复任务生成**
每日/每周/每月自动生成下一条任务,不修改原任务
3. **预算计算**
月支出总和对比预算,超支变红、进度条>100%
4. **数据权限**
云数据库权限只允许 openid 等于自身读写,绝对安全
5. **统计口径**
按自然月统计,不跨月混淆
6. **操作无刷新**
所有增删改查本地状态同步 + 云更新,不白屏、不重载
---
# 六、交互体验(简约但高级)
- 所有按钮有反馈
- 完成任务有轻微动效(不花哨)
- 列表滑动流畅
- 键盘自动收起
- 加载状态弱提示
- 错误提示轻量不打扰
- 无任何广告、无推送、无外链
---
# 七、产品亮点(真正「简约不简单」)
- 界面极简,功能专业
- 待办 + 记账深度融合,不割裂
- 重复任务、子任务、顺延、预算、图表、导出全有
- 单人可开发、可维护、可上线
- 无第三方依赖、无封闭资源、全自主
- 个人主体可过审
- 自用质感极强,可长期使用
---
如果你需要,我可以**下一步直接输出:**
1. 全套**小程序页面目录结构**
2. 每个页面的**WXML + WXSS + JS 骨架代码**
3. **云数据库创建脚本**
4. **全局工具函数(请求、日期、格式化、统计)**
5. **可直接复制使用的配色+字体+样式规范**
要我继续把**可直接开发的完整技术原型**一次性给全吗?
+217
View File
@@ -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 / 20px600
- 正文:16px400
- 小字:14px400
- 辅助文字:12px400
- 无衬线、无花字体、极度干净
## 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 代码**吗?
+339
View File
@@ -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 保持一致
**设计理念**: "限制 = 伤害,激励 = 成长"
+670
View File
@@ -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`
+238
View File
@@ -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月*
+1109
View File
File diff suppressed because it is too large Load Diff
+160
View File
@@ -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 统一样式
需要我直接把**可马上开发的完整技术原型**全部给你吗?