feat(announcement): 新增首页弹窗公告功能并完成弹窗UI视觉重构

- 数据库与后端:announcements 表增加 is_popup 字段及迁移脚本,提供前台弹窗接口与多公告优先级选取,补全选优单测
- 管理后台:总后台与分销后台公告编辑新增「弹窗公告」开关与列表标签展示
- 前台交互:前台 PC/移动端首页引入 AnnouncementPopup,支持同一用户同一天同一公告仅弹一次的关闭记录
- 视觉优化:重构弹窗结构,顶栏镶嵌品牌橙流光细条与浅暖橙通知徽标,中间内嵌浅灰舒适阅读卡片,底部搭配大锤橙实心主操作按钮
- 验证方式:后端 announcement 单测通过,前端 npm run build 编译无报错,浏览器实机截图验证
This commit is contained in:
yml2213
2026-10-12 18:33:44 +08:00
parent 41d7ffd073
commit 4a9e5f9d66
20 changed files with 758 additions and 14 deletions
+2
View File
@@ -657,6 +657,8 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
announcementRoutes := api.Group("/announcements")
{
announcementRoutes.GET("", announcementHandler.List)
// 弹窗公告必须注册在 /:id 之前语义更清晰;gin 允许静态段与通配符同级共存。
announcementRoutes.GET("/popup", announcementHandler.Popup)
announcementRoutes.GET("/:id", announcementHandler.GetByID)
}