## Work Log - 后台首页按 Ant Design 规范优化(2026-04-27) - 背景: - 用户要求“按照 ant design 规范优化页面”。 - 本次按最小闭环默认命中后台首页 `/admin`,不改接口、权限与路由,仅优化页面组织与组件用法。 - 本次改动: - `web/src/app/admin/page.tsx` - 新增模块分组筛选:使用 `Segmented` 展示“全部 + 各业务分类”并联动卡片列表。 - 新增筛选结果统计:在顶部统计区增加“筛选结果”卡片。 - 卡片内容结构标准化:模块卡片改为 `Card.Meta + Typography.Paragraph(ellipsis) + Tag`,信息层级更符合 AntD 卡片模式。 - 加入分类色标映射(`CATEGORY_COLORS`),保持类别可读性。 - 保留仓库既有 `Card` 类型兼容方案(`AntCard` 强转),并扩展 `Meta` 子组件,兼容 React 19 + 当前 AntD 类型约束。 - 权限逻辑不变:仍由 `visible(hasPermission)` 决定模块可见性。 - AntD CLI 校验(按技能要求): - 变更前 API 查询(JSON): - `info Card/Grid/Statistic/Typography/Tag/Avatar/Empty/Space/Segmented/Badge/Flex --format json` - 变更后规范检查: - `npx @ant-design/cli lint web/src/app/admin/page.tsx --format json` -> 无问题(`total=0`)。 - 验证: - `npm --workspace web exec tsc --noEmit --pretty false` -> 通过。 - 风险与影响: - 影响范围仅前端后台首页展示层(`/admin`)。 - 未改动后端接口、RBAC、菜单数据与路由注册,功能行为保持不变。 ## Work Log - 左侧菜单收缩按钮下沉到左下角并补齐菜单图标(2026-04-27) - 背景: - 用户要求“左侧菜单收缩按钮放到左下角,给菜单都配上图标”。 - 本次改动: - `web/src/app/admin/layout.tsx` - 桌面端收缩按钮从顶部 `Header` 移除,改为侧栏底部按钮(左下角)。 - 侧栏菜单构建函数新增图标注入:优先使用后端 `menu.icon`,其次按 `menu.path` 回退,最后按“目录/叶子”使用默认图标兜底,确保每个菜单都有图标。 - 增加默认菜单图标映射,覆盖当前 seed 中 `LayoutDashboard/Users/ShieldCheck/MenuSquare/Settings2/Network/Zap/Map/RadarChart/Experiment/FolderTree/FileText/Terminal`。 - `web/src/app/globals.css` - 侧栏改为“菜单区域滚动 + 底部按钮固定”布局,保证按钮稳定停靠在左下角且不挤占菜单可视区。 - AntD CLI 校验(按技能要求): - 变更前 API 查询(JSON): - `info Layout/Menu/Button --format json` - 变更后规范检查: - `npx @ant-design/cli lint web/src/app/admin/layout.tsx --format json` -> 无问题(`total=0`)。 - 验证: - `npm --workspace web exec tsc --noEmit --pretty false` -> 通过。 - 风险与影响: - 仅影响后台壳层导航展示与交互,不改动路由、权限与接口数据结构。 - 若后端返回了未收录的新 `menu.icon` 字符串,会走路径或通用兜底图标,不会出现“无图标”空位。 ## Work Log - 打包更新镜像并重启(2026-04-27) - 背景: - 用户要求“打包更新镜像并重启”。 - 本次执行: - `docker compose build` - `docker compose up -d` - 验证: - `docker compose ps` - `api/web/celery-worker/celery-beat/db/redis/minio` 均为 `Up`,其中 `api/db/redis` 为 `healthy`。 - `curl -fsS http://127.0.0.1:8000/health` - 返回 `{"status":"ok","service":"fquiz-api","version":"0.1.0"}`。 - `curl -I -fsS http://127.0.0.1:3000/` - 返回 `HTTP/1.1 200 OK`。 - `docker compose logs --tail=80 api/web/celery-worker/celery-beat` - API 启动完成且 `/health` 返回 200。 - Web Ready。 - Celery worker/beat 启动并连接 Redis。 - 风险与影响: - 发布过程中重建并重启了 `api/web/celery-worker/celery-beat`,存在短时服务切换窗口。 - Celery worker 存在既有 root 运行告警(非本次新增),当前服务可用。