@zjw-jszn/shared-imsdk 1.0.12 → 1.0.13

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.
@@ -31,6 +31,11 @@ export type EntityRecord = Record<string, EntityFieldValue>;
31
31
  * @param file 图片文件
32
32
  */
33
33
  export declare function uploadImage(file: File): Promise<UploadImageResponse>;
34
+ /**
35
+ * 上传文件(视频、文档等)
36
+ * @param file 文件对象
37
+ */
38
+ export declare function uploadFile(file: File): Promise<UploadImageResponse>;
34
39
  export interface Session {
35
40
  id: number;
36
41
  site_id: number;
@@ -7,6 +7,7 @@ export interface SDKConfig {
7
7
  resourceBaseURL: string;
8
8
  prefix: string;
9
9
  uploadURL: string;
10
+ uploadFileURL: string;
10
11
  signKey: string;
11
12
  suffix: string;
12
13
  groupId: string;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getUserInfo, initIM } from './sdk/index';
2
- export { getAuthorization, getChatList, getChatListBySession, getChatRewordBySession, getUnReadCount, getUnReadList, getUserChatList, } from './api';
2
+ export { getAuthorization, getChatList, getChatListBySession, getChatRewordBySession, getUnReadCount, getUnReadList, getUserChatList, uploadFile, uploadImage, } from './api';
3
3
  export type { Message as APIMessage, PageResponse, Session } from './api';
4
4
  export { default as IMSDKApp } from './App.vue';
5
5
  export { buildApiPath, getAuthorizationExtraPayload, getConfig, getRuntimeApi, hasApiCapability, isPlatformMode, isStoreMode, resetConfig, updateConfig, } from './config';
@@ -88,13 +88,13 @@
88
88
  }
89
89
  .v3-body-inner{scroll-behavior:smooth;scrollbar-color:#393d3f rgba(0,0,0,.1);scrollbar-width:thin}.v3-body-inner::-webkit-scrollbar{width:8px}.v3-body-inner::-webkit-scrollbar-track{background-color:transparent}.v3-body-inner::-webkit-scrollbar-thumb{display:none;background:rgba(0,0,0,.3);border-radius:5px}.v3-body-inner:hover::-webkit-scrollbar-thumb{display:block}.v3-emoji-picker{height:320px;width:280px;box-shadow:0 2px 10px #0003;border-radius:10px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;text-align:left}.v3-emoji-picker *{box-sizing:border-box}.v3-emoji-picker .v3-header{padding:15px 15px 13px;border-bottom:1px solid}.v3-emoji-picker .v3-header .v3-groups{display:flex}.v3-emoji-picker .v3-header .v3-groups .v3-group{flex-grow:1;padding:0;margin:0;border:none;background:none;font-size:23px;cursor:pointer;position:relative;display:block;opacity:.7;transition:.2s}.v3-emoji-picker .v3-header .v3-groups .v3-group.v3-is-hidden{display:none}.v3-emoji-picker .v3-header .v3-groups .v3-group:first-child,.v3-emoji-picker .v3-header .v3-groups .v3-group:last-child{flex-grow:0}.v3-emoji-picker .v3-header .v3-groups .v3-group:hover{opacity:1}.v3-emoji-picker .v3-header .v3-groups .v3-group span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-header .v3-groups .v3-group span img{display:block;width:1em;height:auto}.v3-emoji-picker .v3-spacing{height:11px}.v3-emoji-picker .v3-search input{width:100%;display:block;height:26px;padding:0 10px;border:1px solid;border-radius:3px;font-size:12px;transition:.2s}.v3-emoji-picker .v3-search input:focus{outline:none}.v3-emoji-picker .v3-body{padding:0 0 15px 11px;min-height:0;flex-grow:1}.v3-emoji-picker .v3-body .v3-body-inner{flex-grow:1;min-height:0;overflow-y:auto;overflow-x:hidden;height:100%;padding-right:11px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5{margin:0;top:0;padding:7px 0 3px 4px;z-index:2}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5.v3-sticky{position:sticky}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis{display:flex;font-size:18px;flex-wrap:wrap}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button{cursor:pointer;border:none;background:none;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;flex-basis:12.5%;max-width:12.5%;flex-grow:1;padding:0;font-size:22px;position:relative}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:after{content:"";width:100%;padding-bottom:100%}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span{display:flex;align-items:center;justify-content:center}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{max-width:100%;padding:4px}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button span,.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button img{position:absolute;top:0;left:0;width:100%;height:100%}.v3-emoji-picker .v3-body .v3-body-inner.is-mac .v3-emojis button{font-family:"Apple Color Emoji"}.v3-emoji-picker .v3-footer{font-size:14px;border-top:1px solid #dddddd;padding:15px;display:flex;align-items:center;justify-content:space-between;position:relative}.v3-emoji-picker .v3-footer .v3-tone,.v3-emoji-picker .v3-footer .v3-foot-left{display:flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone img,.v3-emoji-picker .v3-footer .v3-foot-left img{width:20px;display:block}.v3-emoji-picker .v3-footer .v3-tone>span:first-child,.v3-emoji-picker .v3-footer .v3-foot-left>span:first-child{margin-right:6px}.v3-emoji-picker .v3-footer .v3-foot-left>span.v3-text{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v3-emoji-picker .v3-footer .v3-tone{border:none;padding:0;background:none;cursor:pointer;display:inline-flex;align-items:center}.v3-emoji-picker .v3-footer .v3-tone>span{display:inline-flex;vertical-align:top}.v3-emoji-picker .v3-footer .v3-tone .v3-text{font-size:13px}.v3-emoji-picker .v3-footer .v3-tone .v3-icon{display:inline-flex;height:15px;width:15px;vertical-align:middle;align-self:center;border:2px solid rgba(0,0,0,.2)}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-neutral{background-color:#ffd225}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fb{background-color:#ffdfbd}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fc{background-color:#e9c197}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fd{background-color:#c88e62}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3fe{background-color:#a86637}.v3-emoji-picker .v3-footer .v3-tone .v3-icon.v3-tone-1f3ff{background-color:#60463a}.v3-emoji-picker .v3-footer .v3-tone .is-mac span{font-family:"Apple Color Emoji"}.v3-skin-tones{position:absolute;height:100%;width:60%;top:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding:0 15px;opacity:0;visibility:hidden;transition:.2s;border-radius:0 0 10px 10px}.v3-skin-tones.v3-is-open{opacity:1;visibility:visible}.v3-skin-tones .v3-skin-tone{display:inline-block;height:15px;width:25px;border:none;padding:0;cursor:pointer;transition:0ms}.v3-skin-tones .v3-skin-tone:hover{transform:scale(1.1);transition:.2s}.v3-skin-tones .v3-skin-tone-neutral{color:#ffd225;background-color:#ffd225}.v3-skin-tones .v3-skin-tone-1f3fb{color:#ffdfbd;background-color:#ffdfbd}.v3-skin-tones .v3-skin-tone-1f3fc{color:#e9c197;background-color:#e9c197}.v3-skin-tones .v3-skin-tone-1f3fd{color:#c88e62;background-color:#c88e62}.v3-skin-tones .v3-skin-tone-1f3fe{color:#a86637;background-color:#a86637}.v3-skin-tones .v3-skin-tone-1f3ff{color:#60463a;background-color:#60463a}.v3-input-emoji-picker *{box-sizing:border-box}.v3-input-emoji-picker .v3-input-picker-root{position:relative}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-input,.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{width:100%;height:40px;border:1px solid #999;padding-left:15px}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea{min-height:80px;resize:vertical}.v3-input-emoji-picker .v3-input-picker-root .v3-emoji-picker-textarea+.v3-input-picker-wrap .v3-input-picker-icon{top:auto;bottom:5px}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon{display:inline-flex;position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:24px;border:none;background:none;padding:0 5px;cursor:pointer}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-input-picker-icon img{display:block;width:1em;height:1em}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap .v3-emoji-picker{opacity:0;visibility:hidden;transition:.2s}.v3-input-emoji-picker .v3-input-picker-root .v3-input-picker-wrap.v3-picker-is-open .v3-emoji-picker{opacity:1;visibility:visible;z-index:999}.v3-emoji-picker{--v3-picker-bg: #ffffff;--v3-picker-fg: #000000;--v3-picker-border: #dddddd;--v3-picker-input-bg: var(--v3-picker-bg);--v3-picker-input-border: #cccccc;--v3-picker-input-focus-border: #000000;--v3-group-image-filter: none;--v3-picker-emoji-hover: #f7f7f7;background:var(--v3-picker-bg);color:var(--v3-picker-fg)}.v3-emoji-picker .v3-footer,.v3-emoji-picker .v3-header{border-color:var(--v3-picker-border)}.v3-emoji-picker .v3-groups{filter:var(--v3-group-image-filter)}.v3-emoji-picker .v3-tone{color:var(--v3-picker-fg)}.v3-emoji-picker .v3-search input{background:var(--v3-picker-input-bg);border-color:var(--v3-picker-input-border);color:inherit}.v3-emoji-picker .v3-search input:focus{border-color:var(--v3-picker-input-focus-border)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group h5,.v3-emoji-picker .v3-skin-tones{background:var(--v3-picker-bg)}.v3-emoji-picker .v3-body .v3-body-inner .v3-group .v3-emojis button:hover{background:var(--v3-picker-emoji-hover, #f7f7f7)}@media (prefers-color-scheme: dark){.v3-emoji-picker.v3-color-theme-auto{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}}.v3-emoji-picker.v3-color-theme-dark{--v3-picker-bg: #000000;--v3-picker-fg: #ffffff;--v3-picker-border: #333333;--v3-picker-input-bg: #222222;--v3-picker-input-border: #444444;--v3-picker-input-focus-border: #555555;--v3-group-image-filter: invert(1);--v3-picker-emoji-hover: #222222}
90
90
 
91
- .chat-room[data-v-1459079f] {
91
+ .chat-room[data-v-6f480f31] {
92
92
  display: flex;
93
93
  flex-direction: column;
94
94
  height: 100%;
95
95
  background: #fff;
96
96
  }
97
- .chat-room-header[data-v-1459079f] {
97
+ .chat-room-header[data-v-6f480f31] {
98
98
  display: flex;
99
99
  gap: 12px;
100
100
  align-items: center;
@@ -105,7 +105,7 @@
105
105
  background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
106
106
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
107
107
  }
108
- .back-btn[data-v-1459079f] {
108
+ .back-btn[data-v-6f480f31] {
109
109
  cursor: pointer;
110
110
 
111
111
  display: flex;
@@ -125,26 +125,26 @@
125
125
 
126
126
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
127
127
  }
128
- .back-btn[data-v-1459079f]:hover {
128
+ .back-btn[data-v-6f480f31]:hover {
129
129
  transform: scale(1.05);
130
130
  color: #0e77cc;
131
131
  background: #e8e8e8;
132
132
  }
133
- .back-btn[data-v-1459079f]:active {
133
+ .back-btn[data-v-6f480f31]:active {
134
134
  transform: scale(0.95);
135
135
  }
136
- .title[data-v-1459079f] {
136
+ .title[data-v-6f480f31] {
137
137
  display: flex;
138
138
  flex: 1;
139
139
  gap: 12px;
140
140
  align-items: center;
141
141
  }
142
- .header-actions[data-v-1459079f] {
142
+ .header-actions[data-v-6f480f31] {
143
143
  display: flex;
144
144
  flex-shrink: 0;
145
145
  align-items: flex-end;
146
146
  }
147
- .end-session-btn[data-v-1459079f] {
147
+ .end-session-btn[data-v-6f480f31] {
148
148
  cursor: pointer;
149
149
 
150
150
  min-width: 90px;
@@ -161,21 +161,21 @@
161
161
 
162
162
  transition: all 0.2s ease;
163
163
  }
164
- .end-session-btn[data-v-1459079f]:hover:not(:disabled) {
164
+ .end-session-btn[data-v-6f480f31]:hover:not(:disabled) {
165
165
  border-color: #ffb3ad;
166
166
  background: #ffe7e2;
167
167
  }
168
- .end-session-btn[data-v-1459079f]:disabled {
168
+ .end-session-btn[data-v-6f480f31]:disabled {
169
169
  cursor: not-allowed;
170
170
  opacity: 0.6;
171
171
  }
172
- .avatar-wrapper[data-v-1459079f] {
172
+ .avatar-wrapper[data-v-6f480f31] {
173
173
  position: relative;
174
174
  flex-shrink: 0;
175
175
  width: 42px;
176
176
  height: 42px;
177
177
  }
178
- .avatar-img[data-v-1459079f] {
178
+ .avatar-img[data-v-6f480f31] {
179
179
  width: 100%;
180
180
  height: 100%;
181
181
  border: 2px solid white;
@@ -185,7 +185,7 @@
185
185
  background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);
186
186
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
187
187
  }
188
- .avatar-text[data-v-1459079f] {
188
+ .avatar-text[data-v-6f480f31] {
189
189
  display: flex;
190
190
  align-items: center;
191
191
  justify-content: center;
@@ -202,18 +202,18 @@
202
202
  background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);
203
203
  box-shadow: 0 2px 8px rgba(14, 119, 204, 0.3);
204
204
  }
205
- .user-info[data-v-1459079f] {
205
+ .user-info[data-v-6f480f31] {
206
206
  display: flex;
207
207
  flex-direction: column;
208
208
  gap: 2px;
209
209
  }
210
- .name[data-v-1459079f] {
210
+ .name[data-v-6f480f31] {
211
211
  font-size: 15px;
212
212
  font-weight: 600;
213
213
  color: #262626;
214
214
  letter-spacing: 0.2px;
215
215
  }
216
- .messages[data-v-1459079f] {
216
+ .messages[data-v-6f480f31] {
217
217
  position: relative;
218
218
 
219
219
  overflow-y: auto;
@@ -225,20 +225,20 @@
225
225
  }
226
226
 
227
227
  /* 自定义滚动条 */
228
- .messages[data-v-1459079f]::-webkit-scrollbar {
228
+ .messages[data-v-6f480f31]::-webkit-scrollbar {
229
229
  width: 6px;
230
230
  }
231
- .messages[data-v-1459079f]::-webkit-scrollbar-track {
231
+ .messages[data-v-6f480f31]::-webkit-scrollbar-track {
232
232
  background: transparent;
233
233
  }
234
- .messages[data-v-1459079f]::-webkit-scrollbar-thumb {
234
+ .messages[data-v-6f480f31]::-webkit-scrollbar-thumb {
235
235
  border-radius: 3px;
236
236
  background: #d9d9d9;
237
237
  }
238
- .messages[data-v-1459079f]::-webkit-scrollbar-thumb:hover {
238
+ .messages[data-v-6f480f31]::-webkit-scrollbar-thumb:hover {
239
239
  background: #bfbfbf;
240
240
  }
241
- .loading-more[data-v-1459079f] {
241
+ .loading-more[data-v-6f480f31] {
242
242
  display: flex;
243
243
  gap: 8px;
244
244
  align-items: center;
@@ -249,22 +249,22 @@
249
249
  font-size: 13px;
250
250
  color: #8c8c8c;
251
251
  }
252
- .loading-spinner-small[data-v-1459079f] {
252
+ .loading-spinner-small[data-v-6f480f31] {
253
253
  width: 20px;
254
254
  height: 20px;
255
255
  border: 2px solid #f0f0f0;
256
256
  border-top: 2px solid #0e77cc;
257
257
  border-radius: 50%;
258
258
 
259
- animation: spin-1459079f 0.8s linear infinite;
259
+ animation: spin-6f480f31 0.8s linear infinite;
260
260
  }
261
- .no-more[data-v-1459079f] {
261
+ .no-more[data-v-6f480f31] {
262
262
  padding: 12px;
263
263
  font-size: 12px;
264
264
  color: #bfbfbf;
265
265
  text-align: center;
266
266
  }
267
- .loading-state[data-v-1459079f] {
267
+ .loading-state[data-v-6f480f31] {
268
268
  display: flex;
269
269
  flex-direction: column;
270
270
  align-items: center;
@@ -274,7 +274,7 @@
274
274
 
275
275
  color: #bfbfbf;
276
276
  }
277
- .loading-spinner[data-v-1459079f] {
277
+ .loading-spinner[data-v-6f480f31] {
278
278
  width: 40px;
279
279
  height: 40px;
280
280
  margin-bottom: 16px;
@@ -282,15 +282,15 @@
282
282
  border-top: 3px solid #0e77cc;
283
283
  border-radius: 50%;
284
284
 
285
- animation: spin-1459079f 0.8s linear infinite;
285
+ animation: spin-6f480f31 0.8s linear infinite;
286
286
  }
287
- @keyframes spin-1459079f {
287
+ @keyframes spin-6f480f31 {
288
288
  0% { transform: rotate(0deg);
289
289
  }
290
290
  100% { transform: rotate(360deg);
291
291
  }
292
292
  }
293
- .empty-messages[data-v-1459079f] {
293
+ .empty-messages[data-v-6f480f31] {
294
294
  display: flex;
295
295
  flex-direction: column;
296
296
  align-items: center;
@@ -300,23 +300,23 @@
300
300
 
301
301
  color: #bfbfbf;
302
302
  }
303
- .empty-messages .icon[data-v-1459079f] {
303
+ .empty-messages .icon[data-v-6f480f31] {
304
304
  margin-bottom: 16px;
305
305
  font-size: 64px;
306
306
  opacity: 0.5;
307
307
  }
308
- .empty-messages p[data-v-1459079f] {
308
+ .empty-messages p[data-v-6f480f31] {
309
309
  margin: 0;
310
310
  font-size: 14px;
311
311
  font-weight: 400;
312
312
  }
313
- .message-item[data-v-1459079f] {
313
+ .message-item[data-v-6f480f31] {
314
314
  display: flex;
315
315
  gap: 12px;
316
316
  margin-bottom: 24px;
317
- animation: slide-in-1459079f 0.3s ease-out;
317
+ animation: slide-in-6f480f31 0.3s ease-out;
318
318
  }
319
- @keyframes slide-in-1459079f {
319
+ @keyframes slide-in-6f480f31 {
320
320
  from {
321
321
  transform: translateY(10px);
322
322
  opacity: 0;
@@ -326,16 +326,16 @@ to {
326
326
  opacity: 1;
327
327
  }
328
328
  }
329
- .message-item.is-self[data-v-1459079f] {
329
+ .message-item.is-self[data-v-6f480f31] {
330
330
  justify-content: flex-end;
331
331
  }
332
- .msg-avatar-wrapper[data-v-1459079f] {
332
+ .msg-avatar-wrapper[data-v-6f480f31] {
333
333
  position: relative;
334
334
  flex-shrink: 0;
335
335
  width: 40px;
336
336
  height: 40px;
337
337
  }
338
- .msg-avatar-img[data-v-1459079f] {
338
+ .msg-avatar-img[data-v-6f480f31] {
339
339
  width: 100%;
340
340
  height: 100%;
341
341
  border: 2px solid white;
@@ -345,7 +345,7 @@ to {
345
345
  background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);
346
346
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
347
347
  }
348
- .msg-avatar[data-v-1459079f] {
348
+ .msg-avatar[data-v-6f480f31] {
349
349
  display: flex;
350
350
  align-items: center;
351
351
  justify-content: center;
@@ -362,21 +362,21 @@ to {
362
362
  background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);
363
363
  box-shadow: 0 2px 6px rgba(14, 119, 204, 0.3);
364
364
  }
365
- .message-content-wrapper[data-v-1459079f] {
365
+ .message-content-wrapper[data-v-6f480f31] {
366
366
  display: flex;
367
367
  flex-direction: column;
368
368
  max-width: 65%;
369
369
  }
370
- .is-self .message-content-wrapper[data-v-1459079f] {
370
+ .is-self .message-content-wrapper[data-v-6f480f31] {
371
371
  align-items: flex-end;
372
372
  }
373
- .message-sender[data-v-1459079f] {
373
+ .message-sender[data-v-6f480f31] {
374
374
  margin-bottom: 6px;
375
375
  font-size: 12px;
376
376
  font-weight: 400;
377
377
  color: #8c8c8c;
378
378
  }
379
- .message-content[data-v-1459079f] {
379
+ .message-content[data-v-6f480f31] {
380
380
  padding: 12px 16px;
381
381
  border-radius: 12px;
382
382
 
@@ -385,12 +385,12 @@ to {
385
385
 
386
386
  transition: all 0.2s;
387
387
  }
388
- .message-item.is-self .message-content[data-v-1459079f] {
388
+ .message-item.is-self .message-content[data-v-6f480f31] {
389
389
  color: white;
390
390
  background: linear-gradient(135deg, #0e77cc 0%, #0d6db8 100%);
391
391
  box-shadow: 0 2px 8px rgba(14, 119, 204, 0.25);
392
392
  }
393
- .message-text[data-v-1459079f] {
393
+ .message-text[data-v-6f480f31] {
394
394
  margin-bottom: 6px;
395
395
 
396
396
  font-size: 14px;
@@ -398,15 +398,15 @@ to {
398
398
  color: #262626;
399
399
  overflow-wrap: break-word;
400
400
  }
401
- .message-item.is-self .message-text[data-v-1459079f] {
401
+ .message-item.is-self .message-text[data-v-6f480f31] {
402
402
  color: white;
403
403
  }
404
404
 
405
405
  /* 图片消息 */
406
- .message-image[data-v-1459079f] {
406
+ .message-image[data-v-6f480f31] {
407
407
  margin-bottom: 6px;
408
408
  }
409
- .message-image img[data-v-1459079f] {
409
+ .message-image img[data-v-6f480f31] {
410
410
  cursor: pointer;
411
411
 
412
412
  max-width: 300px;
@@ -417,12 +417,12 @@ to {
417
417
 
418
418
  transition: transform 0.2s;
419
419
  }
420
- .message-image img[data-v-1459079f]:hover {
420
+ .message-image img[data-v-6f480f31]:hover {
421
421
  transform: scale(1.02);
422
422
  }
423
423
 
424
424
  /* 表情消息 */
425
- .message-emoji[data-v-1459079f] {
425
+ .message-emoji[data-v-6f480f31] {
426
426
  display: flex;
427
427
  align-items: center;
428
428
  justify-content: center;
@@ -435,10 +435,10 @@ to {
435
435
  }
436
436
 
437
437
  /* 文件消息 */
438
- .message-file[data-v-1459079f] {
438
+ .message-file[data-v-6f480f31] {
439
439
  margin-bottom: 6px;
440
440
  }
441
- .file-link[data-v-1459079f] {
441
+ .file-link[data-v-6f480f31] {
442
442
  display: inline-flex;
443
443
  gap: 8px;
444
444
  align-items: center;
@@ -455,20 +455,20 @@ to {
455
455
 
456
456
  transition: all 0.2s;
457
457
  }
458
- .file-link[data-v-1459079f]:hover {
458
+ .file-link[data-v-6f480f31]:hover {
459
459
  color: #0e77cc;
460
460
  background-color: #e8e8e8;
461
461
  }
462
- .is-self .file-link[data-v-1459079f] {
462
+ .is-self .file-link[data-v-6f480f31] {
463
463
  color: white;
464
464
  background-color: rgba(255, 255, 255, 0.2);
465
465
  }
466
- .is-self .file-link[data-v-1459079f]:hover {
466
+ .is-self .file-link[data-v-6f480f31]:hover {
467
467
  background-color: rgba(255, 255, 255, 0.3);
468
468
  }
469
469
 
470
470
  /* 系统通知 */
471
- .message-system[data-v-1459079f] {
471
+ .message-system[data-v-6f480f31] {
472
472
  margin-bottom: 6px;
473
473
  padding: 8px 12px;
474
474
  border-left: 3px solid #0e77cc;
@@ -480,14 +480,14 @@ to {
480
480
 
481
481
  background-color: #f5f5f5;
482
482
  }
483
- .is-self .message-system[data-v-1459079f] {
483
+ .is-self .message-system[data-v-6f480f31] {
484
484
  border-left-color: white;
485
485
  color: rgba(255, 255, 255, 0.9);
486
486
  background-color: rgba(255, 255, 255, 0.2);
487
487
  }
488
488
 
489
489
  /* 卡片消息 */
490
- .message-card[data-v-1459079f] {
490
+ .message-card[data-v-6f480f31] {
491
491
  margin-bottom: 6px;
492
492
  padding: 12px;
493
493
  border: 1px solid #bae6fd;
@@ -495,18 +495,32 @@ to {
495
495
 
496
496
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
497
497
  }
498
- .is-self .message-card[data-v-1459079f] {
498
+ .is-self .message-card[data-v-6f480f31] {
499
499
  border-color: rgba(255, 255, 255, 0.3);
500
500
  background: rgba(255, 255, 255, 0.2);
501
501
  }
502
- .message-time[data-v-1459079f] {
502
+ .message-time[data-v-6f480f31] {
503
503
  font-size: 11px;
504
504
  color: #8c8c8c;
505
505
  }
506
- .message-item.is-self .message-time[data-v-1459079f] {
506
+ .message-item.is-self .message-time[data-v-6f480f31] {
507
507
  color: rgba(255, 255, 255, 0.75);
508
508
  }
509
- .input-area[data-v-1459079f] {
509
+
510
+ /* 视频消息 */
511
+ .message-video[data-v-6f480f31] {
512
+ overflow: hidden;
513
+ margin-bottom: 6px;
514
+ border-radius: 12px;
515
+ background: #000;
516
+ }
517
+ .message-video video[data-v-6f480f31] {
518
+ display: block;
519
+ width: 100%;
520
+ max-width: 280px;
521
+ max-height: 400px;
522
+ }
523
+ .input-area[data-v-6f480f31] {
510
524
  display: flex;
511
525
  flex-direction: column;
512
526
  gap: 12px;
@@ -519,12 +533,13 @@ to {
519
533
  }
520
534
 
521
535
  /* 工具栏 */
522
- .input-toolbar[data-v-1459079f] {
536
+ .input-toolbar[data-v-6f480f31] {
523
537
  display: flex;
538
+ flex-wrap: wrap;
524
539
  gap: 8px;
525
540
  padding: 4px 0;
526
541
  }
527
- .tool-btn[data-v-1459079f] {
542
+ .tool-btn[data-v-6f480f31] {
528
543
  cursor: pointer;
529
544
 
530
545
  display: inline-flex;
@@ -544,20 +559,20 @@ to {
544
559
 
545
560
  transition: all 0.2s;
546
561
  }
547
- .tool-btn[data-v-1459079f]:hover:not(:disabled) {
562
+ .tool-btn[data-v-6f480f31]:hover:not(:disabled) {
548
563
  border-color: #0e77cc;
549
564
  color: #0e77cc;
550
565
  background: #f0f9ff;
551
566
  }
552
- .tool-btn[data-v-1459079f]:disabled {
567
+ .tool-btn[data-v-6f480f31]:disabled {
553
568
  cursor: not-allowed;
554
569
  opacity: 0.5;
555
570
  background: #f5f5f5;
556
571
  }
557
- .tool-btn-text[data-v-1459079f] {
572
+ .tool-btn-text[data-v-6f480f31] {
558
573
  font-size: 13px;
559
574
  }
560
- .tool-btn-icon[data-v-1459079f] {
575
+ .tool-btn-icon[data-v-6f480f31] {
561
576
  display: inline-flex;
562
577
  align-items: center;
563
578
  justify-content: center;
@@ -565,28 +580,31 @@ to {
565
580
  width: 18px;
566
581
  height: 18px;
567
582
  }
568
- .tool-btn-svg[data-v-1459079f] {
583
+ .tool-btn-svg[data-v-6f480f31] {
569
584
  width: 18px;
570
585
  height: 18px;
571
586
  }
572
- .image-btn[data-v-1459079f] {
587
+ .image-btn[data-v-6f480f31] {
588
+ border-color: #d9d9d9;
589
+ }
590
+ .video-btn[data-v-6f480f31] {
573
591
  border-color: #d9d9d9;
574
592
  }
575
- .emoji-container[data-v-1459079f] {
593
+ .emoji-container[data-v-6f480f31] {
576
594
  position: relative;
577
595
  }
578
- .quick-reply-container[data-v-1459079f] {
596
+ .quick-reply-container[data-v-6f480f31] {
579
597
  position: relative;
580
598
  }
581
- .quick-reply-trigger[data-v-1459079f] {
599
+ .quick-reply-trigger[data-v-6f480f31] {
582
600
  border-color: #d9d9d9;
583
601
  }
584
- .quick-reply-trigger.active[data-v-1459079f] {
602
+ .quick-reply-trigger.active[data-v-6f480f31] {
585
603
  border-color: #0e77cc;
586
604
  color: #0e77cc;
587
605
  background: #f0f9ff;
588
606
  }
589
- .quick-reply-panel[data-v-1459079f] {
607
+ .quick-reply-panel[data-v-6f480f31] {
590
608
  position: absolute;
591
609
  z-index: 1001;
592
610
  bottom: calc(100% + 8px);
@@ -602,11 +620,11 @@ to {
602
620
  background: #fff;
603
621
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
604
622
  }
605
- .quick-reply-search[data-v-1459079f] {
623
+ .quick-reply-search[data-v-6f480f31] {
606
624
  padding: 10px;
607
625
  border-bottom: 1px solid #f0f0f0;
608
626
  }
609
- .quick-reply-search input[data-v-1459079f] {
627
+ .quick-reply-search input[data-v-6f480f31] {
610
628
  width: 100%;
611
629
  height: 34px;
612
630
  padding: 0 10px;
@@ -619,16 +637,16 @@ to {
619
637
  background: #fff;
620
638
  outline: none;
621
639
  }
622
- .quick-reply-search input[data-v-1459079f]:focus {
640
+ .quick-reply-search input[data-v-6f480f31]:focus {
623
641
  border-color: #0e77cc;
624
642
  box-shadow: 0 0 0 2px rgba(14, 119, 204, 0.08);
625
643
  }
626
- .quick-reply-list[data-v-1459079f] {
644
+ .quick-reply-list[data-v-6f480f31] {
627
645
  overflow-y: auto;
628
646
  max-height: 220px;
629
647
  padding: 8px;
630
648
  }
631
- .quick-reply-item[data-v-1459079f] {
649
+ .quick-reply-item[data-v-6f480f31] {
632
650
  cursor: pointer;
633
651
 
634
652
  width: 100%;
@@ -644,21 +662,21 @@ to {
644
662
 
645
663
  background: #f7f8fa;
646
664
  }
647
- .quick-reply-item[data-v-1459079f]:last-child {
665
+ .quick-reply-item[data-v-6f480f31]:last-child {
648
666
  margin-bottom: 0;
649
667
  }
650
- .quick-reply-item[data-v-1459079f]:hover {
668
+ .quick-reply-item[data-v-6f480f31]:hover {
651
669
  border-color: #b6dcfa;
652
670
  color: #0e77cc;
653
671
  background: #f0f9ff;
654
672
  }
655
- .quick-reply-empty[data-v-1459079f] {
673
+ .quick-reply-empty[data-v-6f480f31] {
656
674
  padding: 18px 10px;
657
675
  font-size: 12px;
658
676
  color: #bfbfbf;
659
677
  text-align: center;
660
678
  }
661
- .emoji-picker-wrapper[data-v-1459079f] {
679
+ .emoji-picker-wrapper[data-v-6f480f31] {
662
680
  position: absolute;
663
681
  z-index: 1000;
664
682
  bottom: 100%;
@@ -671,7 +689,7 @@ to {
671
689
 
672
690
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
673
691
  }
674
- .input-area textarea[data-v-1459079f] {
692
+ .input-area textarea[data-v-6f480f31] {
675
693
  resize: none;
676
694
 
677
695
  width: 100%;
@@ -688,19 +706,19 @@ to {
688
706
 
689
707
  transition: all 0.2s;
690
708
  }
691
- .input-area textarea[data-v-1459079f]:focus {
709
+ .input-area textarea[data-v-6f480f31]:focus {
692
710
  border-color: #0e77cc;
693
711
  background: white;
694
712
  box-shadow: 0 0 0 3px rgba(14, 119, 204, 0.08);
695
713
  }
696
- .input-area textarea[data-v-1459079f]::placeholder {
714
+ .input-area textarea[data-v-6f480f31]::placeholder {
697
715
  color: #bfbfbf;
698
716
  }
699
- .input-actions[data-v-1459079f] {
717
+ .input-actions[data-v-6f480f31] {
700
718
  display: flex;
701
719
  justify-content: flex-end;
702
720
  }
703
- .send-btn[data-v-1459079f] {
721
+ .send-btn[data-v-6f480f31] {
704
722
  cursor: pointer;
705
723
 
706
724
  padding: 10px 28px;
@@ -717,11 +735,11 @@ to {
717
735
 
718
736
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
719
737
  }
720
- .send-btn[data-v-1459079f]:hover {
738
+ .send-btn[data-v-6f480f31]:hover {
721
739
  transform: translateY(-1px);
722
740
  box-shadow: 0 4px 12px rgba(14, 119, 204, 0.35);
723
741
  }
724
- .send-btn[data-v-1459079f]:active {
742
+ .send-btn[data-v-6f480f31]:active {
725
743
  transform: translateY(0);
726
744
  box-shadow: 0 2px 6px rgba(14, 119, 204, 0.25);
727
745
  }