# 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` ## 页面流转 1. 用户从“我的”页进入 `NSTI 戒烟人格测试` 2. 在 `pages/nsti/index` 查看测试说明和最近结果 3. 进入 `pages/nsti/test` 完成 10 道题 4. 本地计算结果后跳转 `pages/nsti/result` 5. 结果页可重新测试、分享文案、进入戒烟主流程 ## 数据与存储 使用本地缓存保存测试结果和草稿: - `nsti_latest_result`:最近一次结果 - `nsti_history`:历史结果列表,最多保留 12 条 - `nsti_draft`:中途退出后的答题草稿 对应常量定义在 `src/utils/storage.js`。 ## 结果算法 当前算法采用“维度计数 + 人格权重”的混合方案: 1. 每道题的 A/B/C/D 选项分别代表一种行为维度 2. 每个选项同时会给 1-2 个具体人格加权 3. 提交后先统计维度分布,再统计人格得分 4. 根据前两高维度组合给对应人格一个额外加权 5. 取最终得分最高的人格作为结果,若分数相同则优先更抽象的人格 这种做法兼顾了: - 题目抽象风格和直觉作答体验 - 16 型人格的差异化结果 - 后续扩展为后台配置时的可维护性 ## 后续可扩展方向 - 把题库和人格画像迁移到后台配置 - 记录测试完成率、分享率、人格分布 - 把人格结果与首页激励文案、AI 建议、戒烟计划联动 - 增加人格历史对比和“再次测试看变化”