依据:
ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue当前实现;后端约定见同目录养殖标准管理技术方案.md、养殖标准管理功能需求.md。请求与表单字段统一 小驼峰。
| 项 | 说明 |
|---|---|
| Vue 路径 | ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue |
| 组件名 | BreedingManageStandard |
| 菜单配置 | 若依「菜单管理」组件路径:breedingStandards/breedingManage/index |
| Mixin | breedingStdLocaleMixin(stdNs = "bm" → breedingStd.bm.*) |
| 权限前缀 | `breeding:standard:list |
| 文件 | Base Path |
|---|---|
ruoyi-ui/src/api/breedingStandards/breedingManage.js |
/breeding/standard |
ruoyi-ui/src/api/category/informationCategory.js |
/category/informationCategory/children |
养殖标准接口
| 方法 | HTTP | URI | 说明 |
|---|---|---|---|
listBreedingStandard |
GET | /list |
分页列表 |
getBreedingStandard |
GET | /{id} |
详情 |
addBreedingStandard |
POST | / |
新增 |
updateBreedingStandard |
PUT | / |
修改(仅未发布) |
delBreedingStandard |
DELETE | /{ids} |
删除 |
syncKbBreedingStandard |
POST | /syncKb/{id} |
手动同步知识库 |
removeKbBreedingStandard |
POST | /removeKb/{id} |
移出知识库 |
publishBreedingStandard |
POST | /publish/{id} |
发布 |
offlineBreedingStandard |
POST | /offline/{id} |
下架 |
标准类型下拉:listInformationCategoryChildren('001', '1'),与后端 BreedingStandardTypeValidator 参数一致。
上传:POST /common/upload → 正文写入 contentFileUrl、contentFilePath、contentFileName;封面写入 coverFileUrl、coverFilePath。
布局为双 el-card(筛选 + 列表),中间 <br /> 分隔。
| 绑定字段 | 说明 |
|---|---|
queryParams.keyword |
名称/简介模糊 |
queryParams.standardType |
资讯类别编码精确匹配,可清空 |
queryParams.pageNum / pageSize |
默认 1 / 20 |
工具栏:搜索、重置、新增。
| 列 | 字段 / 展示 |
|---|---|
| 文件名称 | standardName |
| 文件类型 | typeLabel(standardType) |
| 文件简介 | introduction |
| 标准文件 | contentFileName 链至 contentFileUrl |
| 上架状态 | publishStatusText(publishStatus) |
| 知识库同步 | kbSyncStatusText(kbSyncStatus) |
| 发布日期 | publishTime(yyyy-MM-dd) |
| 创建时间 | createTime(完整时间) |
| 操作 | 见 §5 |
dialogAdd / dialogEdit;:key="formKey" 重置表单。standardName(1~20)、standardType、introduction(≤50)、正文上传、封面上传(picture-card,:limit="1")。canEditFormRow:仅 publishStatus=0 且 kbSyncStatus=0 可改字段及换附件;已同步点编辑提示 ruleSyncedNoEdit。standardName、standardType、introduction、contentFileUrl、contentFilePath、contentFileName、coverFileUrl、coverFilePath;编辑带 id。只读展示主字段、封面(image-preview)、上架/同步状态、发布时间、下架时间。
created 调用 loadStandardTypeOptions(),不再写死 1~4。
mapCategoryItem 将接口项映射为 { value, label },兼容 code/name 字段。
typeLabel 优先匹配 standardTypeOptions;存量值 1~4 回退 stdT('type1')…type4'。
示例编码(资讯类别):001001 繁育作业、001002 饲养工作、001003 免疫程序、001004 环境调控。
脚本常量
| 常量 | 值 | 含义 |
|---|---|---|
PUBLISH_STATUS.UNPUBLISHED |
0 | 未发布(含下架回流) |
PUBLISH_STATUS.PUBLISHED |
1 | 已发布 |
KB_SYNC_STATUS.UNSYNCED |
0 | 未同步 |
KB_SYNC_STATUS.SYNCED |
1 | 已同步 |
合法稳态:(0,0)、(0,1)、(1,1)。下架成功后为 未发布 + 已同步(知识库保留副本,≠ 移出)。
| 组合 | 编辑 | 同步 | 移出 | 发布 | 下架 | 删除 |
|---|---|---|---|---|---|---|
| 未发布 + 未同步 | ✓ | ✓ | — | — | — | ✓ |
| 未发布 + 已同步 | ✗ | — | ✓ | ✓ | — | ✗ |
| 已发布 + 已同步 | ✗ | — | — | — | ✓ | ✗ |
can* 方法(均 Number() 比较)+ v-hasPermi + v-if 控制按钮。
| 方法 | 条件 |
|---|---|
canEdit |
publishStatus === 0 且 kbSyncStatus === 0 |
canSyncKb |
未发布且未同步 |
canRemoveKb |
未发布且已同步 |
canPublish |
未发布且已同步 |
canOffline |
已发布 |
canDelete |
未发布且未同步 |
交互提示
rulePublishedNoEditruleSyncedNoEditruleDeleteNeedRemoveKberrStdTypeLoadgetList() 刷新状态文案:breedingStdLocaleMixin.publishStatusText / kbSyncStatusText;历史 publishStatus=2 按「未发布」展示。
| 项 | 前端规则 |
|---|---|
| 标准名称 | 必填,1~20 字(ruleLen120) |
| 标准类型 | 必选 |
| 简介 | 选填,≤50 字 |
| 正文 | 必填(校验 contentFilePath);后缀 pdf/md/doc/docx/xls/xlsx/ppt/pptx;≤30MB;文件名不含英文逗号 |
| 封面 | 选填;jpg/jpeg/png;≤10MB |
上传地址:VUE_APP_BASE_API + '/common/upload',Header Authorization: Bearer {token}。上传过程 $modal.loading,结束 closeLoading。
已同步记录为只读;改内容须先移出知识库后再编辑、同步。
| 命名空间 | 路径 |
|---|---|
| 模块文案 | breedingStd.bm.*(lang/zh/breedingStd.js、lang/bo/breedingStd.js) |
| 公共文案 | breedingStd.common.*、breedingStd.status.* |
| 项 | 说明 |
|---|---|
pagination |
分页,pageNum / pageSize 双向绑定 |
parseTime |
全局原型方法,格式化列表与查看时间 |
image-preview |
查看弹窗封面预览 |
resetForm |
重置查询表单 |
$modal |
confirm / msgSuccess / msgWarning / msgError / loading |
001001)一致。contentFileName 在列表与详情正确展示;双语切换正常。| 类型 | 路径 |
|---|---|
| 页面 | ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue |
| 业务 API | ruoyi-ui/src/api/breedingStandards/breedingManage.js |
| 类别 API | ruoyi-ui/src/api/category/informationCategory.js |
| Mixin | ruoyi-ui/src/mixins/breedingStdLocaleMixin.js |
| i18n | ruoyi-ui/src/lang/zh/breedingStd.js、lang/bo/breedingStd.js |
| 版本 | 说明 |
|---|---|
| 1.0 | 根据 breedingManage/index.vue 生成:双卡片 CRUD、资讯类别编码、双维状态机、附件上传、知识库与发布/下架 |
| 1.1 | 2026-06-01:标准类型改资讯类别编码(parentCode=001&categoryType=1);存量 1~4 回退展示;编辑/上传仅 未发布+未同步;类型加载失败与已同步编辑提示;下架回流 (0,1) 操作矩阵修正 |