# 在线接诊(兽医)— 前端技术方案 > 依据:`在线接诊(兽医)功能需求.md`(v1.1)、`在线接诊(兽医)技术方案.md`(v1.1);布局参考 `diseaseTreatment/aiDiagnosis/index.vue`(左右分栏 IM),数据对接后端 REST。 --- ## 1. 页面与路由 | 项 | 说明 | | --- | --- | | **Vue 路径** | `ruoyi-ui/src/views/diseaseTreatment/onlineConsult/vet/index.vue` | | **组件名** | `DiseaseTreatmentVetOnlineConsult` | | **菜单配置** | 组件路径:`diseaseTreatment/onlineConsult/vet/index` | | **权限前缀** | `diseaseTreatment:vetOnlineConsult:list`、`query`、`send` | --- ## 2. API 模块 | 项 | 说明 | | --- | --- | | **文件** | `ruoyi-ui/src/api/diseaseTreatment/vetOnlineConsult.js` | | **Base** | `/diseaseTreatment/onlineConsult/vet` | | 方法 | HTTP | 说明 | | --- | --- | --- | | `listVetConsultSessions` | GET | `/session/list`;`askerName`、`contentKeyword`、`searchMode`(仅点击搜索为 `true`) | | `listVetConsultMessages` | GET | `/session/{sessionId}/messages`;`beforeId`、`pageSize`(默认 50) | | `sendVetConsultMessage` | POST | `/session/{sessionId}/message`;Body:`msgType`、`content`、`mediaDuration`(可选) | --- ## 3. 页面结构 1. **筛选区**:问诊人、会话内容;**搜索**(`searchMode=true`,且至少一项非空)、**重置**(恢复默认近 3 个月列表)。 2. **左侧**:接诊会话列表(头像、姓名、摘要、最后消息日期 M月D日)。 3. **右侧**:顶部问诊人姓名;聊天记录(按日分组、时分);上拉加载更早消息(`beforeId`)。 4. **输入区**:文本 + 图片/视频/语音文件上传 + 发送(无新建会话、无删除会话)。 --- ## 4. 业务规则(前端) | 规则 | 实现 | | --- | --- | | 默认列表 | 不传 `searchMode` 或 `false`;仅近 3 个月 | | 搜索 | `searchMode=true`;`askerName` / `contentKeyword` 映射后端同名 Query | | 消息角色 | `senderRole=1` 问诊人(左),`2` 兽医(右) | | 消息类型 | `1` 文本、`2` 图片、`3` 视频、`4` 语音 | | 媒体上传 | 先 `POST /common/upload`,`content` 传返回 `url` | | 上传限制 | 图 jpg/jpeg/png/gif ≤10MB;视频 mp4/mov ≤50MB;语音 mp3/m4a/wav ≤10MB | | 近实时 | 选中会话后 **2s 轮询** 刷新消息与列表(后端 STOMP 就绪后可改为 WebSocket 订阅 `/topic/consult/vet/{userId}`) | --- ## 5. 国际化 | 项 | 说明 | | --- | --- | | **语言包** | `diseaseTreatment.vetOnlineConsult`(`lang/zh/diseaseTreatment.js`、`lang/bo/diseaseTreatment.js`) | | **Mixin** | `diseaseTreatmentLocaleMixin`,`dtNs = 'vetOnlineConsult'` | --- ## 6. 文件清单 | 路径 | 说明 | | --- | --- | | `src/views/diseaseTreatment/onlineConsult/vet/index.vue` | 主页面 | | `src/api/diseaseTreatment/vetOnlineConsult.js` | API | | `src/mixins/diseaseTreatmentLocaleMixin.js` | 文案 | --- ## 7. 联调说明 - 登录账号须已在「畜牧医疗资源管理」绑定兽医资源(`resource_type=1` 且已分配账号),否则列表为空。 - 会话由移动端 `/app/onlineConsult` 创建;后台仅查看与回复。 - 与「AI 诊断」菜单、数据完全隔离(`consult_type=1`)。 - 验收近实时:双端在线时,轮询间隔可调整为 1s;生产建议接入技术方案 **§5.1** STOMP 推送替代轮询。