feat(phase2a): 前台联系人页面 + 管理端在线监控/好友管理 + API 文档

前台联系人模块(ui-ux-pro-max 规范):
- contact/index.vue: 好友列表(搜索/在线状态/骨架屏)
- contact/request.vue: 好友申请列表(接受/拒绝/防重复提交)
- contact/detail.vue: 好友详情(备注/分组/拉黑/删除)
- contact/search.vue: 搜索添加好友 + 好友推荐
- contact/groups.vue: 好友分组管理(CRUD)
- contact/blacklist.vue: 黑名单管理

管理端前端:
- views/monitor/online.vue: 在线监控(统计卡片/用户表格/30s 自动刷新)
- views/contact/list.vue: 好友关系管理(分页表格/强制删除)
- api/monitor.js + api/contact.js: 管理端 API 封装
- 路由 + 侧边栏导航更新

API 文档(4 份):
- docs/api/frontend/contact.md: 17 个接口完整文档
- docs/api/frontend/websocket.md: 前端 WS 事件协议
- docs/api/admin/online.md: 在线监控 API
- docs/api/admin/contact.md: 好友管理 API

进度文档更新至 Phase 2a 全部完成

Made-with: Cursor
This commit is contained in:
bujinyuan
2026-03-02 17:32:52 +08:00
parent 618c3f4409
commit a508a4cfbc
18 changed files with 3368 additions and 188 deletions

78
docs/api/admin/contact.md Normal file
View File

@@ -0,0 +1,78 @@
# 管理端好友关系管理 API
> 通用规范(认证方式、响应格式、错误码)见 [README.md](../README.md)
> 所有接口需要 JWT + admin/super_admin 角色权限
---
## 接口列表
| 方法 | 路径 | 权限 | 说明 |
|------|------|------|------|
| GET | /api/v1/admin/contacts | admin | 获取所有好友关系列表(分页) |
| DELETE | /api/v1/admin/contacts/:id | admin | 删除好友关系(双向解除) |
---
## 1. 获取所有好友关系列表
`GET /api/v1/admin/contacts`
**说明:** 分页查询系统中所有好友关系记录,包含双方用户名信息。
**查询参数:**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| page | int | 否 | 页码,默认 1 |
| page_size | int | 否 | 每页数量,默认 20 |
**成功响应:**
```json
{
"code": 0,
"message": "ok",
"data": {
"total": 150,
"list": [
{
"id": 1,
"user_id": 1,
"username": "zhangsan",
"friend_id": 2,
"friend_username": "lisi",
"remark": "同事",
"status": 1,
"created_at": "2026-03-01 10:00:00"
}
]
}
}
```
**status 状态码:**
| 值 | 说明 |
|-----|------|
| 0 | 待确认pending |
| 1 | 已通过accepted |
| 2 | 已拒绝rejected |
| 3 | 已拉黑blocked |
---
## 2. 删除好友关系
`DELETE /api/v1/admin/contacts/:id`
**路径参数:** `id` — 好友关系记录 ID
**说明:** 管理员可以强制删除任意好友关系。此操作会双向解除(同时删除 A→B 和 B→A 的关系记录)。
**成功响应:**
```json
{
"code": 0,
"message": "ok"
}
```