# suanming **Repository Path**: lvm1024/suanming ## Basic Information - **Project Name**: suanming - **Description**: suanming - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-22 - **Last Updated**: 2025-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目简介 Tarot + MBTI 小程序(uni-app + uniCloud)。支持: - 首页导航与品牌样式 - MBTI 测评(16/48/96)与结果页、历史记录(上限50) - 塔罗抽牌(单张/三张)、种子复现、正逆位解释与积极度评分 - uniCloud 云函数与本地静态数据回退 ## 目录结构(摘) ``` MyPro/ App.vue # 全局样式(品牌变量应用) pages.json # 页面注册 static/ # 本地静态题库/牌库(回退使用) mbti_questions_low.json mbti_questions_medium.json mbti_questions_high.json tarot_cards_major.json uniCloud-aliyun/ cloudfunctions/ get-config/ get-mbti/ get-tarot/ seed-db/ seed/ # 云端可用的种子数据(已同步自 static) mbti_low.json mbti_medium.json mbti_high.json tarot_major.json database/ # 本地开发用数据库“聚合”数据(云端不打包) app_config.json mbti_questions.json tarot_cards.json ``` ## MBTI 档位与题量 - 档位:low/medium/high - 目标题量:16/48/96(由 `get-config` 的 `mbtiTarget` 或 `database/mbti_questions.json.meta.mbtiTarget` 指定) - 前端按目标数从题库截取;当题库不足时使用全部已有题目 ## 开发环境 - HBuilderX(推荐) - 绑定 uniCloud 服务空间(阿里云) - Node.js(如需本地脚本) ## 运行与调试 - 本地预览:使用 HBuilderX 运行到浏览器/小程序模拟器 - 真实设备:选择对应平台运行 前端数据加载优先级(两端一致): 1) 云函数数据(`uniCloud.callFunction`) 2) 本地静态回退(`/static/*.json`) ## 数据初始化(seed-db) 云函数 `seed-db` 会按以下优先级装载种子数据: 1) `MyPro/uniCloud-aliyun/database/*.json`(仅本地可用) 2) `MyPro/uniCloud-aliyun/cloudfunctions/seed-db/seed/*.json`(云端/本地均可) 3) 内置默认空结构 注意:云端部署时 `database/` 不会被打包,若需要云端数据,请放入 `seed-db/seed/`。 ### 在 HBuilderX 运行 seed-db(云端) 1) 绑定服务空间(阿里云) 2) 右键 `MyPro/uniCloud-aliyun/cloudfunctions/seed-db` → 运行云函数(阿里云) 3) 事件参数: ```json {} ``` 4) 控制台期望输出 `code: 0`,并出现 insertedId 或 count 字段 ### 强制重置并重建(force) 如遇集合已有数据或日志提示 skipped,可用强制模式: ```json {"force": true} ``` - 逻辑:清空 `app_config`、`mbti_questions`、`tarot_cards` 后重新插入 ### 在本地运行 seed-db(本地调试) 1) 启动本地 uniCloud 运行服务 2) 右键 `seed-db` → 运行云函数(本地) 3) 事件参数与云端一致 ## 常见问题 - 云端为何读取不到 `database/*.json`? - 云端打包不包含 `database` 目录,请将数据放到 `seed-db/seed/`。 - seed-db 返回 `skipped`? - 表示集合非空或找不到数据源,使用 `{ "force": true }` 重试。 - 前端仍显示“回退数据”? - 检查云端集合是否已插入正确记录;前端会在云端无可用数据时自动回退到 `static/`。 ## 版权与许可 - 仅用于学习与演示,数据内容示例化处理。