silver-knowledge-admin-implementation-plan.md 3.6 KB

银龄智库管理后台实施计划

项目概述

在管理后台增加"银龄智库发布"菜单,实现银龄智库的发布和管理功能。

当前状态分析

  • ✅ 银龄智库实体(SilverKnowledge)已存在,包含完整字段定义
  • ✅ 通用CRUD API已存在 (/api/v1/silver-users/knowledges)
  • ❌ 管理后台缺少对应的页面和菜单

实施步骤

1. 创建管理页面组件

文件位置: src/client/admin/pages/SilverKnowledges.tsx

// 主要功能:
// - 银龄智库列表展示(分页、搜索、筛选)
// - 状态管理(草稿、已发布、已隐藏、审核中)
// - 批量操作(删除、发布、隐藏)
// - 推荐设置

2. 创建发布/编辑表单组件

文件位置: src/client/admin/pages/SilverKnowledgeForm.tsx

// 表单字段:
// - 标题(必填)
// - 内容(必填)
// - 摘要
// - 分类选择
// - 知识类型(文章、视频、文档等)
// - 标签
// - 封面图片
// - 附件上传
// - 关键词
// - 原作者
// - 知识来源

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中添加:

    {
    key: 'silver-knowledges',
    label: '银龄智库发布',
    icon: <BookOutlined />,
    path: '/admin/silver-knowledges',
    permission: 'silver-knowledge:manage'
    }
    
  2. routes.tsx中添加:

    {
    path: 'silver-knowledges',
    element: <SilverKnowledgesPage />,
    errorElement: <ErrorPage />
    }
    

阶段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小时