更新 RefundManagement.vue 组件,优化链接编号输入提示,新增输入格式说明,支持从URL提取链接编号,提升用户体验。

This commit is contained in:
zyh
2025-08-29 22:36:58 +08:00
parent 7558174e0a
commit 4021afb0f1
5 changed files with 434 additions and 163 deletions

View File

@@ -1,117 +1,259 @@
# 公告管理使用说明
基础信息
## 功能概述
- 基础路径: /api/admin/announcement
- 认证方式: JWT Token必须在Header中添加Authorization: Bearer <token>
- 内容类型: application/json
公告管理模块提供了完整的公告信息管理功能,包括公告的创建、编辑、删除、启用/禁用等操作。
---
1. 创建公告
## 功能特性
POST /api/admin/announcement
- ✅ 公告列表查看(支持分页)
- ✅ 按标题/内容关键词搜索
- ✅ 按启用状态筛选
- ✅ 创建新公告
- ✅ 编辑现有公告
- ✅ 删除公告
- ✅ 一键启用/禁用公告
- ✅ 支持跳转链接设置
- ✅ 权限控制(管理员和代理商不同权限)
请求头
## 权限说明
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json
### 管理员权限
- 查看公告列表
- 创建新公告
- 编辑现有公告
- 删除公告
- 启用/禁用公告
请求参数
### 代理商权限
- 查看公告列表(只读)
{
"title": "string", // 必填 - 公告标题最大长度100字符
"content": "string", // 必填 - 公告内容
"enabled": boolean, // 必填 - 是否启用
"jumpUrl": "string" // 可选 - 跳转链接
}
## 使用步骤
注意: belongId 字段已从请求参数中移除系统会自动从JWT token中解析当前用户ID并设置为 belongId
### 1. 访问公告管理
- 登录管理后台
- 在左侧导航菜单中点击"公告管理"
请求示例
### 2. 查看公告列表
- 公告列表显示所有公告信息
- 支持按关键词搜索(标题或内容)
- 支持按启用状态筛选
- 支持分页浏览
{
"title": "系统维护通知",
"content": "系统将于今晚22:00-24:00进行维护升级请提前保存工作内容",
"enabled": true,
"jumpUrl": "https://example.com/maintenance"
}
### 3. 创建新公告
1. 点击"新增公告"按钮
2. 填写公告信息:
- **标题**:必填,公告标题
- **内容**:必填,公告详细内容
- **跳转链接**可选点击公告后跳转的URL
- **状态**:选择是否启用
3. 点击"保存"完成创建
响应结果
### 4. 编辑公告
1. 在公告列表中找到要编辑的公告
2. 点击"编辑"按钮
3. 修改公告信息
4. 点击"保存"完成修改
{
"success": true,
"message": "公告创建成功",
"id": 1
}
### 5. 删除公告
1. 在公告列表中找到要删除的公告
2. 点击"删除"按钮
3. 确认删除操作
错误响应
### 6. 启用/禁用公告
- 在公告列表中,直接点击状态开关即可快速启用或禁用公告
- 只有启用的公告才会对用户可见
{
"success": false,
"message": "用户未认证"
}
## 字段说明
---
2. 获取公告列表(分页)
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| 标题 | 文本 | 是 | 公告标题,用于列表显示 |
| 内容 | 文本 | 是 | 公告详细内容 |
| 跳转链接 | URL | 否 | 点击公告后跳转的链接地址 |
| 状态 | 布尔 | 是 | 是否启用,只有启用的公告用户才能看到 |
GET /api/admin/announcement/list
## 注意事项
查询参数
1. **权限控制**:只有具备相应权限的用户才能进行相应操作
2. **数据验证**:标题和内容为必填字段
3. **URL验证**跳转链接必须是有效的URL格式以http://或https://开头)
4. **状态控制**:只有启用的公告才会在前端显示给用户
5. **操作记录**:所有操作都会记录创建时间和更新时间
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|----------|---------|-----|-----|---------|
| page | integer | 否 | 1 | 页码 |
| size | integer | 否 | 20 | 每页大小 |
| enabled | boolean | 否 | - | 按启用状态筛选 |
| belongId | integer | 否 | - | 按归属ID筛选 |
## API接口
请求示例
公告管理使用以下API接口
GET /api/admin/announcement/list?page=1&size=10&enabled=true&belongId=123
- `GET /api/admin/announcement/list` - 获取公告列表
- `POST /api/admin/announcement` - 创建公告
- `PUT /api/admin/announcement/{id}` - 更新公告
- `DELETE /api/admin/announcement/{id}` - 删除公告
- `PUT /api/admin/announcement/{id}/enabled` - 更新启用状态
- `GET /api/admin/announcement/enabled` - 获取启用的公告
响应结果
详细的API文档请参考项目根目录的接口文档。
{
"items": [
{
"id": 1,
"title": "系统维护通知",
"content": "系统将于今晚22:00-24:00进行维护升级",
"enabled": true,
"jumpUrl": "https://example.com/maintenance",
"belongId": 123,
"createdAt": "2025-08-29T10:30:00",
"updatedAt": "2025-08-29T10:30:00"
}
],
"total": 1,
"page": 1,
"size": 10
}
## 故障排除
---
3. 获取公告详情
### 常见问题
GET /api/admin/announcement/{id}
1. **无法访问公告管理页面**
- 检查用户是否有相应权限
- 确认已正确登录
路径参数
2. **创建公告失败**
- 检查标题和内容是否已填写
- 检查跳转链接格式是否正确
| 参数名 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| id | long | 是 | 公告ID |
3. **状态切换失败**
- 检查网络连接
- 确认用户有编辑权限
请求示例
4. **搜索无结果**
- 检查搜索关键词是否正确
- 尝试重置搜索条件
GET /api/admin/announcement/1
如有其他问题,请联系系统管理员。
响应结果
{
"id": 1,
"title": "系统维护通知",
"content": "系统将于今晚22:00-24:00进行维护升级请提前保存工作内容",
"enabled": true,
"jumpUrl": "https://example.com/maintenance",
"belongId": 123,
"createdAt": "2025-08-29T10:30:00",
"updatedAt": "2025-08-29T10:30:00"
}
---
4. 更新公告
PUT /api/admin/announcement/{id}
请求头
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json
路径参数
| 参数名 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| id | long | 是 | 公告ID |
请求参数
{
"title": "string", // 可选 - 公告标题
"content": "string", // 可选 - 公告内容
"enabled": boolean, // 可选 - 是否启用
"jumpUrl": "string" // 可选 - 跳转链接
}
注意: 更新时 belongId 会自动从JWT token中获取并更新
请求示例
{
"title": "系统维护通知(更新)",
"content": "系统维护时间调整为23:00-01:00",
"enabled": true
}
响应结果
{
"success": true,
"message": "公告更新成功"
}
---
5. 删除公告
DELETE /api/admin/announcement/{id}
路径参数
| 参数名 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| id | long | 是 | 公告ID |
请求示例
DELETE /api/admin/announcement/1
响应结果
{
"success": true,
"message": "公告删除成功"
}
---
6. 更新公告启用状态
PUT /api/admin/announcement/{id}/enabled
路径参数
| 参数名 | 类型 | 必填 | 说明 |
|-----|------|-----|------|
| id | long | 是 | 公告ID |
查询参数
| 参数名 | 类型 | 必填 | 说明 |
|---------|---------|-----|------|
| enabled | boolean | 是 | 启用状态 |
请求示例
PUT /api/admin/announcement/1/enabled?enabled=false
响应结果
{
"success": true,
"message": "公告已禁用"
}
---
7. 获取启用的公告
GET /api/admin/announcement/enabled
查询参数
| 参数名 | 类型 | 必填 | 说明 |
|----------|---------|-----|---------|
| belongId | integer | 否 | 按归属ID筛选 |
请求示例
GET /api/admin/announcement/enabled?belongId=123
响应结果
[
{
"id": 1,
"title": "系统维护通知",
"content": "系统将于今晚22:00-24:00进行维护升级",
"enabled": true,
"jumpUrl": "https://example.com/maintenance",
"belongId": 123,
"createdAt": "2025-08-29T10:30:00",
"updatedAt": "2025-08-29T10:30:00"
}
]
---
主要变更说明
🔒 安全改进
- 自动用户识别: 创建和更新公告时系统自动从JWT token中解析当前用户ID
- 防止伪造: 前端无法伪造 belongId确保公告只能归属于当前登录用户
📝 请求参数变更
- 移除: 创建和更新公告的请求中不再需要传递 belongId 参数
- 简化: 前端调用更加简洁无需关心用户ID的传递
🎯 使用场景
1. 管理员: 创建的公告 belongId 为管理员用户ID
2. 代理商: 创建的公告 belongId 为代理商用户ID
3. 权限隔离: 通过 belongId 实现不同角色的公告隔离
这样的设计既保证了安全性,又提供了灵活的公告管理能力!