# 采集与展示分离方案 ## 当前问题 身份与账号页面的每个平台行都有 👤 采集按钮,点击后打开浏览器实际采集。但: - 采集和展示耦合在一起,用户分不清是"重新读取文件"还是"重新打开浏览器" - 每次想看最新状态都得重新采集(打开浏览器耗时几十秒) - 展示数据已经在 profiles.json 中,但缺少"仅刷新展示"的入口 ## 当前数据流 ``` 采集(打开浏览器) │ douyin_ops 执行 │ ▼ profiles.json │ ▼ api_sms_accounts 读取 │ ▼ loadSmsAccounts 展示 ``` ## 目标:采集与展示分离 ``` 命令与任务 身份与账号 ───────────────────── ───────────────────── 信息采集 TAB 卡片展示 ├─ 选账号(单/多/全部) ├─ 状态:登录/昵称/同步 ✅❌ ├─ 执行采集(开浏览器) ├─ 昵称名称 └─ 查看采集状态 └─ [🔄 刷新展示] 按钮 │ ▼ 只重新调 API,不打开浏览器 从 profiles.json 读最新数据 ``` ## 改动点 ### 1. 身份与账号页面 - 去掉每行平台的 👤 采集按钮(移到命令与任务) - 卡片底部保留「👤 全部采集」(批量操作) - 增加「🔄 刷新展示」按钮(只重调 API,不打开浏览器) - 增加「🔄 刷新状态」按钮在页面右上角(已有) ### 2. 命令与任务页面 - 新增「信息采集」TAB(第四个 TAB) - 内容:账号下拉选择 + 执行采集 + 采集状态日志 ### 3. 后端 API - 现有 `POST /api/matrix/accounts/{id}/collect-profile` — 保留(采集用) - 现有 `GET /api/matrix/sms/accounts` — 保留(展示用) - 不需要新增 API ## 好处 - 展示秒级刷新(只读文件,不开浏览器) - 采集集中管理(在命令与任务统一操作) - 用户不混淆"刷新展示"和"重新采集"