# 2026-03-31 工作日志

## 平台管理功能完善

完成了 `/admin` 平台管理后台的所有功能页面，基于 Ant Design Vue 组件，与 `app/layouts/admin.vue` 框架衔接：

### 新建页面列表
| 路由 | 文件 | 说明 |
|---|---|---|
| `/admin/apps` | `apps.vue` | 应用管理（全量应用列表、状态/官方/市场切换、删除） |
| `/admin/market` | `market.vue` | 应用市场（市场上架列表、推荐开关、下架操作） |
| `/admin/users` | `users.vue` | 用户管理（分页列表、冻结/解冻、重置密码） |
| `/admin/developers` | `developers.vue` | 开发者管理（按userId聚合应用，弹窗查看详情） |
| `/admin/tickets` | `tickets.vue` | 工单处理（分配、回复、状态更新） |
| `/admin/articles` | `articles.vue` | 文章管理（CRUD + 推荐开关） |
| `/admin/announcements` | `announcements.vue` | 公告管理（CRUD + 置顶开关，model=announcement区分） |
| `/admin/settings` | `settings.vue` | 平台设置（基础/审核/市场/注册/通知/维护共6个tab） |

### 使用的 API
- `@/api/cms/cmsWebsite` - 应用管理和市场
- `@/api/system/user` - 用户管理
- `@/api/ticket` - 工单系统
- `@/api/cms/cmsArticle` - 文章/公告
- `@/api/system/setting` - 平台设置

### 设计规范
- 统一使用 stat-card 统计卡片 + panel 面板布局
- 深红黑色调侧边栏（配合 admin.vue layout）
- 所有页面支持分页、搜索、状态筛选

## 平台管理全面检查与完善（09:19）

### 修复项
1. **tickets.vue** - ticket API 直接返回 axios response（无 ApiResult 包装），所有数据解析改为 `(res as any)?.data ?? res`，涵盖 loadTickets、loadStats、handleView、handleSubmitReply、handleAssign
2. **market.vue** - loadSummary 推荐数查询重复（两个都是 `market:true`），改为从当前列表 filter 统计；去掉重复的 allSettled 入参
3. **articles.vue** - statCards 全部文章 key 从 `undefined` 改为 `-1`；handleStatFilter 中 `-1 → undefined`；active 高亮判断适配 `filterStatus === undefined && stat.key === -1`

### 完善项
4. **index.vue 首页** - 全面重构：加入实时统计数字（应用总数/用户总数/待审核/上架数）、待处理事项面板（带红点提示）、九宫格快速入口（覆盖全部9个页面）
5. **公共样式** - 新建 `app/assets/css/admin-common.css`，提取 stat-card/panel/panel-header/page-header 等通用 class，注册到 nuxt.config.ts css 数组

### API 约定
- ticket API：不经过 ApiResult 包装，直接返回 axios response，取值用 `res.data` 或 `res`
- cmsWebsite/cmsArticle/user API：经过 ApiResult，返回 `res.data.data`（已在 API 层封装）

## admin 视角迁移收尾（23:00）

完成最后两项任务：
1. **pages/admin/app-review.vue** 已确认存在（此前已完成），包含完整的审核列表、通过/拒绝弹窗、统计卡片功能
2. **config/console-nav.ts** 清理了错误加入的应用审核入口（`console-app-review` 条目），同步移除了不再使用的 `AuditOutlined` import
   - 应用审核属于平台管理 admin 视角，不应出现在用户控制台导航
