# 综合牧业知识库 — 前端技术方案 > 依据:`综合牧业知识库管理功能需求.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. 页面结构 1. **筛选区**:关键词(标题/简介 OR 模糊)、知识主题五选一、入库状态;搜索、重置、新增。 2. **列表区**:标题、主题、简介、知识文件链接、入库状态、创建时间、操作列。 3. **新增/编辑弹窗**:标题、主题、简介(选填 ≤50)、知识内容单文件上传。 4. **查看弹窗**:只读;未入库且有权时可进入编辑。 **无**发布/下架按钮;生命周期仅 **未入库 ↔ 已入库**。 --- ## 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` 控制显隐。