# 银龄智库管理后台实施计划
## 项目概述
在管理后台增加"银龄智库发布"菜单,实现银龄智库的发布和管理功能。
## 当前状态分析
- ✅ 银龄智库实体(SilverKnowledge)已存在,包含完整字段定义
- ✅ 通用CRUD API已存在 (`/api/v1/silver-users/knowledges`)
- ❌ 管理后台缺少对应的页面和菜单
## 实施步骤
### 1. 创建管理页面组件
**文件位置**: `src/client/admin/pages/SilverKnowledges.tsx`
```typescript
// 主要功能:
// - 银龄智库列表展示(分页、搜索、筛选)
// - 状态管理(草稿、已发布、已隐藏、审核中)
// - 批量操作(删除、发布、隐藏)
// - 推荐设置
```
### 2. 创建发布/编辑表单组件
**文件位置**: `src/client/admin/pages/SilverKnowledgeForm.tsx`
```typescript
// 表单字段:
// - 标题(必填)
// - 内容(必填)
// - 摘要
// - 分类选择
// - 知识类型(文章、视频、文档等)
// - 标签
// - 封面图片
// - 附件上传
// - 关键词
// - 原作者
// - 知识来源
```
### 3. 更新菜单配置
**文件位置**: `src/client/admin/menu.tsx`
**修改内容**:
- 在菜单数组中添加新的"银龄智库发布"菜单项
- 使用合适的图标(BookOutlined)
- 设置权限控制
### 4. 更新路由配置
**文件位置**: `src/client/admin/routes.tsx`
**修改内容**:
- 导入新的页面组件
- 添加路由配置:
- `/admin/silver-knowledges` - 列表页面
- `/admin/silver-knowledges/new` - 新建页面
- `/admin/silver-knowledges/:id/edit` - 编辑页面
### 5. 客户端API配置
**文件位置**: `src/client/api.ts`
**需要添加**:
- 银龄智库客户端API定义
- 类型推断支持
## 详细实施计划
### 阶段1:创建页面组件
1. **SilverKnowledges.tsx** - 列表管理页面
- 使用Ant Design ProTable
- 支持搜索、筛选、分页
- 状态标签显示
- 操作按钮(编辑、删除、发布、隐藏、推荐)
2. **SilverKnowledgeForm.tsx** - 表单页面
- 使用Ant Design Form
- 支持富文本编辑器
- 图片上传组件
- 分类选择下拉框
- 标签输入组件
### 阶段2:菜单和路由
1. 在`menu.tsx`中添加:
```typescript
{
key: 'silver-knowledges',
label: '银龄智库发布',
icon: ,
path: '/admin/silver-knowledges',
permission: 'silver-knowledge:manage'
}
```
2. 在`routes.tsx`中添加:
```typescript
{
path: 'silver-knowledges',
element: ,
errorElement:
}
```
### 阶段3:功能实现
1. **列表功能**:
- 分页查询
- 关键词搜索(标题、内容、摘要)
- 状态筛选
- 分类筛选
- 时间范围筛选
- 排序(创建时间、浏览量、点赞数)
2. **表单功能**:
- 新建知识
- 编辑知识
- 草稿保存
- 预览功能
- 图片/附件上传
3. **状态管理**:
- 发布/草稿切换
- 推荐设置
- 隐藏/显示
## 技术栈
- React 18 + TypeScript
- Ant Design 5.x
- React Router 6.x
- Hono Client (API调用)
## 权限设计
- `silver-knowledge:manage` - 管理权限
- `silver-knowledge:create` - 创建权限
- `silver-knowledge:edit` - 编辑权限
- `silver-knowledge:delete` - 删除权限
## UI/UX设计
- 响应式设计
- 卡片式布局
- 状态标签色彩区分
- 批量操作支持
- 搜索筛选面板
## 测试计划
1. 功能测试:CRUD操作
2. 权限测试:不同角色访问
3. 性能测试:大数据量加载
4. 兼容性测试:不同浏览器
## 预计完成时间
- 页面组件开发:2-3小时
- 菜单路由配置:30分钟
- 功能联调测试:1小时
- 总计:4-5小时