移动端 IM
这篇解决什么
UniApp 消息页什么时候嵌完整 IM、运营后台在哪个分包。读完能对上 pages-im 和 isImMode(),不要把底栏「消息」当成只有轻聊。
默认端口 48080,前缀仍是 /admin-api。先开模块并理解通道见 IM 功能设计。
示意图:同一底栏。im-mode=im 才嵌上游会话组件。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 底栏消息 | 消息 / 通知分段 | ruoyi-office-uniapp/src/pages/message/index.vue |
| 通道判断 | isImMode() | ruoyi-office-uniapp/src/utils/office-im |
| 用户分包 | 会话、通讯录、通话 | ruoyi-office-uniapp/src/pages-im/home/ |
| 运营分包 | 好友 / 群 / 频道 / 敏感词 | pages-im/manager/ |
| 分包声明 | root: pages-im | ruoyi-office-uniapp/src/pages.json |
| 后端 | 与 PC 同一套 admin 接口 | ruoyi-office/yudao-module-im/ |
isIm 为真:聊天 Tab 嵌 ConversationList,通讯录跳 /pages-im/home/contact/index?embedded=1。为假:仍用自研轻聊列表。通知 Tab 两边共用。
菜单 7500 树的 mobile_path 已指向 pages-im:会话、好友管理、群管理、频道、RTC、表情、敏感词等。权限字与 PC 相同,例如 im:friend:query。
OA 商业裁剪会停 PC im/% 菜单;移动端是否还带 pages-im 看该次 OA 包有没有剥分包。默认 im-mode 仍是 oa 时,底栏不会嵌完整会话。
没有移动专用 Controller。接口仍是 /im/message/private/send、/im/friend-request/apply 等。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
im-mode | 服务端通道,前端 isImMode 对齐 | OfficeImModeService |
embedded=1 | 通讯录嵌在消息页里 | pages-im/home/contact/ |
activeTab | chat / notify | pages/message/index.vue |
切换通道不迁会话
和 PC 一样,轻聊记录不会出现在 pages-im 列表里。
运营页也是管理员搬家
pages-im/manager/* 对的是 /im/manager/*,不是另一套 C 端后台。
示意图:后端同一前缀。差在前端嵌哪套列表。
配置与操作
移动端改 pages-im。底栏消息页看 isImMode():im-mode=im 才嵌完整会话,否则仍是轻聊列表。菜单 7500 树的 mobile_path 已指向会话、好友管理、群管理、频道、RTC、表情、敏感词等。
登录后接口仍是 /admin-api/im/*,例如 /im/message/private/send、/im/friend-request/apply。权限字与 PC 相同,例如 im:friend:query。默认 im-mode 仍是 oa 时,底栏不会嵌完整会话。切换通道不迁轻聊记录。
