mdm-im-v3 1.4.7 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +10 -1
  2. package/LICENSE +21 -0
  3. package/README.md +265 -25
  4. package/dist/{FilePreview-BpaMMzaM.js → FilePreview-DdtQxMbG.js} +3 -3
  5. package/dist/core.es.js +1 -1
  6. package/dist/{index-CD9kb61K.js → index-Bb8V05H4.js} +594 -576
  7. package/dist/{index-SS122_Ak.js → index-Bi1CnpxN.js} +12 -12
  8. package/dist/{index-Dh4Ac3rR.js → index-szNAIRJh.js} +2 -2
  9. package/dist/index.es.js +1 -1
  10. package/dist/style/index.css +1 -1
  11. package/dist-h5/ChatHistoryH5-Deqlnw3u.js +702 -0
  12. package/dist-h5/ChatPageH5-wyLGmPhW.js +3381 -0
  13. package/dist-h5/ChatSettingsH5-DD3dnI-H.js +1166 -0
  14. package/dist-h5/CreateGroupH5-3LIujy3_.js +498 -0
  15. package/dist-h5/GroupAnnouncementH5-5EpXQs5V.js +411 -0
  16. package/dist-h5/GroupInfoDialogH5-fgcrbRyp.js +468 -0
  17. package/dist-h5/GroupMembersH5-DX2lxrLB.js +526 -0
  18. package/dist-h5/GroupNoticeH5-DVXrcmP9.js +227 -0
  19. package/dist-h5/MemberDetailH5-DAVUVr30.js +461 -0
  20. package/dist-h5/SearchPageH5-BiGhJF4U.js +222 -0
  21. package/dist-h5/SelectMembersH5-DbrSnTg3.js +449 -0
  22. package/dist-h5/_plugin-vue_export-helper-1tPrXgE0.js +10 -0
  23. package/dist-h5/assets/extracted/017fa3ad.png +0 -0
  24. package/dist-h5/assets/extracted/01e27fe0.png +0 -0
  25. package/dist-h5/assets/extracted/03806604.png +0 -0
  26. package/dist-h5/assets/extracted/1e93bbf6.png +0 -0
  27. package/dist-h5/assets/extracted/496b907e.png +0 -0
  28. package/dist-h5/assets/extracted/787d961b.webp +0 -0
  29. package/dist-h5/assets/extracted/8386cfb9.webp +0 -0
  30. package/dist-h5/assets/extracted/8b132123.png +0 -0
  31. package/dist-h5/assets/extracted/9ace2344.png +0 -0
  32. package/dist-h5/assets/extracted/9f0d261c.png +0 -0
  33. package/dist-h5/default_avatar-BE2kit_X.js +4 -0
  34. package/dist-h5/empty_notice-D1FNXIRD.js +4 -0
  35. package/dist-h5/file_excel_icon-dlT1dWlt.js +14 -0
  36. package/dist-h5/imChat-Cz45JFEl.js +751 -0
  37. package/dist-h5/index.es.js +4 -0
  38. package/dist-h5/indexH5-BZ77bUNH.js +1017 -0
  39. package/dist-h5/indexH5-Cx3l8YDq.js +37538 -0
  40. package/dist-h5/request-rky8JSGo.js +44 -0
  41. package/dist-h5/style/index-h5.css +1 -0
  42. package/package.json +70 -58
package/CHANGELOG.md CHANGED
@@ -62,4 +62,13 @@
62
62
  ## V1.4.7 2026-08-12
63
63
  - 发布mdm-im-v3@1.4.7版本
64
64
  1. 插件样式引入不全问题修复;
65
- 2. 打包时增加代码压缩及代码分析。
65
+ 2. 打包时增加代码压缩及代码分析。
66
+
67
+ ## V2.0.0 2026-08-17
68
+ - 发布mdm-im-v3@2.0.0版本
69
+ 1. 插件引入H5版本,使用方式详见README.md文档。
70
+
71
+ ## V2.0.1 2026-08-17
72
+ - 发布mdm-im-v3@2.0.1版本
73
+ 1. 修复H5组件在调用时不渲染页面问题;
74
+ 2. 补充License文件。
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 zhencanhua
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,12 +1,50 @@
1
1
  # mdm-im-v3
2
2
 
3
- 基于 OpenIM SDK 的 Vue 3 即时通讯组件库,提供会话列表、单聊/群聊消息、文件收发、入群审批等功能。
3
+ 基于 OpenIM SDK 的 Vue 3 即时通讯组件库,提供会话列表、单聊/群聊消息、文件收发、入群审批等功能。**同时支持 PC 端(Element-Plus)和 H5 移动端(Vant 4)**,打包后通过 npm 分发,由同一包提供双端组件。
4
4
 
5
5
  ## 技术栈
6
6
 
7
7
  - Node 18+(推荐 Node 20+ LTS)
8
- - Vue 3 + ElementPlus
8
+ - Vue 3 + Pinia + vue-router
9
9
  - OpenIM client-sdk(`@openim/client-sdk@0.0.18`) [技术文档](https://doc.rentsoft.cn/zh-hans/sdks/quickstart/browser)
10
+ - PC 端:Element-Plus / H5 端:Vant 4
11
+
12
+ ## npm 包目录结构
13
+
14
+ 安装 `mdm-im-v3` 后,node_modules 中的包目录如下:
15
+
16
+ ```
17
+ node_modules/mdm-im-v3/
18
+ ├── dist/ # PC 端构建产物
19
+ │ ├── index.es.js # 入口(导出 mdmImV3 组件)
20
+ │ ├── core.es.js # 入口(导出 useMessage + useChatStore)
21
+ │ ├── style/index.css # 样式文件
22
+ │ ├── index-*.js # 内部代码分割文件(Vite 自动分包)
23
+ │ ├── wangeditor-*.js # 富文本编辑器分包
24
+ │ ├── vue-office-*.js # 文档预览分包
25
+ │ └── assets/ # 图片/字体等资源文件
26
+ ├── dist-h5/ # H5 端构建产物
27
+ │ ├── index.es.js # 入口(导出 mdmImV3H5 组件,内部自带路由)
28
+ │ ├── style/index-h5.css # 样式文件
29
+ │ ├── *H5-*.js # 按路由拆分的页面代码
30
+ │ └── assets/ # 图片/字体等资源文件
31
+ ├── package.json # package exports 定义导入路径映射
32
+ └── README.md
33
+ ```
34
+
35
+ ### 导入路径映射
36
+
37
+ `package.json` 的 `exports` 字段定义了以下导入路径,消费方使用路径名导入即可,无需关心内部目录结构:
38
+
39
+ | 导入路径 | 对应文件 | 导出内容 | 用途 |
40
+ |---------|---------|---------|------|
41
+ | `mdm-im-v3` | `dist/index.es.js` | `mdmImV3` | PC 端主组件 |
42
+ | `mdm-im-v3/core` | `dist/core.es.js` | `useMessage`, `useChatStore` | IM 登录/通信核心(PC/H5 通用) |
43
+ | `mdm-im-v3/h5` | `dist-h5/index.es.js` | `mdmImV3H5` | H5 端主组件(内部自带路由) |
44
+ | `mdm-im-v3/style/index.css` | `dist/style/index.css` | CSS | PC 端样式文件 |
45
+ | `mdm-im-v3/style/index-h5.css` | `dist-h5/style/index-h5.css` | CSS | H5 端样式文件 |
46
+
47
+ > **核心原则:** `mdm-im-v3/core` 在两端通用,PC 端额外导入 `mdm-im-v3`(组件)和 `mdm-im-v3/style/index.css`(样式),H5 端额外导入 `mdm-im-v3/h5`(组件)和 `mdm-im-v3/style/index-h5.css`(样式)。
10
48
 
11
49
  ## 安装
12
50
 
@@ -14,13 +52,29 @@
14
52
  pnpm i mdm-im-v3@latest -S
15
53
  ```
16
54
 
17
- 本库依赖以下 peer dependencies,需在项目中自行安装:
55
+ ### 安装 peer 依赖
56
+
57
+ > **PC 端** 需安装以下依赖(选择你自己的包管理器):
18
58
 
19
59
  ```bash
20
60
  pnpm i vue@^3.5 element-plus@^2.9 @element-plus/icons-vue@^2.3 pinia@^3.0 pinia-plugin-persist@^1.0 vue-router@^4.5 axios@^1.8 sass@^1.86 -S
21
61
  ```
22
62
 
23
- ## 快速开始
63
+ > **H5 端** 同样需要安装 Vue 等基础依赖,但**无需安装 element-plus**,改为安装 Vant:
64
+
65
+ ```bash
66
+ # H5 端需要的基础依赖(与 PC 端共享 pinia、vue-router、sass 等)
67
+ pnpm i vue@^3.5 pinia@^3.0 pinia-plugin-persist@^1.0 vue-router@^4.5 axios@^1.8 sass@^1.86 -S
68
+
69
+ # H5 端额外需要 Vant
70
+ pnpm i vant@^4.10 -S
71
+ ```
72
+
73
+ > **H5 端不需要安装** `element-plus` 和 `@element-plus/icons-vue`。
74
+
75
+ ---
76
+
77
+ ## PC 端使用
24
78
 
25
79
  ### 方式一:autoLogin(推荐)
26
80
 
@@ -62,11 +116,10 @@ const handleLogin = () => {
62
116
  3. 组件自动读取 store 中的已登录状态和 `window.imInstance`,无需重复初始化
63
117
 
64
118
  ```js
65
- // ========== 步骤1:core/index.js — 应用入口处登录 IM ==========
119
+ // ========== 步骤1:应用入口处登录 IM ==========
66
120
  import { watch } from 'vue'
67
121
  import { useMessage } from 'mdm-im-v3/core'
68
122
 
69
- // 传入配置参数,自动保存到 store;同时解构出 loginStatus 用于监控
70
123
  const { initIMSDK, getUnReadMessageCount, loginStatus, messageStore } = useMessage({
71
124
  userID: 'your-account', // 用户 ID,必填
72
125
  nickname: 'your-name', // 用户昵称
@@ -85,14 +138,13 @@ await initIMSDK()
85
138
  // 监控 IM 登录状态,登录成功后获取未读数
86
139
  watch(loginStatus, status => {
87
140
  if (status === 3) {
88
- // 从服务端获取未读消息总数
89
141
  getUnReadMessageCount(true)
90
142
  }
91
143
  })
92
144
  ```
93
145
 
94
146
  ```vue
95
- <!-- ========== 步骤2:IM 页面 — 切换菜单后渲染组件 ========== -->
147
+ <!-- ========== 步骤2:切换菜单后渲染 PC 组件 ========== -->
96
148
  <template>
97
149
  <mdm-im-v3 ref="chatRef" theme="dark" />
98
150
  </template>
@@ -107,7 +159,204 @@ const chatRef = ref()
107
159
  </script>
108
160
  ```
109
161
 
110
- > **原理:** `useMessage()` 内部自动将配置存入 Pinia store(`useChatStore`),`initIMSDK()` 创建的 IM 实例挂载到 `window.imInstance`。<mdm-im-v3> 组件挂载时检测到 `loginStatus === 3`(已登录),直接复用已有的 IM 实例和会话数据,无需二次登录。</mdm-im-v3>
162
+ > **原理:** `useMessage()` 内部自动将配置存入 Pinia store(`useChatStore`),`initIMSDK()` 创建的 IM 实例挂载到 `window.imInstance`。<mdm-im-v3> 组件挂载时检测到 `loginStatus === 3`(已登录),直接复用已有的 IM 实例和会话数据,无需二次登录。
163
+
164
+ ---
165
+
166
+ ## H5 移动端使用
167
+
168
+ 本库同时提供 H5 移动端组件,基于 Vant 4 UI 库构建,采用独立全屏页面路由(区别于 PC 端左右分栏布局)。H5 端从 **`mdm-im-v3/h5`** 路径导入组件,**与 PC 端一样,只需要一个入口组件,无需暴露路由**。
169
+
170
+ ### 前置准备
171
+
172
+ H5 端需要安装 Vant 并在入口文件中注册:
173
+
174
+ ```bash
175
+ pnpm i vant@^4.10 -S
176
+ ```
177
+
178
+ ### 入口文件(main.js)
179
+
180
+ ```js
181
+ import { createApp } from 'vue'
182
+ import { createPinia } from 'pinia'
183
+ import PiniaPersist from 'pinia-plugin-persist'
184
+ import Vant from 'vant'
185
+ import 'vant/lib/index.css'
186
+ import 'mdm-im-v3/style/index-h5.css'
187
+ import { mdmImV3H5 } from 'mdm-im-v3/h5'
188
+
189
+ import App from './App.vue'
190
+
191
+ const app = createApp(App)
192
+ const pinia = createPinia()
193
+ pinia.use(PiniaPersist)
194
+
195
+ app.use(pinia)
196
+ app.use(Vant)
197
+ app.mount('#app')
198
+ ```
199
+
200
+ > **注意:** H5 路由使用 `createWebHashHistory`,共有 11 个页面路径,**全部内聚在 `mdmImV3H5` 组件内部**,消费方无需注册路由,只需在模板中放置 `<mdm-im-v3-h5>` 标签即可。
201
+
202
+ ### 根组件(App.vue)
203
+
204
+ ```vue
205
+ <template>
206
+ <mdm-im-v3-h5 ref="h5Ref" theme="light" />
207
+ </template>
208
+
209
+ <script setup>
210
+ import { ref } from 'vue'
211
+ import { mdmImV3H5 } from 'mdm-im-v3/h5'
212
+
213
+ const h5Ref = ref()
214
+ </script>
215
+ ```
216
+
217
+ ### 方式一:autoLogin(推荐)
218
+
219
+ 通过组件暴露的 `autoLogin` 方法一键完成初始化、登录和会话加载,**与 PC 端完全一致**:
220
+
221
+ ```vue
222
+ <template>
223
+ <mdm-im-v3-h5 ref="h5Ref" theme="light" />
224
+ </template>
225
+
226
+ <script setup>
227
+ import { ref } from 'vue'
228
+ import { mdmImV3H5 } from 'mdm-im-v3/h5'
229
+
230
+ const h5Ref = ref()
231
+
232
+ const handleLogin = () => {
233
+ h5Ref.value.autoLogin({
234
+ loginCode: 'your-account', // 用户登录账号,必填
235
+ userName: 'your-name', // 用户名
236
+ imToken: 'your-im-token', // OpenIM 用户令牌,必填
237
+ satoken: 'your-system-token',// 系统 token(上传文件等接口使用)
238
+ apiUrl: 'https://your-api-url:8443', // IM api 地址,必填
239
+ platformID: 5, // IM 平台标识,可选,5-网页端
240
+ })
241
+ }
242
+ </script>
243
+ ```
244
+
245
+ `autoLogin` 内部自动完成:store 写入用户信息 → 初始化 IM SDK → 登录 → 轮询登录状态 → 状态变为已登录后自动跳转到会话列表页。
246
+
247
+ ### 方式二:分步加载(手动控制登录流程)
248
+
249
+ 适用于**先登录 IM 获取未读数 → 再切换到 IM 页面展示内容**的场景,与 PC 端流程一致:
250
+
251
+ ```js
252
+ // ========== 步骤1:应用入口处登录 IM ==========
253
+ import { watch } from 'vue'
254
+ import { useMessage } from 'mdm-im-v3/core'
255
+
256
+ const { initIMSDK, getUnReadMessageCount, loginStatus } = useMessage({
257
+ userID: 'your-account',
258
+ nickname: 'your-name',
259
+ imToken: 'your-im-token',
260
+ satoken: 'your-system-token',
261
+ apiUrl: 'https://your-api-url:8443',
262
+ wsUrl: 'wss://your-ws-url:8443',
263
+ platformID: 5,
264
+ })
265
+
266
+ // 初始化并登录
267
+ await initIMSDK()
268
+
269
+ // 监控 IM 登录状态,登录成功后获取未读数
270
+ watch(loginStatus, status => {
271
+ if (status === 3) {
272
+ getUnReadMessageCount(true)
273
+ }
274
+ })
275
+ ```
276
+
277
+ ```vue
278
+ <!-- ========== 步骤2:切换菜单后渲染 H5 组件 ========== -->
279
+ <template>
280
+ <mdm-im-v3-h5 ref="h5Ref" theme="light" />
281
+ </template>
282
+
283
+ <script setup>
284
+ import { ref } from 'vue'
285
+ import { mdmImV3H5 } from 'mdm-im-v3/h5'
286
+ // 组件会自动读取 store 和 window.imInstance,无需再次初始化
287
+
288
+ const h5Ref = ref()
289
+ </script>
290
+ ```
291
+
292
+ > **原理:** `useMessage()` 内部自动将配置存入 Pinia store(`useChatStore`),`initIMSDK()` 创建的 IM 实例挂载到 `window.imInstance`。`<mdm-im-v3-h5>` 组件挂载时检测到 `loginStatus === 3`(已登录),直接复用已有的 IM 实例和会话数据,无需二次登录。
293
+
294
+ ### H5 内置路由表
295
+
296
+ 以下路由全部内聚在 `mdmImV3H5` 组件内部,消费方无需关心:
297
+
298
+ | 路径 | 组件 | 说明 |
299
+ |------|------|------|
300
+ | `/` | 会话列表主页 | 展示会话列表,支持滑动操作 |
301
+ | `/chat` | 聊天页 | 消息列表 + 文字/图片/文件输入 |
302
+ | `/search` | 搜索页 | 搜索用户和本地会话 |
303
+ | `/notice` | 群通知 | 入群申请审批列表 |
304
+ | `/create-group` | 创建群组 | 选择成员创建群聊 |
305
+ | `/select-members` | 选择成员 | 通用人员选择器 |
306
+ | `/member-detail` | 人员详情 | 单聊/群成员信息卡片 |
307
+ | `/chat-settings` | 聊天设置 | 免打扰/清聊天记录/退出群聊 |
308
+ | `/group-announcement` | 群公告 | 查看/编辑群公告 |
309
+ | `/chat-history` | 聊天记录 | 按日期查看历史消息 |
310
+ | `/group-members` | 群成员列表 | 展示/管理群成员 |
311
+
312
+ ### H5 组件 Props
313
+
314
+ | Prop | 类型 | 默认值 | 说明 |
315
+ |------|------|--------|------|
316
+ | `theme` | `String` | `'light'` | 主题:`'dark'` / `'light'` |
317
+ | `baseConfig` | `Object` | `{}` | IM 配置对象 |
318
+ | `groupID` | `String` | `''` | 指定群组 ID,登录后直接打开该群 |
319
+ | `loadMessageCount` | `Number` | `50` | 每次加载的历史消息数量(10–100) |
320
+ | `tenantID` | `String\|Number` | `'1'` | 租户 ID |
321
+ | `onKeywordCheck` | `Boolean` | `false` | 是否启用外部敏感词校验 |
322
+ | `outsideHandleUser` | `Boolean` | `false` | 是否由外部处理人员选择 |
323
+
324
+ ### H5 组件暴露的方法
325
+
326
+ 通过 `ref` 调用 `<mdm-im-v3-h5>`:
327
+
328
+ ```ts
329
+ // autoLogin — 一键登录
330
+ h5Ref.value.autoLogin({
331
+ loginCode: string // 用户登录账号,必填
332
+ userName?: string // 用户名
333
+ imToken: string // OpenIM 用户令牌,必填
334
+ satoken?: string // 系统 token
335
+ apiUrl: string // IM API 地址,必填
336
+ platformID?: number // IM 平台标识(默认 5-网页端)
337
+ })
338
+
339
+ // checkLogin() — 检测 store 中已有登录状态后跳转到会话列表页
340
+ h5Ref.value.checkLogin()
341
+ ```
342
+
343
+ ### H5 端与 PC 端差异
344
+
345
+ | 维度 | PC | H5 |
346
+ |------|----|----|
347
+ | **导入路径** | `mdm-im-v3` | `mdm-im-v3/h5` |
348
+ | **导入内容** | `mdmImV3`(组件) | `mdmImV3H5`(组件) |
349
+ | **核心库** | `mdm-im-v3/core` | `mdm-im-v3/core`(共享) |
350
+ | **样式入口** | `mdm-im-v3/style/index.css` | `mdm-im-v3/style/index-h5.css` |
351
+ | **UI 库** | Element-Plus | Vant 4 |
352
+ | **布局** | 左右分栏(会话列表 + 聊天面板同屏) | 独立全屏页面,路由导航 |
353
+ | **路由** | 无内置路由,消费方自行管理 | 内置路由(hash 模式,11 页面),内聚在组件内部 |
354
+ | **消息输入** | 富文本编辑器(@wangeditor) | 纯文本 `<textarea>` |
355
+ | **会话操作** | 右键 contextmenu 菜单 | 左滑操作 + 长按 ActionSheet |
356
+ | **截图** | 支持 `js-web-screen-shot` | 不支持 |
357
+ | **下拉刷新/无限滚动** | 自定义滚动事件 | `van-pull-refresh` + `van-list` |
358
+
359
+ ---
111
360
 
112
361
  ## 组件 Props
113
362
 
@@ -115,7 +364,7 @@ const chatRef = ref()
115
364
  |------|------|--------|------|
116
365
  | `theme` | `String` | `'dark'` | 主题:`'dark'`(深色) / `'light'`(浅色) |
117
366
  | `baseConfig` | `Object` | `{}` | IM 配置对象,见下方说明 |
118
- | `showConversationList` | `Boolean` | `true` | 是否显示左侧会话列表 |
367
+ | `showConversationList` | `Boolean` | `true` | 是否显示左侧会话列表(仅 PC 端有效) |
119
368
  | `groupID` | `String` | `''` | 指定群组 ID,登录后直接打开该群会话 |
120
369
  | `loadMessageCount` | `Number` | `50` | 每次加载的历史消息数量(范围 10–100) |
121
370
  | `tenantID` | `String\|Number` | `'1'` | 租户 ID,随消息扩展字段发送 |
@@ -161,18 +410,18 @@ const chatRef = ref()
161
410
 
162
411
  无返回值。方法内部完成 store 写入、SDK 初始化、登录、轮询状态直到会话列表加载完毕。
163
412
 
164
- ### `afterLogged()`
413
+ ### `checkLogin()`
414
+
415
+ 轮询检测登录状态:当 store 中 `loginStatus === 3`(已登录)且 `window.imInstance` 存在时,自动调用内部 `afterLogged()` 拉取会话列表。配合方式二(手动 `useMessage` 登录)使用;方式一(`autoLogin`)内部已自动调用。
165
416
 
166
- IM 登录成功后调用,拉取会话列表。配合方式二使用,方式一(`autoLogin`)内部已自动调用。
417
+ > 注:`afterLogged()` 为组件内部方法,未通过 `defineExpose` 暴露,外部请调用 `checkLogin()` 触发会话加载。
167
418
 
168
419
  ### `sendCheckedText({ list, isReply, atUserList })`
169
420
 
170
421
  发送经过敏感词校验后的文本。与 `send-chat-text` 事件配合使用:
171
422
 
172
423
  ```js
173
- // 父组件中
174
424
  const handleSendChatText = ({ list, isReply, atUserList }) => {
175
- // 调用外部敏感词过滤接口...
176
425
  const filteredList = keywordFilter(list)
177
426
  chatRef.value.sendCheckedText({ list: filteredList, isReply, atUserList })
178
427
  }
@@ -187,20 +436,15 @@ chatRef.value.inviteUser('group-id-xxx', ['user1', 'user2'])
187
436
  // 返回 Promise<boolean>
188
437
  ```
189
438
 
190
- ### `openGroupApplications()`
191
-
192
- 打开入群申请审批抽屉(群主/管理员审批入口)。
193
-
194
439
  ---
195
440
 
196
441
  ## `useMessage` API
197
442
 
198
- 从 `mdm-im-v3/core` 导入,用于手动管理 IM 生命周期。该模块同时导出 `useMessage` 和 `useChatStore`:
443
+ 从 `mdm-im-v3/core` 导入,PC / H5 两端通用,用于手动管理 IM 生命周期:
199
444
 
200
445
  ```js
201
446
  import { useMessage, useChatStore } from 'mdm-im-v3/core'
202
447
 
203
- // useMessage 内部自动引入 useChatStore,无需从外部传入 store
204
448
  const { initIMSDK, clearInstance, getUnReadMessageCount, setConversationMsgAsRead, mittBus } = useMessage({
205
449
  userID: 'your-account',
206
450
  nickname: 'your-name',
@@ -315,7 +559,6 @@ const chatStore = useChatStore()
315
559
  ```js
316
560
  const { mittBus } = useMessage()
317
561
  mittBus.on('LOGOUT_NOTICE', () => {
318
- // 处理被强制下线
319
562
  router.push('/login')
320
563
  })
321
564
  ```
@@ -325,11 +568,8 @@ mittBus.on('LOGOUT_NOTICE', () => {
325
568
  支持深色(`dark`)和浅色(`light`)两套主题,通过 CSS 变量驱动:
326
569
 
327
570
  ```html
328
- <!-- 深色主题 -->
329
571
  <mdm-im-v3 theme="dark" />
330
-
331
- <!-- 浅色主题 -->
332
572
  <mdm-im-v3 theme="light" />
333
573
  ```
334
574
 
335
- 主题 CSS 变量定义在 `chat-dark-theme` / `chat-light-theme` 类名下,可通过覆盖 CSS 变量进行自定义。
575
+ 主题 CSS 变量定义在 `chat-dark-theme` / `chat-light-theme` 类名下,可通过覆盖 CSS 变量进行自定义。
@@ -1,8 +1,8 @@
1
1
  import { reactive, computed, ref, watch, nextTick, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, withCtx, unref, createElementVNode, withModifiers, toDisplayString, createCommentVNode, normalizeStyle, createBlock, resolveDynamicComponent } from "vue";
2
2
  import { DocumentDelete, ZoomOut, ZoomIn } from "@element-plus/icons-vue";
3
- import { u as useChatStore } from "./index-CD9kb61K.js";
3
+ import { u as useChatStore } from "./index-Bb8V05H4.js";
4
4
  import axios from "axios";
5
- import { _ as _export_sfc } from "./index-SS122_Ak.js";
5
+ import { _ as _export_sfc } from "./index-Bi1CnpxN.js";
6
6
  const _hoisted_1 = { class: "file-preview-box" };
7
7
  const _hoisted_2 = {
8
8
  key: 0,
@@ -378,7 +378,7 @@ const _sfc_main = {
378
378
  };
379
379
  }
380
380
  };
381
- const FilePreview = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ac8cc8b1"]]);
381
+ const FilePreview = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a7139ea8"]]);
382
382
  export {
383
383
  FilePreview as default
384
384
  };
package/dist/core.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { u, A } from "./index-CD9kb61K.js";
2
+ import { u, A } from "./index-Bb8V05H4.js";
3
3
  export {
4
4
  u as useChatStore,
5
5
  A as useMessage