银龄智库管理页面文件上传功能实施计划
需求概述
在后台银龄智库管理页面新增知识表单中,增加知识封面图片上传和文件附件上传功能,采用已有的文件上传系统。
实施步骤
1. 后端修改
1.1 实体类修改
文件:src/server/modules/silver-users/silver-knowledge.entity.ts
- 添加封面图片字段:
coverImage
- 添加附件字段:
attachment
- 添加附件名称字段:
attachmentName
1.2 DTO更新
文件:src/server/modules/silver-users/silver-knowledge.entity.ts
- 更新CreateSilverKnowledgeDto
- 更新UpdateSilverKnowledgeDto
- 更新SilverKnowledgeSchema
2. 前端修改
2.1 创建文件上传组件
基于MinioUploader创建专门的图片上传和文件上传组件
2.2 修改SilverKnowledges页面
文件:src/client/admin/pages/SilverKnowledges.tsx
- 在表单中添加封面图片上传区域
- 在表单中添加文件附件上传区域
- 在列表中显示封面图片预览
- 在列表中显示附件下载链接
3. 技术方案
3.1 封面图片
- 使用MinioUploader组件,限制图片格式
- 上传路径:
/silver-knowledges/covers/
- 支持图片预览
- 限制文件大小:5MB
3.2 文件附件
- 使用MinioUploader组件,支持多种格式
- 上传路径:
/silver-knowledges/attachments/
- 支持文件下载
- 限制文件大小:50MB
3.3 文件管理
- 文件存储在MinIO
- 数据库保存文件路径和文件名
- 支持文件删除和替换
预期效果
创建/编辑表单
- 封面图片上传区域:显示上传按钮和预览
- 文件附件上传区域:显示上传按钮和文件名
- 表单提交时包含文件信息
列表显示
- 封面列:显示小图预览,点击可查看大图
- 附件列:显示文件名,点击可下载
- 保持现有功能不变
验证要点
- 图片上传成功并正确显示预览
- 文件上传成功并可正常下载
- 创建知识时包含文件信息
- 编辑知识时可替换文件
- 删除知识时清理相关文件(可选)