# 银龄智库管理后台实施计划 ## 项目概述 在管理后台增加"银龄智库发布"菜单,实现银龄智库的发布和管理功能。 ## 当前状态分析 - ✅ 银龄智库实体(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小时