diff --git a/docs/smt双模式改造方案.md b/docs/smt双模式改造方案.md new file mode 100644 index 0000000..7900a34 --- /dev/null +++ b/docs/smt双模式改造方案.md @@ -0,0 +1,532 @@ +# smt 双模式改造方案 + +> 创建时间:2026-03-17 +> 状态:待开发 +> 相关文档:[[戒烟产品分析-smt-vs-quit-checkin]] + +--- + +## 📁 现有项目结构 + +``` +smt/ +├── api/ # 接口封装 +│ ├── auth.js # 登录认证 +│ ├── smoke.js # 抽烟记录 API +│ ├── profile.js # 用户资料 API +│ ├── request.js # 请求封装 +│ └── index.js # 统一导出 +├── components/ # 业务组件 +│ └── smoke-record-dialog/ # 记录弹框组件 +├── config/ # 环境配置 +│ └── index.js # BASE_URL 配置 +├── hooks/ # 组合式逻辑 +│ └── useLogin.js # 登录相关 hook +├── pages/ # 页面 +│ ├── index/ # 首页 ⭐ 需要改造 +│ ├── stats/ # 统计页 +│ ├── logs/ # 历史记录页 +│ ├── ai/ # AI 建议 +│ ├── ai_summary/ # AI 总结 +│ ├── share/ # 分享页 +│ ├── profile/ # 个人中心 +│ ├── quit-plan/ # 戒烟计划 +│ └── onboarding/ # 新用户引导 ⭐ 需要改造 +├── stores/ # Pinia 状态管理 +│ ├── user.js # 用户状态 ⭐ 需要扩展 +│ ├── profile.js # 用户资料 ⭐ 需要扩展 +│ ├── logs.js # 记录状态 +│ ├── dashboard.js # 首页数据 +│ └── index.js # 统一导出 +├── utils/ # 工具函数 +│ ├── storage.js # 本地存储 ⭐ 需要扩展 +│ ├── time.js # 时间处理 +│ └── format.js # 格式化 +├── static/ # 静态资源 +├── App.vue # 应用入口 +├── main.js # 主入口 +├── pages.json # 页面配置 ⭐ 需要修改 +└── manifest.json # 小程序配置 +``` + +--- + +## 🔧 需要修改/新增的文件 + +### 新增文件 + +| 文件路径 | 说明 | +|----------|------| +| `pages/mode-select/index.vue` | **新增** - 模式选择引导页 | +| `pages/quit-home/index.vue` | **新增** - 戒烟打卡模式首页 | +| `pages/record-home/index.vue` | **新增** - 记录抽烟模式首页 | +| `components/quit-checkin-btn/index.vue` | **新增** - 打卡按钮组件 | +| `components/simple-counter/index.vue` | **新增** - 简易计数器组件 | + +### 需要修改的文件 + +| 文件路径 | 修改内容 | +|----------|----------| +| `stores/user.js` | 添加 `mode` 字段存储用户模式 | +| `stores/profile.js` | 添加 `quitDays` 戒烟天数计算 | +| `utils/storage.js` | 添加 `USER_MODE_KEY` 常量 | +| `pages.json` | 添加新页面路由,修改首页逻辑 | +| `pages/onboarding/index.vue` | 完成引导后跳转到模式选择页 | +| `pages/profile/index.vue` | 添加模式切换入口 | +| `pages/index/index.vue` | 根据模式渲染不同首页(可选方案) | + +--- + +## 📝 详细代码修改 + +### 1. `utils/storage.js` - 新增常量 + +```javascript +export const USER_MODE_KEY = 'user_mode' // 新增 +``` + +--- + +### 2. `stores/user.js` - 扩展用户模式 + +```javascript +import { defineStore } from 'pinia' +import { storage, USER_KEY, SESSION_KEY, USER_MODE_KEY } from '@/utils/storage' + +export const useUserStore = defineStore('user', { + state: () => ({ + user: storage.get(USER_KEY), + sessionKey: storage.get(SESSION_KEY), + isLoggedIn: !!storage.get(SESSION_KEY), + mode: storage.get(USER_MODE_KEY) || null // 'quit' | 'record' | null + }), + + actions: { + setUser(user, sessionKey) { + this.user = user + this.sessionKey = sessionKey + this.isLoggedIn = true + storage.set(USER_KEY, user) + storage.set(SESSION_KEY, sessionKey) + }, + + setMode(mode) { + this.mode = mode + storage.set(USER_MODE_KEY, mode) + }, + + logout() { + this.user = null + this.sessionKey = null + this.isLoggedIn = false + storage.remove(USER_KEY) + storage.remove(SESSION_KEY) + } + } +}) +``` + +--- + +### 3. `pages.json` - 添加新页面 + +```json +{ + "pages": [ + { + "path": "pages/mode-select/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/quit-home/index", + "style": { + "navigationStyle": "custom" + } + }, + { + "path": "pages/record-home/index", + "style": { + "navigationBarTitleText": "记录抽烟" + } + }, + { + "path": "pages/index/index", + "style": { + "navigationStyle": "custom" + } + } + ] +} +``` + +--- + +### 4. `pages/mode-select/index.vue` - 模式选择页 + +```vue + + + +``` + +--- + +### 5. `pages/quit-home/index.vue` - 戒烟打卡首页 + +**界面设计:** + +``` +┌─────────────────────────┐ +│ 🔥 已坚持 23 天 │ +│ │ +│ ┌─────────┐ │ +│ │ 打卡 │ │ +│ │ 今天没抽│ │ +│ └─────────┘ │ +│ │ +│ 💰 已省下 184 元 │ +│ 🫁 肺部正在恢复中... │ +│ │ +│ ───────────────────── │ +│ 今日打卡 ✓ 08:30 │ +└─────────────────────────┘ +``` + +**核心代码:** + +```vue + + + +``` + +--- + +### 6. `pages/record-home/index.vue` - 记录抽烟首页 + +**界面设计:** + +``` +┌─────────────────────────┐ +│ 今天抽了 3 根 │ +│ │ +│ ┌─────────┐ │ +│ │ +1 根 │ │ +│ │ 点击记录│ │ +│ └─────────┘ │ +│ │ +│ 昨日:4 根 │ +│ 本周:18 根 │ +│ │ +│ ───────────────────── │ +│ 历史记录 > │ +└─────────────────────────┘ +``` + +**核心代码:** + +```vue + + + + + +``` + +--- + +### 7. `pages/profile/index.vue` - 添加模式切换 + +在个人中心添加: + +```vue + + ⚙️ + 模式切换 + {{ modeText }} + + + +``` + +--- + +## 📋 开发顺序 + +| 阶段 | 任务 | 预估时间 | 状态 | +|------|------|----------|------| +| **第一阶段** | 1. 修改 `utils/storage.js`
2. 修改 `stores/user.js`
3. 创建 `pages/mode-select/index.vue`
4. 修改 `pages.json` | 1-2h | ⬜ 待开始 | +| **第二阶段** | 1. 创建 `pages/quit-home/index.vue`
2. 打卡 API 对接
3. 省钱金额计算 | 2-3h | ⬜ 待开始 | +| **第三阶段** | 1. 创建 `pages/record-home/index.vue`
2. 一键记录 API 对接 | 1-2h | ⬜ 待开始 | +| **第四阶段** | 1. 修改 `pages/profile/index.vue` 模式切换
2. 修改引导流程跳转逻辑 | 1h | ⬜ 待开始 | + +**总预估:5-8 小时** + +--- + +## ⚠️ 注意事项 + +### 1. TabBar 问题 + +如果要让两种模式共用 TabBar,首页需要根据 mode 动态渲染: + +```vue + + +``` + +### 2. 数据兼容 + +老用户没有 mode 字段,需要引导选择模式: + +```javascript +// App.vue 或首页 +if (!userStore.mode) { + uni.redirectTo({ url: '/pages/mode-select/index' }) +} +``` + +### 3. API 对接 + +打卡功能需要后端新增接口: + +``` +POST /api/checkin +{ + "date": "2026-03-17", + "quit_days": 23 +} +``` + +或复用现有 resisted 接口。 + +--- + +## 🔗 相关文档 + +- [[戒烟产品分析-smt-vs-quit-checkin]] +- [[smt - 技术文档]] +- [[quit-checkin - 技术文档]] + +--- + +#技术开发 #smt #戒烟 #小程序 #双模式 diff --git a/docs/戒烟产品分析-smt-vs-quit-checkin.md b/docs/戒烟产品分析-smt-vs-quit-checkin.md new file mode 100644 index 0000000..8466c37 --- /dev/null +++ b/docs/戒烟产品分析-smt-vs-quit-checkin.md @@ -0,0 +1,303 @@ +# 戒烟产品分析 - smt vs quit-checkin + +> 创建时间:2026-03-17 +> 状态:进行中 +> 相关项目:[[smt]]、[[quit-checkin]] + +--- + +## 📊 产品对比 + +### 基本信息 + +| 维度 | smt(戒烟助手) | quit-checkin(无烟打卡) | +|------|----------------|------------------------| +| **定位** | 戒烟助手(完整版) | 无烟打卡(轻量版) | +| **技术栈** | uni-app + Vue 3 + Pinia | uni-app + Vue 3 + Vite | +| **功能丰富度** | 高 | 低 | +| **当前问题** | 日活少、推广难、记录违背人性 | 功能单一 | + +### 核心功能对比 + +| 功能 | smt | quit-checkin | +|------|-----|--------------| +| 记录抽烟 | ✅ 详细记录(数量、等级、备注) | ❌ | +| 记录忍住 | ✅ | ❌ | +| 打卡 | ❌ | ✅ 核心功能 | +| 统计分析 | ✅ 周/月/年趋势 | ✅ 基础统计 | +| AI 建议 | ✅ | ❌ | +| 健康恢复指标 | ✅ | ❌ | +| 省钱计算 | ✅ | ❌ | +| 戒烟计划 | ✅ | ❌ | +| 梦想激励 | ❌ | ✅ | +| 分享海报 | ❌ | ✅ | + +--- + +## 🎯 产品定位差异 + +### smt(戒烟助手) +- **核心理念**:数据驱动戒烟 +- **用户行为**:主动记录抽烟/忍住 +- **心理感受**:审计失败(每次记录都是承认失败) +- **价值点**:数据分析、AI建议、健康指标 + +### quit-checkin(无烟打卡) +- **核心理念**:正向激励戒烟 +- **用户行为**:每日打卡 +- **心理感受**:奖励成功(每次打卡都是成就积累) +- **价值点**:天数累计、省钱金额、分享炫耀 + +--- + +## 👥 目标用户分析 + +### smt 用户画像 +- 25-45岁,有一定烟龄 +- 想系统化戒烟,需要数据和指导 +- 愿意投入时间精力管理戒烟过程 +- 对数据分析有需求 + +### quit-checkin 用户画像 +- 年轻用户,轻度戒烟需求 +- 想简单打卡记录 +- 注重社交分享和成就感 +- 使用场景:每日打卡、简单记录 + +--- + +## 📈 获取用户难度对比 + +| 维度 | smt | quit-checkin | 评分 | +|------|-----|--------------|------| +| **获客门槛** | 中等(需引导流程) | 低(即开即用) | QC胜 ⭐⭐⭐⭐ | +| **分享裂变** | 弱(展示失败) | 强(海报分享) | QC胜 ⭐⭐⭐⭐ | +| **首次体验** | 需完成引导问卷 | 直接打卡 | QC胜 ⭐⭐⭐⭐ | +| **推广成本** | 高 | 低(自带裂变) | QC胜 ⭐⭐⭐⭐⭐ | + +**结论:quit-checkin 更容易获取用户** + +--- + +## 💪 用户活跃度/留存潜力对比 + +| 维度 | smt | quit-checkin | 评分 | +|------|-----|--------------|------| +| **核心钩子** | AI建议、健康指标 | 打卡成就感 | smt胜 ⭐⭐⭐⭐ | +| **回访理由** | 统计、省钱金额 | 天数累计 | smt胜 ⭐⭐⭐⭐ | +| **社交属性** | 弱 | 海报分享,较强 | QC胜 ⭐⭐⭐ | +| **激励体系** | 数据驱动 | 正向激励 | 平手 ⭐⭐⭐ | +| **长期留存** | 高(功能丰富) | 中(功能单一) | smt胜 ⭐⭐⭐⭐⭐ | + +**结论:smt 活跃度潜力更高** + +--- + +## 💰 商业化潜力对比 + +| 维度 | smt | quit-checkin | 评分 | +|------|-----|--------------|------| +| **付费场景** | 高级AI、戒烟计划、专家咨询 | 会员特权、定制海报 | smt胜 ⭐⭐⭐⭐⭐ | +| **广告场景** | 戒烟产品、健康产品 | 戒烟产品 | 平手 ⭐⭐⭐ | +| **增值服务** | 数据报告、专家咨询 | 较少 | smt胜 ⭐⭐⭐⭐ | + +**结论:smt 商业化潜力更高** + +--- + +## 🔍 核心问题诊断 + +### 为什么 smt 日活少? + +#### 人性因素分析 + +| 人性因素 | 具体表现 | +|----------|----------| +| **懒惰** | 每次抽烟都要打开小程序记录,太麻烦 | +| **遗忘** | 抽烟是无意识行为,抽完就忘了记录 | +| **逃避心理** | 记录=承认自己又抽了,心理负担重 | +| **即时反馈弱** | 记录后没有即时奖励,动力不足 | +| **挫败感** | 越记录越发现自己抽得多,想放弃 | + +**本质问题:产品要求用户"主动做额外的事",而人是厌恶"额外负担"的。** + +--- + +## 💡 PM 建议(2026-03-17) + +### 🎯 决策:全力转向 quit-checkin + +**核心理由:戒烟产品本质是"情绪按摩",不是"数据监控"** + +| 维度 | smt | quit-checkin | +|------|-----|--------------| +| **心理契合** | 记录=审计失败 ❌ | 打卡=奖励成功 ✅ | +| **传播力** | 没人分享抽烟记录 ❌ | 愿意分享"戒烟100天" ✅ | +| **维护成本** | AI+统计,成本高 ❌ | 逻辑简单,好维护 ✅ | +| **获客成本** | 高 ❌ | 自带裂变,0成本 ✅ | + +### 具体操作建议 + +#### 1. 不要废弃 smt,而是"取其精华" + +把 smt 的高价值功能**降维**嵌入 quit-checkin: + +| smt 功能 | 如何嵌入 quit-checkin | +|----------|----------------------| +| 健康恢复指标 | 打卡满X天解锁视图 | +| AI 建议 | 只在"快忍不住了"时弹出应急 | +| 省钱账单 | 打卡页实时显示"已省XX元" | + +#### 2. 运营迁移 + +- smt 首页加提示:**"轻量版上线,试试更简单的无烟打卡"** +- 老用户可将 smt 数据同步到 quit-checkin(保留成就感) + +#### 3. quit-checkin 迭代重点 + +- **视觉溢价**:把分享海报做得高级,让用户有面子 +- **梦想激励**:打卡省下的钱填补梦想进度条(如:给女儿买钢琴) +- **仪式感**:打卡动效、勋章音效,让用户对"点一下"上瘾 + +--- + +## 🚀 改造方案:smt 双模式 + +### 核心思路 + +在现有 smt 基础上快速迭代,而不是推倒重来: + +1. **首次启动引导**:让用户选择"戒烟打卡"或"记录抽烟" +2. **根据选择切换首页**:不同模式展示不同界面 +3. **保留历史数据**:用户历史数据兼容 + +### 优势 + +| 维度 | 说明 | +|------|------| +| **用户不流失** | 现有用户平滑过渡,无需迁移 | +| **开发成本低** | 复用现有代码,增量修改 | +| **数据保留** | 用户历史数据不丢失 | +| **快速验证** | 改动小,可以快速上线测试 | + +--- + +### 首次启动引导设计 + +``` +┌─────────────────────────┐ +│ 你想怎么戒烟? │ +│ │ +│ ┌───────────────────┐ │ +│ │ 🌟 我要戒烟打卡 │ │ +│ │ 记录坚持的天数 │ │ +│ └───────────────────┘ │ +│ │ +│ ┌───────────────────┐ │ +│ │ 📊 我要记录抽烟 │ │ +│ │ 跟踪抽烟频率 │ │ +│ └───────────────────┘ │ +│ │ +└─────────────────────────┘ +``` + +--- + +### 模式一:戒烟打卡(quit-checkin 风格) + +**首页改造:** + +``` +┌─────────────────────────┐ +│ 🔥 已坚持 23 天 │ +│ │ +│ ┌─────────┐ │ +│ │ 打卡 │ │ +│ │ 今天没抽│ │ +│ └─────────┘ │ +│ │ +│ 💰 已省下 184 元 │ +│ 🫁 肺部正在恢复中... │ +│ │ +│ ───────────────────── │ +│ 今日打卡 ✓ 08:30 │ +└─────────────────────────┘ +``` + +--- + +### 模式二:记录抽烟(精简版) + +**首页改造:** + +``` +┌─────────────────────────┐ +│ 今天抽了 3 根 │ +│ │ +│ ┌─────────┐ │ +│ │ +1 根 │ │ +│ │ 点击记录│ │ +│ └─────────┘ │ +│ │ +│ 昨日:4 根 │ +│ 本周:18 根 │ +│ │ +│ ───────────────────── │ +│ 历史记录 > │ +└─────────────────────────┘ +``` + +**点击按钮 → 直接 +1,无需弹框** + +--- + +## 📋 开发清单 + +### 第一阶段:引导 + 模式切换 + +| 任务 | 预估时间 | 状态 | +|------|----------|------| +| 新增引导页 | 2h | ⬜ 待开始 | +| 用户模式存储 | 0.5h | ⬜ 待开始 | +| 首页条件渲染 | 1h | ⬜ 待开始 | +| 模式切换入口(个人中心) | 1h | ⬜ 待开始 | + +### 第二阶段:戒烟打卡模式 + +| 任务 | 预估时间 | 状态 | +|------|----------|------| +| 打卡按钮 + 动效 | 2h | ⬜ 待开始 | +| 天数累计展示 | 1h | ⬜ 待开始 | +| 省钱金额计算 | 0.5h | ⬜ 待开始 | +| 健康恢复指标(从 smt 搬运) | 2h | ⬜ 待开始 | + +### 第三阶段:记录抽烟模式精简 + +| 任务 | 预估时间 | 状态 | +|------|----------|------| +| 首页大按钮 +1 | 1h | ⬜ 待开始 | +| 精简历史记录页 | 1h | ⬜ 待开始 | +| 统计页精简 | 1h | ⬜ 待开始 | + +--- + +## 🗓️ 下一步行动 + +| 时间 | 行动 | 状态 | +|------|------|------| +| **本周** | 停止 smt 新功能开发,仅维持运行 | ⬜ 待开始 | +| **下周** | 优化 quit-checkin 分享海报,搬运 smt 健康指标 | ⬜ 待开始 | +| **下个月** | 小红书/即刻以"自律打卡"推广 quit-checkin | ⬜ 待开始 | + +--- + +## 📎 相关文档 + +- [[smt - 技术文档]] +- [[quit-checkin - 技术文档]] +- [[戒烟产品市场调研]] +- [[微信小程序运营策略]] + +--- + +#产品分析 #戒烟 #小程序 #smt #quit-checkin diff --git a/pages.json b/pages.json index 52ac202..99b3aa7 100644 --- a/pages.json +++ b/pages.json @@ -6,6 +6,12 @@ } }, "pages": [ + { + "path": "pages/mode-select/index", + "style": { + "navigationStyle": "custom" + } + }, { "path": "pages/index/index", "style": { diff --git a/pages/index/index.vue b/pages/index/index.vue index 353d70f..5d80644 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,18 +1,19 @@