畜牧医疗资源管理 — 前端技术方案
依据:畜牧医疗资源管理功能需求.md、畜牧医疗资源管理技术方案.md;布局对齐 commonProsperity/project/index.vue(双 el-card、发布/下架);Tab 组织对齐 policy/projectSubsidy/index.vue;字段 小驼峰。
1. 页面与路由
| 项 |
说明 |
| Vue 路径 |
ruoyi-ui/src/views/diseaseTreatment/medicalResource/index.vue |
| 组件名 |
DiseaseTreatmentMedicalResource |
| 菜单配置 |
组件路径:diseaseTreatment/medicalResource/index(「牧业疫病诊疗服务」目录下,手工配置) |
| 权限前缀 |
diseaseTreatment:medicalResource:list\|query\|add\|edit\|remove\|publish\|offline\|assignAccount |
2. API 模块
| 项 |
说明 |
| 文件 |
ruoyi-ui/src/api/diseaseTreatment/medicalResource.js |
| Base |
/diseaseTreatment/medicalResource |
| 方法 |
HTTP |
说明 |
listMedicalResource |
GET |
/list,Query:pageNum、pageSize(默认 20)、resourceType(必填)、resourceName、publishStatus(0/1/2) |
getMedicalResource |
GET |
/{id} |
addMedicalResource |
POST |
/ |
updateMedicalResource |
PUT |
/ |
delMedicalResource |
DELETE |
/{ids} |
publishMedicalResource |
POST |
/publish/{id} |
offlineMedicalResource |
POST |
/offline/{id} |
assignAccountMedicalResource |
POST |
/assignAccount/{id} |
3. 页面结构
- Tab 区:
el-tabs type="border-card" 四个 Tab(兽医 / 团队 / 机构 / 设备),切换即改 resourceType 并刷新列表。
- 筛选区:资源类型下拉(与 Tab 联动)、资源名称模糊、发布状态三态;搜索、重置、新增。
- 列表区:按当前 Tab 展示差异化列;发布状态用
displayPublishStatus;操作列按钮显隐用后端 canEdit / canPublish / canOffline / canDelete / canAssignAccount。
- 新增/编辑弹窗:先选资源类型(编辑时禁用);按类型
v-if 动态字段;单图上传 /common/upload → photoFileUrl、photoFilePath。
- 查看弹窗:只读全字段;未发布/已下架且
canEdit 时可从查看进入编辑。
4. 业务规则(前端)
| 规则 |
实现 |
| Tab ↔ 类型 |
vet→004001、team→004002、org→004003、equipment→004004;下拉选项来自 listInformationCategoryChildren(parentCode=004, categoryType=6) |
列表筛选 publishStatus |
0 未发布 / 1 已发布 / 2 已下架(与后端 Query 一致) |
| 多选提交 |
consultModesList、serviceWeekdaysList 数组提交,后端编码入库 |
| 服务时段 |
两个 el-time-select,校验结束 ≥ 开始 |
| 手机号 |
PHONE_REG = /^1[3-9]\d{9}$/ |
| 照片 |
jpg/jpeg/png,≤10MB,必填 |
| 分配账号 |
仅兽医/机构 Tab 列表展示「账号分配」列;按钮 canAssignAccount |
| 资源类型 |
新增默认当前 Tab 类型;编辑不可改 |
资源类型接口
| 方法 |
说明 |
listInformationCategoryChildren |
GET /category/informationCategory/children?parentCode=004&categoryType=6;data[] 项 code、name |
其它枚举(页面内)
| 常量 |
值 |
| 定点/上门/在线接诊 |
consultMode = 1/2/3 |
| 诊所/医院 |
orgLevel = 1/2 |
| 周一至周日 |
weekday = 1~7 |
存量 tinyint 资源类型(1~4)在 normalizeResourceType 中映射为 004001~004004。
5. 国际化
| 项 |
说明 |
| 语言包 |
diseaseTreatment.medicalResource(lang/zh/diseaseTreatment.js、lang/bo/diseaseTreatment.js) |
| Mixin |
diseaseTreatmentLocaleMixin,dtNs = 'medicalResource',方法 dtT / dtCommon |
| 注册 |
lang/zh-CN.js、lang/bo.js 引入 diseaseTreatment |
6. 联调说明
- 部署
BizMedicalResourceController 及 biz_medical_resource 表。
- 菜单组件
diseaseTreatment/medicalResource/index,权限与后端 §6 一致。
- 验证:四 Tab 列表、三态筛选、四类动态表单新增/编辑、发布/下架、兽医/机构分配账号、已发布不可编辑、双语切换。
7. 文件清单
| 类型 |
路径 |
| 页面 |
ruoyi-ui/src/views/diseaseTreatment/medicalResource/index.vue |
| API |
ruoyi-ui/src/api/diseaseTreatment/medicalResource.js |
| Mixin |
ruoyi-ui/src/mixins/diseaseTreatmentLocaleMixin.js |
| i18n |
ruoyi-ui/src/lang/zh/diseaseTreatment.js、lang/bo/diseaseTreatment.js |
8. 修订记录
| 版本 |
说明 |
| 1.0 |
初版:四 Tab 分库列表、动态表单、发布/下架/分配账号、汉藏 i18n |