4.4 KiB
4.4 KiB
会议纪要 - 2026-03-10 | Toast 通知系统全局落地 & hot_score 数据库迁移
本文件由助理橙子在会议结束后自动生成。
基本信息
- 时间:2026-03-10
- 议题:1) 文章保存后添加成功提示;2) 数据库缺失 hot_score 字段报错修复;3) 全系统 alert 替换为 toast 组件
- 触发方式:用户反馈 → 逐步扩展到全系统改造
- 参与角色:管理端开发工程师、后端开发、助理橙子
各角色发言
【管理端开发工程师】
当前管理端所有操作反馈都使用原生 alert(),体验差,阻断操作流程,用户必须手动点 OK 才能继续。需要一个统一的 toast 通知系统:非阻塞、自动消失、视觉语义化(绿色=成功、红色=错误、蓝色=信息)。
考虑到项目没有现成 toast 依赖(sonner 安装失败),选择纯原生 DOM 实现 src/utils/toast.ts,无需第三方库,全量兼容现有项目。
【后端开发】
保存文章时报 Error 1054 (42S22): Unknown column 'hot_score' in 'field list',原因是前端 ContentPage.tsx 已在 handleSaveSection 中传递 hotScore 字段,但后端 Chapter model 缺少该字段,且数据库 chapters 表也未建列。
需要两步修复:① ALTER TABLE 新增列;② 同步 model struct。
【助理橙子】
全系统 18 个文件约 90 处 alert 经 PowerShell 脚本批量替换。替换规则:
- 含"失败/错误/请填/不一致/必填"→
toast.error() - 含"成功/已保存/已删除/已创建"→
toast.success() - 其余→
toast.info()
事后人工复查,修正 5 处语义误判(info 改 error)。
讨论过程
- 用户提出"文章保存了要提示保存成功"
- 管理端工程师创建
src/utils/toast.ts(纯原生,无依赖),替换ContentPage.tsx的 alert - 用户截图报错
Unknown column 'hot_score' - 后端工程师执行
ALTER TABLE chapters ADD COLUMN hot_score INT NOT NULL DEFAULT 0,更新chapter.gomodel - 用户提出"整个系统的 alert 都可以改为 toast"
- 助理橙子编写 PowerShell 批量替换脚本,处理 18 个文件
- 人工复查
toast.info()调用,将 5 处验证提示修正为toast.error()
会议决议
- Toast 系统统一规范:管理端所有用户反馈统一使用
@/utils/toast,禁止使用alert() - toast 类型语义:
toast.success()→ 操作成功、保存成功、删除成功toast.error()→ 操作失败、表单验证不通过、接口报错toast.info()→ 中性提示(无数据、当前状态说明)
- hot_score 字段:
chapters表已新增,Chaptermodel 已同步,热度分功能可正常保存 - 数据库变更流程:model 字段与 DB 列必须同步维护,ALTER TABLE 后立即更新 model struct
待办事项
| 责任角色 | 任务 | 优先级 | 截止建议 |
|---|---|---|---|
| 管理端开发工程师 | 新增页面/组件时使用 toast 而非 alert(已有规范) | 高 | 持续 |
| 后端开发 | hot_score 排名算法接口(若有)按此字段排序 | 低 | 待需求 |
问题与作答区
| # | 问题 | 责任角色 | 作答 |
|---|---|---|---|
| 1 | hot_score 热度分的计算逻辑和更新时机是什么? | 产品经理/后端开发 | (待补充) |
| 2 | toast 是否需要支持持久化(不自动消失)的场景? | 管理端开发工程师 | (待补充) |
各角色经验与业务理解更新
后端开发
chapters表新增hot_score INT NOT NULL DEFAULT 0,用于热度排名算法- model struct 字段须与 DB 列同步,否则 GORM 写入报 1054 错误
管理端开发工程师
- 创建
src/utils/toast.ts:纯原生 DOM toast,无第三方依赖,支持 success/error/info - 全系统 18 个文件约 90 处
alert()已替换;替换按语义分类,info 类需人工复查 - 新规范:管理端禁用
alert(),统一使用toast.*
团队共享
- Toast 替换脚本方法论:用 PowerShell 正则 + 语义关键词批量替换,替换后人工复查
toast.info()是否应为toast.error()(验证提示类常被误判) - DB 变更 SOP:前端传新字段 → 后端先执行 ALTER TABLE → 再更新 model → 重启服务
会议纪要由助理橙子生成 | 各角色经验已同步至 agent/{角色}/evolution/2026-03-10.md