ec87a9fc55
* fix: polish logs filter and stats money display * fix: align floating tabs on logs and stats * feat: enhance user profile and achievement features - Add functionality for users to update their profile picture and nickname - Implement achievement theme selection in onboarding - Update API integration for profile updates and achievement themes - Refine UI elements for better user interaction and experience * feat: 梦想清单页与戒烟相关 API - 梦想清单:系统导航栏、浮动添加、图标来自后台预设 - dream-presets API、pages.json 导航样式 Made-with: Cursor * feat(nsti): add nicotine personality test flow
1.9 KiB
1.9 KiB
NSTI 戒烟人格测试
概览
NSTI 是为 smt 小程序新增的一组轻量娱乐化测试页面,用 10 道题和 16 种抽象人格帮助用户以更低心理压力进入戒烟主题。
当前实现为纯前端方案,不依赖后端接口:
- 题库和人格画像:
src/utils/nsti-data.js - 结果算法与本地存储:
src/utils/nsti.js - 测试首页:
src/pages/nsti/index.vue - 答题页:
src/pages/nsti/test.vue - 结果页:
src/pages/nsti/result.vue - 入口位置:
src/pages/profile/index.vue
页面流转
- 用户从“我的”页进入
NSTI 戒烟人格测试 - 在
pages/nsti/index查看测试说明和最近结果 - 进入
pages/nsti/test完成 10 道题 - 本地计算结果后跳转
pages/nsti/result - 结果页可重新测试、分享文案、进入戒烟主流程
数据与存储
使用本地缓存保存测试结果和草稿:
nsti_latest_result:最近一次结果nsti_history:历史结果列表,最多保留 12 条nsti_draft:中途退出后的答题草稿
对应常量定义在 src/utils/storage.js。
结果算法
当前算法采用“维度计数 + 人格权重”的混合方案:
- 每道题的 A/B/C/D 选项分别代表一种行为维度
- 每个选项同时会给 1-2 个具体人格加权
- 提交后先统计维度分布,再统计人格得分
- 根据前两高维度组合给对应人格一个额外加权
- 取最终得分最高的人格作为结果,若分数相同则优先更抽象的人格
这种做法兼顾了:
- 题目抽象风格和直觉作答体验
- 16 型人格的差异化结果
- 后续扩展为后台配置时的可维护性
后续可扩展方向
- 把题库和人格画像迁移到后台配置
- 记录测试完成率、分享率、人格分布
- 把人格结果与首页激励文案、AI 建议、戒烟计划联动
- 增加人格历史对比和“再次测试看变化”