Files
msh-system/docs/打卡详情页_一键打卡入口设计.md

440 lines
12 KiB
Markdown
Raw Permalink 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.
# 打卡详情页 - 一键打卡入口设计
> **更新日期**2025-11-20
> **版本**v2.2.1
> **核心优化**:在打卡详情页增加"一键打卡"入口
---
## 🎯 优化目标
用户在查看打卡详情时,希望能快速复制该打卡内容,无需返回到列表页操作。
---
## 📱 三个主要入口
### 入口1打卡历史页 → 直接复制 ⭐推荐快速打卡
```
我的饮食记录
┌──────────────────────────┐
│ 11月19日 早餐 │
│ ✅ 达标率92% ⭐高分 │
│ [📊 查看详情] │
│ [⚡一键复制打卡] ←入口1 │
└──────────────────────────┘
```
**特点**
- ✅ 最快捷的方式
- ✅ 无需进入详情页
- ✅ 适合确定要复制的情况
- ✅ 30秒完成打卡
**流程**
```
点击"⚡一键复制打卡"
复制确认页(预览内容)
打卡页(内容已填充)
修改内容(可选)
发布完成(+5积分
```
---
### 入口2打卡详情页 → 详细查看后复制 ⭐⭐⭐本次新增
```
我的饮食记录
[📊 查看详情] ←先点这里
打卡详情页
┌──────────────────────────┐
│ 📸 完整照片查看 │
│ 📊 营养数据详情 │
│ 📋 菜品清单 │
│ ┌──────────────────────┐ │
│ │ ⚡一键复制打卡 ←入口2 │ │
│ └──────────────────────┘ │
└──────────────────────────┘
```
**特点**
- ✅ 查看完整信息后决定
- ✅ 可以看到所有照片和数据
- ✅ 更了解打卡内容
- ✅ 适合需要详细查看的情况
**流程**
```
点击"📊 查看详情"
进入打卡详情页
查看照片、营养数据、菜品清单
点击"⚡一键复制打卡"
复制确认页
打卡页(内容已填充)
发布完成(+5积分
```
---
### 入口3社区打卡详情页 → 借鉴他人 ⭐学习优质内容
```
社区广场 → 他人的打卡
[点击帖子查看详情]
打卡详情页(他人的)
┌──────────────────────────┐
│ 查看他人饮食方案 │
│ 营养数据参考 │
│ ┌──────────────────────┐ │
│ │ 🎬一键借鉴打卡 ←入口3 │ │
│ └──────────────────────┘ │
└──────────────────────────┘
```
**特点**
- ✅ 学习他人优质饮食方案
- ✅ AI自动调整用量根据你的情况
- ✅ 必须上传自己的照片
- ✅ 原作者也会获得积分
**流程**
```
浏览社区打卡内容
点击感兴趣的帖子
进入打卡详情页(他人的)
点击"🎬一键借鉴打卡"
借鉴确认页AI调整用量
打卡页(需上传自己的照片)
发布完成
自己+5积分原作者+2积分
```
---
## 🎨 UI设计对比
### 场景A查看【自己的】打卡详情页
```
┌────────────────────────────────┐
│ 【快速操作】 │
│ ┌──────────────────────────┐ │
│ │ ⚡ 一键复制打卡 │ │
│ │ 快速复用这份饮食方案 │ │
│ └──────────────────────────┘ │
│ │
│ 点击后可以: │
│ ✅ 复制照片和备注到新打卡 │
│ ✅ 修改内容后重新发布 │
│ ✅ 可选生成AI视频 │
│ ✅ 获得5积分奖励 │
│ │
│ 💡 适用场景: │
│ • 今天吃的和之前某天一样 │
│ • 想复用高分打卡记录 │
│ • 快速打卡不想重新拍照 │
└────────────────────────────────┘
```
**按钮样式**
- 颜色:绿色渐变(#4CAF50#45B649
- 大小宽度100%高度56px
- 字体18px加粗
- 图标:⚡(闪电,表示快速)
- 圆角12px
- 阴影0 4px 12px rgba(76, 175, 80, 0.3)
---
### 场景B查看【他人的】打卡详情页
```
┌────────────────────────────────┐
│ 【一键借鉴】 │
│ ┌──────────────────────────┐ │
│ │ 🎬 一键借鉴打卡 │ │
│ │ 学习这份营养方案 │ │
│ └──────────────────────────┘ │
│ │
│ 点击后可以: │
│ ✅ 复制菜品清单到我的打卡 │
│ ✅ 根据我的情况调整用量 │
│ ✅ AI生成适合我的食谱 │
│ ✅ 获得5积分奖励 │
│ │
│ 💡 适用场景: │
│ • 看到他人的优质打卡想学习 │
│ • 发现适合自己的饮食方案 │
│ • 需要新的饮食灵感 │
└────────────────────────────────┘
```
**按钮样式**
- 颜色:蓝色渐变(#2196F3#1E88E5
- 大小宽度100%高度56px
- 字体18px加粗
- 图标:🎬(摄像机,表示学习和记录)
- 圆角12px
- 阴影0 4px 12px rgba(33, 150, 243, 0.3)
---
## 💻 技术实现
### 1. 判断打卡详情页的场景
```javascript
/**
* 判断打卡详情页的场景
*/
function getCheckInDetailScene(recordId, currentUserId) {
const record = getCheckInRecordById(recordId);
if (record.user_id === currentUserId) {
// 场景A查看自己的打卡
return {
scene: 'self',
buttonText: '⚡ 一键复制打卡',
buttonColor: 'green',
buttonClass: 'copy-btn-self',
action: 'copyOwnCheckIn'
};
} else {
// 场景B查看他人的打卡
return {
scene: 'others',
buttonText: '🎬 一键借鉴打卡',
buttonColor: 'blue',
buttonClass: 'copy-btn-others',
action: 'learnFromOthers'
};
}
}
```
### 2. 一键复制自己的打卡
```javascript
/**
* 一键复制自己的打卡
*/
function copyOwnCheckIn(recordId) {
const record = getCheckInRecordById(recordId);
// 复制数据
const copiedData = {
photos_json: record.photos_json, // 照片URL数组
notes: record.notes, // 备注说明
voice_url: record.voice_url, // 语音备注(如果有)
copied_from_record_id: recordId, // 记录复制来源
is_copied: 1 // 标记为复制的打卡
};
// 保存到临时存储
wx.setStorageSync('tempCheckInData', copiedData);
// 跳转到打卡页
wx.navigateTo({
url: '/pages/check-in/check-in?from=copy&recordId=' + recordId
});
// 埋点统计
trackEvent('copy_own_check_in', {
record_id: recordId,
source: 'detail_page'
});
}
```
### 3. 一键借鉴他人的打卡
```javascript
/**
* 一键借鉴他人的打卡
*/
function learnFromOthers(recordId, currentUserId) {
const record = getCheckInRecordById(recordId);
// 获取用户自己的营养计划
const myPlan = getNutritionPlan(currentUserId);
// AI自动调整菜品用量
const adjustedDishes = adjustDishesForUser(
record.actual_dishes_json,
myPlan
);
// 准备借鉴数据
const learnedData = {
dishes_json: adjustedDishes, // AI调整后的菜品清单
reference_record_id: recordId, // 参考来源
reference_user_id: record.user_id, // 原作者ID
is_learned_from_others: 1 // 标记为借鉴的打卡
};
// 保存到临时存储
wx.setStorageSync('tempCheckInData', learnedData);
// 跳转到打卡页
wx.navigateTo({
url: '/pages/check-in/check-in?from=learn&recordId=' + recordId
});
// 给原作者增加积分(+2分
addPointsToUser(record.user_id, 2, 'content_learned', recordId);
// 埋点统计
trackEvent('learn_from_others', {
record_id: recordId,
original_user_id: record.user_id,
source: 'detail_page'
});
}
```
### 4. AI调整菜品用量
```javascript
/**
* AI调整菜品用量根据用户的营养计划
*/
function adjustDishesForUser(originalDishes, userPlan) {
// 计算原始菜品的总营养
const originalNutrition = calculateTotalNutrition(originalDishes);
// 计算调整比例
const proteinRatio = userPlan.target_protein / originalNutrition.protein;
const energyRatio = userPlan.target_energy / originalNutrition.energy;
// 取平均比例
const avgRatio = (proteinRatio + energyRatio) / 2;
// 调整每个菜品的用量
return originalDishes.map(dish => {
const newAmount = Math.round(dish.amount * avgRatio);
return {
...dish,
amount: newAmount, // 调整后的用量
adjusted: true, // 标记为AI调整过的
original_amount: dish.amount, // 保留原始用量供参考
adjustment_ratio: avgRatio.toFixed(2) // 调整比例
};
});
}
```
---
## 📊 页面路径说明
| 页面 | 路径 | 参数 | 说明 |
|-----|------|------|------|
| 打卡历史页 | `/pages/check-in-history/history` | - | 显示用户的打卡记录列表 |
| 打卡详情页(自己的) | `/pages/check-in-detail/detail` | `?id={recordId}&type=self` | 查看自己的打卡详情 |
| 打卡详情页(他人的) | `/pages/check-in-detail/detail` | `?id={recordId}&type=others` | 查看他人的打卡详情 |
| 复制确认页 | `/pages/copy-confirm/confirm` | `?from={recordId}` | 复制自己的打卡确认页 |
| 借鉴确认页 | `/pages/learn-confirm/confirm` | `?from={recordId}` | 借鉴他人的打卡确认页 |
| 打卡页 | `/pages/check-in/check-in` | `?from=copy&recordId={id}``?from=learn&recordId={id}` | 填写打卡内容 |
---
## 🎁 积分规则
| 行为 | 积分 | 说明 |
|-----|------|------|
| 一键复制打卡(自己的) | +5分 | 从历史记录快速复制 |
| 一键借鉴打卡(他人的) | +5分 | 学习他人的饮食方案 |
| 内容被借鉴(原作者) | +2分 | 自己的打卡被他人借鉴 |
---
## 📈 预期效果
| 指标 | 优化前 | 优化后 | 提升 |
|-----|-------|-------|------|
| **详情页停留时长** | 15秒 | 30秒 | +100% |
| **从详情页发起的打卡** | 5% | 20% | +300% |
| **一键复制打卡使用率** | 25% | 40% | +60% |
| **打卡转化率** | 30% | 45% | +50% |
**数据支持**
- 用户在详情页查看完整信息后,打卡意愿更强
- 详情页提供更多上下文,用户更愿意复制高质量打卡
- 减少操作步骤,提升转化率
---
## 💡 设计亮点
### 1. **场景区分** ⭐⭐⭐
- 智能判断是"自己的打卡"还是"他人的打卡"
- 不同场景显示不同的按钮文案和颜色
- 提供差异化的体验
### 2. **三重入口** ⭐⭐⭐
- 历史列表页:快速直接复制
- 详情页:查看后再复制
- 社区详情页:学习他人
### 3. **AI智能调整** ⭐⭐⭐
- 借鉴他人打卡时AI自动调整菜品用量
- 根据用户的营养计划个性化调整
- 降低借鉴门槛,提升使用率
### 4. **积分激励** ⭐⭐⭐
- 借鉴者获得+5分
- 原作者获得+2分
- 形成"创作-分享-学习"的正向循环
---
## 🚀 下一步优化
1. **智能推荐复制**
- 在详情页根据历史数据推荐"您可能也想复制这几条"
- 提供相似打卡记录推荐
2. **批量复制**
- 支持一次性复制一天的三餐
- 生成"一日食谱计划"
3. **收藏夹功能**
- 收藏优质打卡记录
- 从收藏夹快速复制
4. **打卡模板**
- 将高分打卡保存为模板
- 模板库供用户选择
---
**文档版本**v2.2.1
**更新日期**2025-11-20
**产品名称**:慢生活智能营养专家小程序
---
**让每个打卡详情页都成为下一次打卡的起点!** ⚡🎬