综合牧业知识库 — 前端技术方案
依据:综合牧业知识库管理功能需求.md、综合牧业知识库技术方案.md;交互对齐 breedingStandards/feeding/index.vue(知识库同步/移出,无发布下架)。
1. 页面与路由
| 项 |
说明 |
| Vue 路径 |
ruoyi-ui/src/views/techService/knowledge/index.vue |
| 组件名 |
TechServiceKnowledge |
| 菜单配置 |
组件路径:techService/knowledge/index(「牧业养殖科技服务」目录下,手工配置) |
| 权限前缀 |
techService:knowledge:list\|query\|add\|edit\|remove\|syncKb\|removeKb |
2. API 模块
| 项 |
说明 |
| 文件 |
ruoyi-ui/src/api/techService/knowledge.js |
| Base |
/techService/knowledge |
| 方法 |
HTTP |
说明 |
listKnowledge |
GET |
/list,Query:pageNum、pageSize(默认 20)、keyword、knowledgeTopic、kbSyncStatus |
getKnowledge |
GET |
/{id} |
addKnowledge |
POST |
/ |
updateKnowledge |
PUT |
/ |
delKnowledge |
DELETE |
/{ids} |
syncKbKnowledge |
POST |
/syncKb/{id} |
removeKbKnowledge |
POST |
/removeKb/{id} |
3. 页面结构
- 筛选区:关键词(标题/简介 OR 模糊)、知识主题五选一、入库状态;搜索、重置、新增。
- 列表区:标题、主题、简介、知识文件链接、入库状态、创建时间、操作列。
- 新增/编辑弹窗:标题、主题、简介(选填 ≤50)、知识内容单文件上传。
- 查看弹窗:只读;未入库且有权时可进入编辑。
无发布/下架按钮;生命周期仅 未入库 ↔ 已入库。
4. 业务规则(前端)
| 规则 |
实现 |
| 入库状态 |
kbSyncStatus:0 未入库 / 1 已入库;kbSyncStatusText |
| 可编辑/删除/同步 |
kbSyncStatus === 0 |
| 可移出 |
kbSyncStatus === 1 |
| 知识主题 |
1~5:饲养管理、疫病管理、设备选型、牧场设计、政策解读 |
| 标题 |
1~20 字 |
| 简介 |
选填,≤50 字 |
| 知识内容 |
服务端白名单:pdf/md/doc/docx/xls/xlsx/pptx,≤30MB;/common/upload → contentFileUrl、contentFilePath、contentFileName。说明:页面 contentFileExts 本次未同步,保存以服务端校验为准 |
5. 国际化
| 项 |
说明 |
| 语言包 |
techService.knowledge + techService.common(syncKb、removeKb、colKb 等) |
| Mixin |
techServiceLocaleMixin,tsNs = 'knowledge',kbSyncStatusText、knowledgeTopicText |
6. 文件清单
| 路径 |
说明 |
src/views/techService/knowledge/index.vue |
主页面 |
src/api/techService/knowledge.js |
API |
src/mixins/techServiceLocaleMixin.js |
入库状态、主题文案 |
src/lang/zh/techService.js |
汉语 |
src/lang/bo/techService.js |
藏语 |
7. 联调说明
- 后端已实现
BizLivestockKnowledgeController,路径与权限见技术方案 §3。
- 同步/移出失败时后端返回
同步知识库失败:… / 移出知识库失败:…,前端由若依全局拦截展示。
- 已入库记录编辑/删除由后端拒绝,列表按钮通过
canEdit 等前端方法按 kbSyncStatus 控制显隐。