feat(评论): 新增功能开关管理及评论点赞功能优化

- 在管理后台添加功能开关页面,支持控制评论点赞和文章点赞功能的开启/关闭
- 优化评论点赞功能,支持取消点赞和本地存储点赞状态
- 更新点赞UI样式,提升用户体验
- 添加相关API接口和文档说明
This commit is contained in:
anghunk
2026-01-22 22:26:43 +08:00
parent 74c7fa9e1c
commit e0be92b1fe
15 changed files with 806 additions and 120 deletions

View File

@@ -77,6 +77,7 @@ GET /api/comments
-`nested=true`(默认)时,接口返回的是"根评论列表",每条根评论包含其 `replies`
-`nested=false` 时,接口返回扁平列表,所有评论都在 `data` 中,`replies` 为空。
- `priority` 字段:评论的置顶权重,数值越大排序越靠前。
- `likes` 字段:评论的点赞数,默认为 0。
**错误响应**
@@ -439,6 +440,124 @@ POST /api/like
}
```
### 1.5 评论点赞
```
POST /api/comments/like
```
对指定评论进行点赞操作。
- 方法:`POST`
- 路径:`/api/comments/like`
- 鉴权:不需要
**请求头**
| 名称 | 必填 | 示例 |
| -------------- | ---- | ------------------ |
| `Content-Type` | 是 | `application/json` |
**请求体**
```json
{
"id": 123
}
```
字段说明:
| 字段名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------- |
| `id` | number | 是 | 评论 ID |
**成功响应**
- 状态码:`200`
```json
{
"message": "点赞成功",
"likes": 5
}
```
字段说明:
| 字段名 | 类型 | 说明 |
| ------- | ------ | -------------- |
| `likes` | number | 更新后的点赞数 |
**错误响应**
- 状态码:`400`
```json
{
"message": "评论不存在"
}
```
### 1.6 取消评论点赞
```
DELETE /api/comments/like
```
取消对指定评论的点赞。
- 方法:`DELETE`
- 路径:`/api/comments/like`
- 鉴权:不需要
**请求头**
| 名称 | 必填 | 示例 |
| -------------- | ---- | ------------------ |
| `Content-Type` | 是 | `application/json` |
**请求体**
```json
{
"id": 123
}
```
字段说明:
| 字段名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------- |
| `id` | number | 是 | 评论 ID |
**成功响应**
- 状态码:`200`
```json
{
"message": "取消点赞成功",
"likes": 4
}
```
字段说明:
| 字段名 | 类型 | 说明 |
| ------- | ------ | -------------- |
| `likes` | number | 更新后的点赞数 |
**错误响应**
- 状态码:`400`
```json
{
"message": "评论不存在"
}
```
## 2. 配置相关
### 2.1 获取评论相关的公开配置
@@ -470,14 +589,16 @@ GET /api/config/comments
字段说明:
| 字段名 | 类型 | 说明 |
| -------------- | ------- | -------------------------------------------------------------------- |
| `adminEmail` | string | 博主邮箱地址,用于在前端展示"博主"标识,并触发管理员身份验证流程 |
| `adminBadge` | string | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 是否启用博主标识相关展示(关闭时不显示徽标,但仍可作为管理员邮箱) |
| `allowedDomains` | Array\<string\> | 允许调用组件的域名列表,留空则不限制 |
| `requireReview` | boolean | 是否开启新评论先审核再显示true 表示新评论默认为待审核) |
| 字段名 | 类型 | 说明 |
| ------------------ | ------- | -------------------------------------------------------------------- |
| `adminEmail` | string | 博主邮箱地址,用于在前端展示"博主"标识,并触发管理员身份验证流程 |
| `adminBadge` | string | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 是否启用博主标识相关展示(关闭时不显示徽标,但仍可作为管理员邮箱) |
| `allowedDomains` | Array\<string\> | 允许调用组件的域名列表,留空则不限制 |
| `requireReview` | boolean | 是否开启新评论先审核再显示true 表示新评论默认为待审核) |
| `enableCommentLike` | boolean | 是否启用评论点赞功能(默认 true |
| `enableArticleLike` | boolean | 是否启用文章点赞功能(默认 true |
**错误响应**