cnhis-design-vue 3.2.17-release.0 → 3.2.18-beta.5
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.
- package/es/components/ai-chat/index.d.ts +123 -17
- package/es/components/ai-chat/src/Index.vue.d.ts +123 -17
- package/es/components/ai-chat/src/Index.vue2.js +1 -1
- package/es/components/ai-chat/src/api/index.d.ts +5 -0
- package/es/components/ai-chat/src/api/index.js +1 -0
- package/es/components/ai-chat/src/components/ChatAudio.vue.d.ts +40 -0
- package/es/components/ai-chat/src/components/ChatAudio.vue.js +1 -0
- package/es/components/ai-chat/src/components/ChatAudio.vue2.js +1 -0
- package/es/components/ai-chat/src/components/ChatCard.js +1 -1
- package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +45 -2
- package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/ai-chat/src/components/ChatMain.d.ts +1 -7
- package/es/components/ai-chat/src/components/ChatMain.js +1 -1
- package/es/components/ai-chat/src/components/ChatMainInner.d.ts +2 -0
- package/es/components/ai-chat/src/components/ChatMainInner.js +1 -0
- package/es/components/ai-chat/src/components/ChatRight.vue.d.ts +55 -0
- package/es/components/ai-chat/src/components/ChatRight.vue.js +1 -0
- package/es/components/ai-chat/src/components/ChatRight.vue2.js +1 -0
- package/es/components/ai-chat/src/components/card/JsonCard.d.ts +25 -0
- package/es/components/ai-chat/src/components/card/JsonCard.js +1 -0
- package/es/components/ai-chat/src/components/card/SelectIcon.d.ts +14 -0
- package/es/components/ai-chat/src/components/card/SelectIcon.js +1 -0
- package/es/components/ai-chat/src/hooks/useProgram.d.ts +6 -0
- package/es/components/ai-chat/src/hooks/useProgram.js +1 -0
- package/es/components/ai-chat/src/hooks/useWebsocket.d.ts +2 -0
- package/es/components/ai-chat/src/hooks/useWebsocket.js +1 -0
- package/es/components/ai-chat/style/index.css +1 -1
- package/es/components/audio-sdk/src/audioSDK.d.ts +5 -3
- package/es/components/audio-sdk/src/audioSDK.js +1 -1
- package/es/components/audio-sdk/src/utils/recordingModal.d.ts +2 -1
- package/es/components/audio-sdk/src/utils/recordingModal.js +1 -1
- package/es/components/base-search/src/index.vue2.js +1 -1
- package/es/components/button-print/index.d.ts +1 -0
- package/es/components/button-print/src/ButtonPrint.vue.d.ts +1 -0
- package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +1 -0
- package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
- package/es/components/card-reader-sdk/src/cardReaderSDK.d.ts +4 -1
- package/es/components/card-reader-sdk/src/cardReaderSDK.js +1 -1
- package/es/components/card-reader-sdk/src/types/index.d.ts +1 -0
- package/es/components/card-reader-sdk-cn/index.d.ts +88 -10
- package/es/components/card-reader-sdk-cn/index.js +1 -1
- package/es/components/card-reader-sdk-cn/src/henan/index.d.ts +40 -10
- package/es/components/card-reader-sdk-cn/src/henan/index.js +1 -1
- package/es/components/editor/src/Editor.js +1 -1
- package/es/components/editor/style/index.css +1 -0
- package/es/components/field-editor/index.d.ts +1011 -0
- package/es/components/field-editor/index.js +1 -0
- package/es/components/field-editor/src/FieldEditor.vue.d.ts +1012 -0
- package/es/components/field-editor/src/FieldEditor.vue.js +1 -0
- package/es/components/field-editor/src/FieldEditor.vue2.js +1 -0
- package/es/components/field-editor/src/fields.d.ts +19 -0
- package/es/components/field-editor/src/fields.js +1 -0
- package/es/components/field-editor/src/types.d.ts +25 -0
- package/es/components/field-editor/src/types.js +1 -0
- package/es/components/field-set/index.d.ts +3 -2
- package/es/components/field-set/src/FieldColor.vue.d.ts +2 -0
- package/es/components/field-set/src/FieldFilter.vue.d.ts +2 -0
- package/es/components/field-set/src/FieldSet.vue.d.ts +2 -0
- package/es/components/field-set/src/FieldSet.vue2.js +1 -1
- package/es/components/field-set/src/Index.vue.d.ts +3 -2
- package/es/components/field-set/src/Index.vue2.js +1 -1
- package/es/components/field-set/src/components/table-row.vue2.js +1 -1
- package/es/components/field-set/src/types/index.d.ts +1 -0
- package/es/components/field-set/src/utils/index.js +1 -1
- package/es/components/field-set/style/index.css +1 -1
- package/es/components/form-render/src/components/renderer/formItem.js +1 -1
- package/es/components/iho-chat/index.d.ts +155 -3
- package/es/components/iho-chat/src/Index.vue.d.ts +155 -3
- package/es/components/iho-chat/src/api/index.d.ts +1 -0
- package/es/components/iho-chat/src/api/index.js +1 -1
- package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +9 -0
- package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +11 -1
- package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +22 -0
- package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +32 -1
- package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +77 -3
- package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +10 -0
- package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
- package/es/components/iho-chat/src/components/MessageEvent.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/MessageMergeForward.vue.d.ts +59 -0
- package/es/components/iho-chat/src/components/MessageMergeForward.vue.js +1 -0
- package/es/components/iho-chat/src/components/MessageMergeForward.vue2.js +1 -0
- package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +10 -0
- package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/SiderList.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/Video.vue.d.ts +1 -0
- package/es/components/iho-chat/src/hooks/useData.d.ts +4 -2
- package/es/components/iho-chat/src/hooks/useData.js +1 -1
- package/es/components/iho-chat/src/hooks/useVideo.d.ts +1 -0
- package/es/components/iho-chat/src/types/index.d.ts +1 -0
- package/es/components/iho-chat/src/utils/index.d.ts +1 -0
- package/es/components/iho-chat/src/utils/index.js +1 -1
- package/es/components/iho-chat/style/iconfont.ttf +0 -0
- package/es/components/iho-chat/style/index.css +1 -1
- package/es/components/index.css +1 -1
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +1 -1
- package/es/components/quick-search/src/index.vue2.js +1 -1
- package/es/components/select-label/style/index.css +1 -1
- package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
- package/es/components/select-person/src/index.vue2.js +1 -1
- package/es/components/select-person/style/index.css +1 -1
- package/es/components/shortcut-provider/src/types/index.d.ts +3 -0
- package/es/components/shortcut-setter/src/ShortcutSetter.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue.d.ts +4 -2
- package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue2.js +1 -1
- package/es/components/table-filter/src/components/render-widget/components/index.d.ts +4 -2
- package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +4 -2
- package/es/shared/assets/img/file-emr.png.js +1 -0
- package/es/shared/assets/img/file.png.js +1 -0
- package/es/shared/assets/img/use.png.js +1 -0
- package/es/shared/package.json.js +1 -1
- package/es/shared/utils/index.js +1 -1
- package/package.json +2 -2
@@ -1,7 +1,7 @@
|
|
1
1
|
import { CSSProperties } from 'vue';
|
2
2
|
import { ImageRenderToolbarProps } from 'naive-ui';
|
3
3
|
import { AnyObject } from '../../../../shared/types';
|
4
|
-
import { simplifyMessage, isAudioOrVideoMessage, getAVTime } from '../utils';
|
4
|
+
import { simplifyMessage, isAudioOrVideoMessage, getAVTime, getForwardTitle } from '../utils';
|
5
5
|
import { MESSAGE_TYPE } from '../constants';
|
6
6
|
declare const _default: import("vue").DefineComponent<{}, {
|
7
7
|
chatMainRef: import("vue").Ref<HTMLElement | undefined>;
|
@@ -32,12 +32,13 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
32
32
|
userId: string;
|
33
33
|
info: AnyObject | null;
|
34
34
|
};
|
35
|
+
isForward: boolean;
|
35
36
|
};
|
36
37
|
setMsgList: (list?: AnyObject[]) => void;
|
37
38
|
relayMessage: (param: {
|
38
39
|
checkedIds: string[];
|
39
40
|
remark: string;
|
40
|
-
|
41
|
+
contents: AnyObject[];
|
41
42
|
}) => Promise<void>;
|
42
43
|
setCurrentSessionItem: (item: AnyObject) => void;
|
43
44
|
setMessageLabel: (params: {
|
@@ -57,6 +58,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
57
58
|
x: number;
|
58
59
|
y: number;
|
59
60
|
};
|
61
|
+
showForwardDetail: import("vue").Ref<boolean>;
|
60
62
|
pageInfo: {
|
61
63
|
page: number;
|
62
64
|
hasMore: boolean;
|
@@ -89,6 +91,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
89
91
|
remark: string;
|
90
92
|
}) => void;
|
91
93
|
reEdit: (item: AnyObject) => void;
|
94
|
+
clickMergeMsg: (item: AnyObject) => void;
|
92
95
|
NAvatar: any;
|
93
96
|
NImageGroup: any;
|
94
97
|
NImage: any;
|
@@ -96,6 +99,11 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
96
99
|
NButtonGroup: any;
|
97
100
|
NButton: any;
|
98
101
|
NSpace: any;
|
102
|
+
NCheckbox: any;
|
103
|
+
isArray: {
|
104
|
+
(value?: any): value is any[];
|
105
|
+
<T>(value?: any): value is any[];
|
106
|
+
};
|
99
107
|
MessageTemplate: import("vue").DefineComponent<{
|
100
108
|
data: {
|
101
109
|
type: import("vue").PropType<AnyObject>;
|
@@ -213,6 +221,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
213
221
|
userId: string;
|
214
222
|
info: AnyObject | null;
|
215
223
|
};
|
224
|
+
isForward: boolean;
|
216
225
|
};
|
217
226
|
setUserDetail: (event: MouseEvent, userDetail: AnyObject) => void;
|
218
227
|
inviter: import("vue").Ref<any>;
|
@@ -227,6 +236,61 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
227
236
|
required: true;
|
228
237
|
};
|
229
238
|
}>>, {}>;
|
239
|
+
MessageMergeForward: import("vue").DefineComponent<{
|
240
|
+
id: {
|
241
|
+
type: StringConstructor;
|
242
|
+
};
|
243
|
+
}, {
|
244
|
+
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
245
|
+
id: {
|
246
|
+
type: StringConstructor;
|
247
|
+
};
|
248
|
+
}>> & {}>>;
|
249
|
+
state: {
|
250
|
+
orgId: string | number;
|
251
|
+
currentSessionItem: AnyObject;
|
252
|
+
id: string;
|
253
|
+
userInfo: AnyObject;
|
254
|
+
msgList: AnyObject[];
|
255
|
+
currentMsg: AnyObject;
|
256
|
+
isAppendMsg: boolean;
|
257
|
+
sessionList: AnyObject[];
|
258
|
+
isChangeSession: boolean;
|
259
|
+
updateSessionItem: AnyObject;
|
260
|
+
isUpdateSession: boolean;
|
261
|
+
currentReferenceMsg: AnyObject | null;
|
262
|
+
currentReEditMsg: AnyObject | null;
|
263
|
+
showVideo: boolean;
|
264
|
+
currentAVMsg: AnyObject;
|
265
|
+
currentGroupUser: AnyObject[];
|
266
|
+
showMultipleVideo: boolean;
|
267
|
+
userDetail: {
|
268
|
+
show: boolean;
|
269
|
+
position: {
|
270
|
+
x: number;
|
271
|
+
y: number;
|
272
|
+
};
|
273
|
+
userId: string;
|
274
|
+
info: AnyObject | null;
|
275
|
+
};
|
276
|
+
isForward: boolean;
|
277
|
+
};
|
278
|
+
msgItem: import("vue").ComputedRef<AnyObject>;
|
279
|
+
msgList: import("vue").ComputedRef<any>;
|
280
|
+
NModal: any;
|
281
|
+
NAvatar: any;
|
282
|
+
formatTime: typeof import("../utils").formatTime;
|
283
|
+
getForwardTitle: typeof getForwardTitle;
|
284
|
+
MESSAGE_TYPE: typeof MESSAGE_TYPE;
|
285
|
+
emojis: {
|
286
|
+
default: string[][];
|
287
|
+
findEmoji(name: string): any;
|
288
|
+
};
|
289
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
290
|
+
id: {
|
291
|
+
type: StringConstructor;
|
292
|
+
};
|
293
|
+
}>>, {}>;
|
230
294
|
SelectLabel: import("vue").DefineComponent<{
|
231
295
|
id: {
|
232
296
|
type: StringConstructor;
|
@@ -351,6 +415,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
351
415
|
key: string;
|
352
416
|
label: string;
|
353
417
|
}[];
|
418
|
+
orgList: AnyObject[];
|
354
419
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
355
420
|
title: {
|
356
421
|
type: StringConstructor;
|
@@ -406,6 +471,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
406
471
|
userId: string;
|
407
472
|
info: AnyObject | null;
|
408
473
|
};
|
474
|
+
isForward: boolean;
|
409
475
|
};
|
410
476
|
setCurrentSessionItem: (item: AnyObject) => void;
|
411
477
|
listRef: import("vue").Ref<any>;
|
@@ -442,10 +508,16 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
442
508
|
allChecked: import("vue").WritableComputedRef<boolean>;
|
443
509
|
checkedSourceIds: import("vue").WritableComputedRef<any[]>;
|
444
510
|
currentTabKey: import("vue").ComputedRef<any>;
|
511
|
+
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
512
|
+
getOrgList: () => Promise<void>;
|
513
|
+
setUserTotal: (tree: AnyObject[]) => void;
|
445
514
|
getDisabled: (id: string | number) => boolean;
|
446
515
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
447
516
|
toggleTab: (item: AnyObject) => void;
|
448
517
|
handleTabBack: () => void;
|
518
|
+
openTree: (option: AnyObject, _type?: string | undefined) => void;
|
519
|
+
getOrgDisabled: (option: AnyObject) => boolean;
|
520
|
+
getAllUser: (tree: AnyObject[]) => AnyObject[];
|
449
521
|
handlePositiveClick: () => Promise<void>;
|
450
522
|
closeTag: (id: string) => void;
|
451
523
|
NModal: any;
|
@@ -465,7 +537,8 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
465
537
|
PersonOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
466
538
|
PeopleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
467
539
|
ChevronBackOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
468
|
-
|
540
|
+
ChevronForwardOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
541
|
+
last: <T_1>(array: import("lodash").List<T_1> | null | undefined) => T_1 | undefined;
|
469
542
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
470
543
|
title: {
|
471
544
|
type: StringConstructor;
|
@@ -502,6 +575,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
502
575
|
simplifyMessage: typeof simplifyMessage;
|
503
576
|
isAudioOrVideoMessage: typeof isAudioOrVideoMessage;
|
504
577
|
getAVTime: typeof getAVTime;
|
578
|
+
getForwardTitle: typeof getForwardTitle;
|
505
579
|
MESSAGE_TYPE: typeof MESSAGE_TYPE;
|
506
580
|
ChatbubbleEllipsesOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
507
581
|
EllipsisHorizontal: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as n,reactive as t,computed as o,watch as s,openBlock as i,createElementBlock as a,normalizeClass as l,unref as r,normalizeStyle as c,createVNode as u,withCtx as d,Fragment as m,renderList as p,toDisplayString as y,createCommentVNode as g,createBlock as v,createElementVNode as f,createTextVNode as h,withModifiers as k,nextTick as T}from"vue";import{NImageGroup as M,NButton as w,NAvatar as C,NImage as _,NIcon as x,NSpace as I,NButtonGroup as L,NTooltip as b}from"naive-ui";import{format as j}from"date-fns";import{getHistoryRecordApi as E,readMessageApi as S}from"../api/index.js";import{useData as z}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as A}from"../constants/index.js";import{isAudioOrVideoMessage as D,simplifyMessage as H,getAVTime as R,downloadFile as N}from"../utils/index.js";import{first as B,last as O,toString as q}from"lodash-es";import"trtc-sdk-v5";import U from"./MessageTemplate.vue.js";import J from"./MessageEvent.vue.js";import P from"./SelectLabel.vue.js";import{emojis as W}from"../utils/emoji.js";import X from"./ContextMenu.js";import F from"./ChatAdd.vue.js";import"../../../../shared/utils/index.js";import"@vueuse/core";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{CallOutline as G,VideocamOutline as K,DocumentSharp as Y,HappyOutline as V,ChatbubbleEllipsesOutline as $,EllipsisHorizontal as Q,ArrowDownSharp as Z}from"@vicons/ionicons5";import{useScrollLoading as ee}from"../../../../shared/hooks/useScrollLoading.js";const ne={key:0,class:"tip-text"},te={key:1,class:"tip-text"},oe={key:2,class:"message-box"},se={key:0,class:"content-box"},ie={class:"name-box"},ae=["data-time"],le=["onContextmenu"],re={key:0,class:"reference-content"},ce=["innerHTML"],ue=["src"],de=["innerHTML"],me=["innerHTML"],pe={style:{"margin-left":"8px"}},ye={class:"size"},ge=["src"],ve={key:0};var fe=e({__name:"ChatMain",setup(e){const fe=n(),{state:he,setMsgList:ke,relayMessage:Te,setCurrentSessionItem:Me,setMessageLabel:we,setUserDetail:Ce,isGroupChat:_e}=z(),xe=n(),Ie=n(!1),Le=n({left:0,top:0}),be=n(),je=n(),Ee=n(!1),Se=t({x:0,y:0}),ze={page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")},Ae=o((()=>({"--c-tip-top":_e.value?"1px":"-20px","--c-tip-gap":_e.value?"10px":"0px"})));function De({nodes:e}){var n,t;const{_ctx:o}=null==(n=e.download)?void 0:n.children,s=o?null==(t=null==o?void 0:o.proxy)?void 0:t.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,u(b,null,{trigger:()=>u(x,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:Z,onClick:()=>s&&N(s,"img")},null),default:()=>{var e;return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载"}}),e.close]}async function He(){try{if(!ze.hasMore)return;ze.page++;const e=await E({sessionKey:he.currentSessionItem.sessionKey,page:ze.page,lastSendTime:ze.lastSendTime});if(!Array.isArray(e)||0===e.length)return ze.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const n=B(e).id;ze.lastSendTime=O(e).sendTime,ke(ze.page>1?[...he.msgList,...e]:e),1===ze.page&&he.currentSessionItem.unreadNum&&(await S({chatType:he.currentSessionItem.chatType,messageIdSet:[n],receiver:he.userInfo.id,sender:he.currentSessionItem.receiver}),Me({unreadNum:0}))}catch(e){console.log(e)}}async function Re(e,n){be.value=n,async function(e){var n,t,o,s,i,a;Ie.value=!0,await T();const{clientX:l,clientY:r}=e,{width:c=0,height:u=0,left:d=0,top:m=0}=(null==(n=fe.value)?void 0:n.getBoundingClientRect())||{},p=null!=(s=null==(o=null==(t=xe.value)?void 0:t.$el)?void 0:o.getBoundingClientRect().height)?s:220,y=null!=(a=null==(i=fe.value)?void 0:i.scrollTop)?a:0,g=5,v={};l<=d+c/2?v.left=l-d+g+"px":v.right=d+c-l-g+"px";r-m<p/2?v.top=y+g+"px":m+u-r<=p/2?v.bottom=Math.abs(y)+g+"px":v.top=y+r-m-p/2+"px";Le.value=v}(e)}function Ne(e){const{chatMessageType:n,messageTemplate:t}=e.content;return n!==A.TEMPLATE||!!t}function Be(e){const{chatMessageType:n}=e.content;return e.sender===he.userInfo.id&&Date.now()-new Date(e.sendTime).getTime()<864e5&&[A.TEXT,A.EMOJI].includes(n)}function Oe(e){const{chatMessageType:n,msg:t=""}=e.content;if(n===A.BLEND){const e=q(t).match(/<img[^>]*>/gi);return!e||!e.length}return n&&[A.TEXT,A.EMOJI].includes(n)}function qe(e){const{chatMessageType:n,msg:t=""}=e.content,o=q(t).match(/<img[^>]*>/gi);return n===A.BLEND&&o&&o.length}function Ue(e,n){var t,o;const{chatMessageType:s,messageTemplate:i}=e.content;if(s===A.TEMPLATE)return"system"===n?2==(null==(t=null==i?void 0:i.setting)?void 0:t.style.id):2!=(null==(o=null==i?void 0:i.setting)?void 0:o.style.id)}function Je(e){var n,t;const{chatMessageType:o,messageTemplate:s}=e;return o===A.TEMPLATE&&3==(null==(t=null==(n=null==s?void 0:s.setting)?void 0:n.style)?void 0:t.id)}function Pe(e,n){var t;const o=new Date(e.sendTime).getTime(),s=null==(t=he.msgList[n+1])?void 0:t.sendTime;if(s){return o-new Date(s).getTime()>3e5}return!0}function We(e){he.currentReferenceMsg=e,he.currentReferenceMsg.content.referenceContent=null,Object.assign(he.currentReferenceMsg,{chatType:he.currentSessionItem.chatType,receiver:he.currentSessionItem.receiver,receiverAvatar:he.currentSessionItem.avatar,receiverName:he.currentSessionItem.name})}function Xe(e,n){var t;"reply"!==e?"relay"===e&&(null==(t=je.value)||t.click()):We(n)}function Fe({checkedIds:e,remark:n}){const t=he.msgList.find((e=>e.id===be.value));Te({checkedIds:e,remark:n,content:t.content})}return ee(fe,(()=>{He()}),"top",(()=>{Ee.value=Ie.value=!1})),s((()=>he.id),(e=>{e&&(he.currentReferenceMsg=null,Object.assign(ze,{page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")}),He())}),{immediate:!0}),s((()=>he.isAppendMsg),(e=>{e&&(ke([he.currentMsg,...he.msgList]),async function(){var e;null==(e=fe.value)||e.scrollTo({top:0,behavior:"auto"})}(),he.isAppendMsg=!1)}),{immediate:!0}),(e,n)=>{var t;return i(),a("div",{class:l(["chat-main",{"home-bg":!r(he).id}]),ref_key:"chatMainRef",ref:fe,style:c(r(Ae))},[u(r(M),{"show-toolbar-tooltip":"","render-toolbar":De},{default:d((()=>[(i(!0),a(m,null,p(r(he).msgList,((e,n)=>{var t,o,s;return i(),a(m,{key:e.id},[Ne(e)?(i(),a("div",{key:0,class:l(["message-item",{"message-item--mine":e.sender==r(he).userInfo.id}])},[Pe(e,n)?(i(),a("p",ne,y(e.__sendTime),1)):g("v-if",!0),Ue(e,"system")||"WITHDRAWN"===e.status||(null==(t=e.content)?void 0:t.chatMessageType)===r(A).EVENT?(i(),a(m,{key:1},[Ue(e,"system")?(i(),v(U,{key:0,data:e},null,8,["data"])):g("v-if",!0),"WITHDRAWN"===e.status?(i(),a("p",te,[f("span",null,y(e.sender==r(he).userInfo.id?(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.67"))||"你":e.senderName)+((null==(s=window.getLanguageByCode)?void 0:s.call(window,"10010.1.68"))||"撤回了一条消息"),1),Be(e)?(i(),v(r(w),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){he.currentReEditMsg=e}(e)},{default:d((()=>{var e;return[h((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.69"))||"重新编辑")]})),_:2},1032,["onClick"])):g("v-if",!0)])):(i(),v(J,{key:2,data:e},null,8,["data"]))],64)):(i(),a("div",oe,[u(r(C),{round:"",size:38,src:e.senderAvatar,onClick:n=>r(Ce)(n,{show:!0,userId:e.sender})},null,8,["src","onClick"]),e.content?(i(),a("div",se,[f("div",ie,[f("span",{class:"name","data-time":e.__time},y(r(_e)?e.senderName:""),9,ae)]),f("div",{class:l(["content",{emoji:e.content.chatMessageType===r(A).EMOJI&&!e.content.referenceContent,template:e.content.chatMessageType===r(A).TEMPLATE,"template--3":Je(e.content),"audio-video":r(D)(e.content),file:e.content.chatMessageType===r(A).FILE}]),onContextmenu:k((n=>Re(n,e.id)),["prevent"])},[Oe(e)?(i(),a(m,{key:0},[e.content.referenceContent?(i(),a("div",re,[f("span",null,y(e.content.referenceContent.senderName)+":",1),f("pre",{innerHTML:r(H)(e.content.referenceContent.content)},null,8,ce)])):g("v-if",!0),e.content.chatMessageType===r(A).EMOJI?(i(),a("img",{key:1,class:l([e.content.referenceContent?"emoji--min":"emoji--big"]),src:r(W).findEmoji(e.__content)},null,10,ue)):(i(),a("pre",{key:2,innerHTML:e.__content},null,8,de))],64)):g("v-if",!0),qe(e)?(i(),a("pre",{key:1,innerHTML:e.__content},null,8,me)):g("v-if",!0),Ue(e,"template")?(i(),v(U,{key:2,data:e},null,8,["data"])):g("v-if",!0),e.content.chatMessageType===r(A).IMAGE?(i(),v(r(_),{key:3,width:"240",src:e.__content},null,8,["src"])):g("v-if",!0),r(D)(e.content)?(i(),a(m,{key:4},[u(r(x),{class:l({"is-audio":e.content.chatMessageType===r(A).AUDIO}),component:e.content.chatMessageType===r(A).AUDIO?r(G):r(K)},null,8,["class","component"]),f("span",pe,y(r(R)(e.__content)),1)],64)):g("v-if",!0),e.content.chatMessageType===r(A).FILE?(i(),v(r(I),{key:5,"wrap-item":!1},{default:d((()=>[u(r(x),{class:"icon-file",size:"40",component:r(Y)},null,8,["component"]),u(r(I),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:d((()=>[f("span",null,y(e.__content),1),f("span",ye,y(e.__size),1)])),_:2},1024)])),_:2},1024)):g("v-if",!0),!r(D)(e.content)&&e.content.labelList?(i(),v(r(I),{key:6,"wrap-item":!1},{default:d((()=>[(i(!0),a(m,null,p(e.content.labelList,((n,t)=>(i(),a("div",{key:t,class:"label-item"},["text"===n.type?(i(),v(r(w),{key:0,type:n.label.type,secondary:"",size:"tiny",onClick:()=>r(we)({type:n.type,labelItem:n.label,msgId:e.id})},{default:d((()=>[h(y(n.label.label),1)])),_:2},1032,["type","onClick"])):(i(),v(r(w),{key:1,quaternary:"",size:"tiny",onClick:()=>r(we)({type:n.type,labelItem:n.label,msgId:e.id})},{icon:d((()=>[f("img",{class:"emoji--min",src:r(W).findEmoji(n.label)},null,8,ge)])),_:2},1032,["onClick"])),(i(!0),a(m,null,p(n.userList,((e,t)=>(i(),a(m,{key:e.id},[u(r(w),{quaternary:"",type:"tertiary",size:"tiny",onClick:n=>r(Ce)(n,{show:!0,info:e})},{default:d((()=>[h(y(e.name),1)])),_:2},1032,["onClick"]),t<n.userList.length-1?(i(),a("span",ve,",")):g("v-if",!0)],64)))),128))])))),128))])),_:2},1024)):g("v-if",!0),u(r(L),{class:"quick-menu"},{default:d((()=>[r(D)(e.content)?g("v-if",!0):(i(),a(m,{key:0},[u(r(w),{quaternary:"",size:"tiny",onClick:n=>function(e,n){Ee.value=!0,Se.x=e.clientX,Se.y=e.clientY,be.value=n}(n,e.id)},{icon:d((()=>[u(r(x),{size:"17",component:r(V)},null,8,["component"])])),_:2},1032,["onClick"]),u(r(w),{quaternary:"",size:"tiny",onClick:()=>We(e)},{icon:d((()=>[u(r(x),{size:"17",component:r($)},null,8,["component"])])),_:2},1032,["onClick"])],64)),u(r(w),{quaternary:"",size:"tiny",onClick:n=>Re(n,e.id)},{icon:d((()=>[u(r(x),{size:"14",component:r(Q)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,le)])):g("v-if",!0)]))],2)):g("v-if",!0)],64)})),128))])),_:1}),u(r(X),{ref_key:"contextmenuRef",ref:xe,show:Ie.value,"onUpdate:show":n[0]||(n[0]=e=>Ie.value=e),position:Le.value,id:be.value,onSelect:Xe},null,8,["show","position","id"]),u(F,{title:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:Fe},{trigger:d((()=>{var e;return[f("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:je},(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发",512)]})),_:1}),be.value?(i(),v(P,{key:0,show:Ee.value,"onUpdate:show":n[1]||(n[1]=e=>Ee.value=e),x:Se.x,y:Se.y,id:be.value},null,8,["show","x","y","id"])):g("v-if",!0)],6)}}});export{fe as default};
|
1
|
+
import{defineComponent as e,ref as n,reactive as t,computed as s,watch as o,openBlock as i,createElementBlock as a,normalizeClass as l,unref as r,normalizeStyle as c,createVNode as u,withCtx as d,Fragment as m,renderList as p,toDisplayString as g,createCommentVNode as y,createBlock as v,createElementVNode as f,createTextVNode as h,withModifiers as k,nextTick as w}from"vue";import{NImageGroup as T,NButton as M,NCheckbox as C,NAvatar as _,NImage as x,NIcon as L,NSpace as I,NButtonGroup as b,NTooltip as j}from"naive-ui";import{format as E}from"date-fns";import{getHistoryRecordApi as S,readMessageApi as z}from"../api/index.js";import{useData as A}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as D}from"../constants/index.js";import{isAudioOrVideoMessage as R,simplifyMessage as H,getForwardTitle as N,getAVTime as O,downloadFile as B}from"../utils/index.js";import{first as F,last as U,isArray as q,toString as W}from"lodash-es";import"trtc-sdk-v5";import P from"./MessageTemplate.vue.js";import J from"./MessageEvent.vue.js";import X from"./MessageMergeForward.vue.js";import G from"./SelectLabel.vue.js";import{emojis as K}from"../utils/emoji.js";import Y from"./ContextMenu.js";import V from"./ChatAdd.vue.js";import"../../../../shared/utils/index.js";import"@vueuse/core";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{CallOutline as $,VideocamOutline as Q,DocumentSharp as Z,HappyOutline as ee,ChatbubbleEllipsesOutline as ne,EllipsisHorizontal as te,ArrowDownSharp as se}from"@vicons/ionicons5";import{useScrollLoading as oe}from"../../../../shared/hooks/useScrollLoading.js";const ie={key:0,class:"tip-text"},ae={key:1,class:"tip-text"},le=["onClick"],re={class:"message-box"},ce={key:0,class:"content-box"},ue={class:"name-box"},de=["data-time"],me=["onContextmenu"],pe={key:0,class:"reference-content"},ge=["innerHTML"],ye=["src"],ve=["innerHTML"],fe=["innerHTML"],he=["onClick"],ke={class:"merge-msg-contents"},we={style:{"margin-left":"8px"}},Te={class:"size"},Me=["src"],Ce={key:0};var _e=e({__name:"ChatMain",setup(e){const _e=n(),{state:xe,setMsgList:Le,relayMessage:Ie,setCurrentSessionItem:be,setMessageLabel:je,setUserDetail:Ee,isGroupChat:Se}=A(),ze=n(),Ae=n(!1),De=n({left:0,top:0}),Re=n(),He=n(),Ne=n(!1),Oe=t({x:0,y:0}),Be=n(!1),Fe={page:0,hasMore:!0,lastSendTime:E(new Date,"yyyy-MM-dd HH:mm:ss")},Ue=s((()=>({"--c-tip-top":Se.value?"1px":"-20px","--c-tip-gap":Se.value?"10px":"0px"})));function qe({nodes:e}){var n,t;const{_ctx:s}=null==(n=e.download)?void 0:n.children,o=s?null==(t=null==s?void 0:s.proxy)?void 0:t.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,u(j,null,{trigger:()=>u(L,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:se,onClick:()=>o&&B(o,"img")},null),default:()=>{var e;return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载"}}),e.close]}async function We(){try{if(!Fe.hasMore)return;Fe.page++;const e=await S({sessionKey:xe.currentSessionItem.sessionKey,page:Fe.page,lastSendTime:Fe.lastSendTime});if(!Array.isArray(e)||0===e.length)return Fe.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const n=F(e).id;Fe.lastSendTime=U(e).sendTime,Le(Fe.page>1?[...xe.msgList,...e]:e),1===Fe.page&&xe.currentSessionItem.unreadNum&&(await z({chatType:xe.currentSessionItem.chatType,messageIdSet:[n],receiver:xe.userInfo.id,sender:xe.currentSessionItem.receiver}),be({unreadNum:0}))}catch(e){console.log(e)}}async function Pe(e,n){Re.value=n,async function(e){var n,t,s,o,i,a;Ae.value=!0,await w();const{clientX:l,clientY:r}=e,{width:c=0,height:u=0,left:d=0,top:m=0}=(null==(n=_e.value)?void 0:n.getBoundingClientRect())||{},p=null!=(o=null==(s=null==(t=ze.value)?void 0:t.$el)?void 0:s.getBoundingClientRect().height)?o:220,g=null!=(a=null==(i=_e.value)?void 0:i.scrollTop)?a:0,y=5,v={};l<=d+c/2?v.left=l-d+y+"px":v.right=d+c-l-y+"px";r-m<p/2?v.top=g+y+"px":m+u-r<=p/2?v.bottom=Math.abs(g)+y+"px":v.top=g+r-m-p/2+"px";De.value=v}(e)}function Je(e){const{chatMessageType:n,messageTemplate:t}=e.content;return n!==D.TEMPLATE||!!t}function Xe(e){const{chatMessageType:n}=e.content;return e.sender===xe.userInfo.id&&Date.now()-new Date(e.sendTime).getTime()<864e5&&[D.TEXT,D.EMOJI].includes(n)}function Ge(e){const{chatMessageType:n,msg:t=""}=e.content;if(n===D.BLEND){const e=W(t).match(/<img[^>]*>/gi);return!e||!e.length}return n&&[D.TEXT,D.EMOJI].includes(n)}function Ke(e){const{chatMessageType:n,msg:t=""}=e.content,s=W(t).match(/<img[^>]*>/gi);return n===D.BLEND&&s&&s.length}function Ye(e,n){var t,s;const{chatMessageType:o,messageTemplate:i}=e.content;if(o===D.TEMPLATE)return"system"===n?2==(null==(t=null==i?void 0:i.setting)?void 0:t.style.id):2!=(null==(s=null==i?void 0:i.setting)?void 0:s.style.id)}function Ve(e){var n,t;const{chatMessageType:s,messageTemplate:o}=e;return s===D.TEMPLATE&&3==(null==(t=null==(n=null==o?void 0:o.setting)?void 0:n.style)?void 0:t.id)}function $e(e,n){var t;const s=new Date(e.sendTime).getTime(),o=null==(t=xe.msgList[n+1])?void 0:t.sendTime;if(o){return s-new Date(o).getTime()>3e5}return!0}function Qe(e){xe.currentReferenceMsg=e,xe.currentReferenceMsg.content.referenceContent=null,Object.assign(xe.currentReferenceMsg,{chatType:xe.currentSessionItem.chatType,receiver:xe.currentSessionItem.receiver,receiverAvatar:xe.currentSessionItem.avatar,receiverName:xe.currentSessionItem.name})}function Ze(e,n){var t;"reply"!==e?"relay"===e&&(null==(t=He.value)||t.click()):Qe(n)}function en({checkedIds:e,remark:n}){const t=xe.msgList.find((e=>e.id===Re.value));Ie({checkedIds:e,remark:n,contents:[t.content]})}return oe(_e,(()=>{We()}),"top",(()=>{Ne.value=Ae.value=!1})),o((()=>xe.id),(e=>{e&&(xe.currentReferenceMsg=null,Object.assign(Fe,{page:0,hasMore:!0,lastSendTime:E(new Date,"yyyy-MM-dd HH:mm:ss")}),We())}),{immediate:!0}),o((()=>xe.isAppendMsg),(e=>{e&&(Le([xe.currentMsg,...xe.msgList]),async function(){var e;null==(e=_e.value)||e.scrollTo({top:0,behavior:"auto"})}(),xe.isAppendMsg=!1)}),{immediate:!0}),(e,n)=>{var t;return i(),a("div",{class:l(["chat-main",{"home-bg":!r(xe).id,"chat-main--check":r(xe).isForward}]),ref_key:"chatMainRef",ref:_e,style:c(r(Ue))},[u(r(T),{"show-toolbar-tooltip":"","render-toolbar":qe},{default:d((()=>[(i(!0),a(m,null,p(r(xe).msgList,((e,t)=>{var s,o,c;return i(),a(m,{key:e.id},[Je(e)?(i(),a("div",{key:0,class:l(["message-item",{"message-item--mine":e.sender==r(xe).userInfo.id}])},[$e(e,t)?(i(),a("p",ie,g(e.__sendTime),1)):y("v-if",!0),Ye(e,"system")||"WITHDRAWN"===e.status||(null==(s=e.content)?void 0:s.chatMessageType)===r(D).EVENT?(i(),a(m,{key:1},[Ye(e,"system")?(i(),v(P,{key:0,data:e},null,8,["data"])):y("v-if",!0),"WITHDRAWN"===e.status?(i(),a("p",ae,[f("span",null,g(e.sender==r(xe).userInfo.id?(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.67"))||"你":e.senderName)+((null==(c=window.getLanguageByCode)?void 0:c.call(window,"10010.1.68"))||"撤回了一条消息"),1),Xe(e)?(i(),v(r(M),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){xe.currentReEditMsg=e}(e)},{default:d((()=>{var e;return[h((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.69"))||"重新编辑")]})),_:2},1032,["onClick"])):y("v-if",!0)])):(i(),v(J,{key:2,data:e},null,8,["data"]))],64)):(i(),a("div",{key:2,class:l(["message-wrapper",{checked:e.checked}]),onClick:()=>e.checked=!e.checked},[u(r(C),{checked:e.checked,"onUpdate:checked":n=>e.checked=n,size:"large"},null,8,["checked","onUpdate:checked"]),f("div",re,[u(r(_),{round:"",size:38,src:e.senderAvatar,onClick:k((n=>r(Ee)(n,{show:!0,userId:e.sender})),["stop"])},null,8,["src","onClick"]),e.content?(i(),a("div",ce,[f("div",ue,[f("span",{class:"name","data-time":e.__time},g(r(Se)?e.senderName:""),9,de)]),f("div",{class:l(["content",{emoji:e.content.chatMessageType===r(D).EMOJI&&!e.content.referenceContent,template:e.content.chatMessageType===r(D).TEMPLATE,"template--3":Ve(e.content),"audio-video":r(R)(e.content),file:e.content.chatMessageType===r(D).FILE,"merge-msg":e.content.chatMessageType===r(D).FORWARD&&r(q)(e.content.forwardMessageList)}]),onContextmenu:k((n=>!r(xe).isForward&&Pe(n,e.id)),["prevent"])},[Ge(e)?(i(),a(m,{key:0},[e.content.referenceContent?(i(),a("div",pe,[f("span",null,g(e.content.referenceContent.senderName)+":",1),f("pre",{innerHTML:r(H)(e.content.referenceContent.content)},null,8,ge)])):y("v-if",!0),e.content.chatMessageType===r(D).EMOJI?(i(),a("img",{key:1,class:l([e.content.referenceContent?"emoji--min":"emoji--big"]),src:r(K).findEmoji(e.__content)},null,10,ye)):(i(),a("pre",{key:2,innerHTML:e.__content},null,8,ve))],64)):y("v-if",!0),Ke(e)?(i(),a("pre",{key:1,innerHTML:e.__content},null,8,fe)):y("v-if",!0),Ye(e,"template")?(i(),v(P,{key:2,data:e},null,8,["data"])):y("v-if",!0),e.content.chatMessageType===r(D).FORWARD&&r(q)(e.content.forwardMessageList)?(i(),a("div",{key:3,class:"merge-msg-box",onClick:()=>function(e){xe.isForward||(Re.value=e.id,Be.value=!0)}(e)},[f("h4",null,g(r(N)(e.content)),1),f("div",ke,[(i(!0),a(m,null,p(e.content.forwardMessageList,(e=>(i(),a("div",{key:e.id},g(e.senderName)+":"+g(r(H)(e.content)),1)))),128))])],8,he)):y("v-if",!0),e.content.chatMessageType===r(D).IMAGE?(i(),v(r(x),{key:4,width:"240",src:e.__content,onClick:n[0]||(n[0]=e=>e.stopPropagation())},null,8,["src"])):y("v-if",!0),r(R)(e.content)?(i(),a(m,{key:5},[u(r(L),{class:l({"is-audio":e.content.chatMessageType===r(D).AUDIO}),component:e.content.chatMessageType===r(D).AUDIO?r($):r(Q)},null,8,["class","component"]),f("span",we,g(r(O)(e.__content)),1)],64)):y("v-if",!0),e.content.chatMessageType===r(D).FILE?(i(),v(r(I),{key:6,"wrap-item":!1},{default:d((()=>[u(r(L),{class:"icon-file",size:"40",component:r(Z)},null,8,["component"]),u(r(I),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:d((()=>[f("span",null,g(e.__content),1),f("span",Te,g(e.__size),1)])),_:2},1024)])),_:2},1024)):y("v-if",!0),!r(R)(e.content)&&e.content.labelList?(i(),v(r(I),{key:7,"wrap-item":!1},{default:d((()=>[(i(!0),a(m,null,p(e.content.labelList,((n,t)=>(i(),a("div",{key:t,class:"label-item"},["text"===n.type?(i(),v(r(M),{key:0,type:n.label.type,secondary:"",size:"tiny",onClick:()=>r(je)({type:n.type,labelItem:n.label,msgId:e.id})},{default:d((()=>[h(g(n.label.label),1)])),_:2},1032,["type","onClick"])):(i(),v(r(M),{key:1,quaternary:"",size:"tiny",onClick:()=>r(je)({type:n.type,labelItem:n.label,msgId:e.id})},{icon:d((()=>[f("img",{class:"emoji--min",src:r(K).findEmoji(n.label)},null,8,Me)])),_:2},1032,["onClick"])),(i(!0),a(m,null,p(n.userList,((e,t)=>(i(),a(m,{key:e.id},[u(r(M),{quaternary:"",type:"tertiary",size:"tiny",onClick:n=>r(Ee)(n,{show:!0,info:e})},{default:d((()=>[h(g(e.name),1)])),_:2},1032,["onClick"]),t<n.userList.length-1?(i(),a("span",Ce,",")):y("v-if",!0)],64)))),128))])))),128))])),_:2},1024)):y("v-if",!0),u(r(b),{class:"quick-menu"},{default:d((()=>[r(R)(e.content)?y("v-if",!0):(i(),a(m,{key:0},[u(r(M),{quaternary:"",size:"tiny",onClick:n=>function(e,n){Ne.value=!0,Oe.x=e.clientX,Oe.y=e.clientY,Re.value=n}(n,e.id)},{icon:d((()=>[u(r(L),{size:"17",component:r(ee)},null,8,["component"])])),_:2},1032,["onClick"]),u(r(M),{quaternary:"",size:"tiny",onClick:()=>Qe(e)},{icon:d((()=>[u(r(L),{size:"17",component:r(ne)},null,8,["component"])])),_:2},1032,["onClick"])],64)),u(r(M),{quaternary:"",size:"tiny",onClick:n=>Pe(n,e.id)},{icon:d((()=>[u(r(L),{size:"14",component:r(te)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,me)])):y("v-if",!0)])],10,le))],2)):y("v-if",!0)],64)})),128))])),_:1}),u(r(Y),{ref_key:"contextmenuRef",ref:ze,show:Ae.value,"onUpdate:show":n[1]||(n[1]=e=>Ae.value=e),position:De.value,id:Re.value,onSelect:Ze},null,8,["show","position","id"]),u(V,{title:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:en},{trigger:d((()=>{var e;return[f("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:He},(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发",512)]})),_:1}),Re.value?(i(),v(G,{key:0,show:Ne.value,"onUpdate:show":n[2]||(n[2]=e=>Ne.value=e),x:Oe.x,y:Oe.y,id:Re.value},null,8,["show","x","y","id"])):y("v-if",!0),u(X,{show:Be.value,"onUpdate:show":n[3]||(n[3]=e=>Be.value=e),id:Re.value},null,8,["show","id"])],6)}}});export{_e as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{createElementVNode as e,defineComponent as a,ref as l,watch as t,openBlock as r,createBlock as o,unref as n,withCtx as s,createVNode as i,toDisplayString as u,resolveDynamicComponent as d,createElementBlock as c,Fragment as v,renderList as m,withDirectives as p,createTextVNode as
|
1
|
+
import{createElementVNode as e,defineComponent as a,ref as l,watch as t,openBlock as r,createBlock as o,unref as n,withCtx as s,createVNode as i,toDisplayString as u,resolveDynamicComponent as d,createElementBlock as c,Fragment as v,renderList as m,withDirectives as p,createTextVNode as f,vShow as g}from"vue";import{NModal as h,NAvatar as y,NInputGroup as w,NInput as b,NSelect as _,NPopover as k,NTag as T,NIcon as j}from"naive-ui";import{SearchOutline as M}from"@vicons/ionicons5";import{useData as x}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as C}from"../constants/index.js";import{searchChatRecordApi as L}from"../api/index.js";import{transformMessage as I,formatTime as A}from"../utils/index.js";import{last as S}from"lodash-es";import"trtc-sdk-v5";import H from"../../../date-picker/index.js";import{useDebounceFn as B}from"@vueuse/core";import{format as D}from"date-fns";import"../../../../shared/utils/index.js";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as E}from"../../../../shared/hooks/useScrollLoading.js";import{emojis as U}from"../utils/emoji.js";var z,G;const R={class:"iho-chat-dialog__header"},N=e("span",{class:"left"},(null==(z=window.getLanguageByCode)?void 0:z.call(window,"10010.1.65"))||"聊天记录",-1),O={class:"center"},W={class:"iho-chat-dialog__content iho-chat-record-wrapper"},J={class:"chat-record-box"},P={class:"msg-box"},$={class:"name-and-time"},q={class:"content"},F=["src"],K=["src"],Q=["innerHTML"],V={key:1,class:"no-data"},X={class:"chat-record-box__filter"},Y=e("span",{class:"filter-title"},(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.72"))||"添加筛选条件",-1),Z={class:"filter-item"},ee=e("span",{class:"label"},"成员:",-1),ae={class:"filter-item"},le=e("span",{class:"label"},"日期:",-1),te={class:"time-target"},re={class:"time-target__item"},oe=e("span",null,"开始:",-1),ne={class:"tip"},se={class:"time-target__item"},ie=e("span",null,"结束:",-1),ue={class:"tip"};var de=a({__name:"ChatRecord",props:{visible:{type:Boolean}},setup(a){const z=a,G={color:"#fff",textColor:"#666"},{state:de}=x(),ce=l(),ve=l([]),me=l(),pe=l([]),fe=l(),ge=l(),he=B(be,500),ye={page:0,hasMore:!0,lastSendTime:D(new Date,"yyyy-MM-dd HH:mm:ss")};async function we(){var e;try{if(!ye.hasMore)return;ye.page++;const a=await L({orgId:de.orgId,keyword:me.value,endTime:Te(),startTime:fe.value?fe.value+" 00:00:00":"",lastSendTime:ye.lastSendTime,memberIdSet:pe.value,page:ye.page,recordType:"ALL",receiver:de.currentSessionItem.receiver,userId:de.userInfo.id});Array.isArray(a)&&0!==a.length&&Array.isArray(a[0].recordList)||(ye.hasMore=!1);let l=a||[];Array.isArray(a)&&a.length>0&&(l=a[0].recordList.filter((e=>"WITHDRAWN"!==e.status))),ye.lastSendTime=null==(e=S(l))?void 0:e.sendTime,l.forEach((e=>{var a,l,t;let r="";if(e.content.chatMessageType===C.TEMPLATE)r=null==(t=null==(l=null==(a=e.content)?void 0:a.messageTemplate)?void 0:l.setting)?void 0:t.title;else r=I(e.content);e.__content=r})),ve.value=ye.page>1?ve.value.concat(l):l}catch(e){}}function be(){Object.assign(ye,{page:0,hasMore:!0,lastSendTime:Te()||D(new Date,"yyyy-MM-dd HH:mm:ss")}),we()}function _e(e){return!!ge.value&&e>Date.parse(`${ge.value} 23:59:59`)}function ke(e){return!!fe.value&&e<Date.parse(fe.value)}function Te(){return ge.value?ge.value+" 23:59:59":""}function je(e){switch(e){case"member":pe.value=[];break;case"start":fe.value=null;break;case"end":ge.value=null}}function Me(e){return i(v,null,[i("div",{style:"display: flex;align-items: center"},[i(y,{src:e.avatar,round:!0,size:"small"},null),i("span",{style:"margin-left: 10px"},[e.name])])])}return E(ce,(()=>{we()})),t([()=>pe.value,()=>fe.value,()=>ge.value],(()=>{z.visible&&be()}),{deep:!0}),t((()=>z.visible),(e=>{e?be():(me.value="",ge.value=null,fe.value=null,pe.value=[],ve.value=[])})),(a,l)=>(r(),o(n(h),{preset:"dialog",title:"","show-icon":!1,"auto-focus":!1,class:"iho-chat-dialog"},{header:s((()=>[e("div",R,[N,e("div",O,[i(n(y),{round:"",size:30,src:n(de).currentSessionItem.avatar},null,8,["src"]),e("span",null,u(n(de).currentSessionItem.name),1)])])])),default:s((()=>[e("div",W,[i(n(w),null,{default:s((()=>{var e;return[(r(),o(d((()=>[i(j,{component:M,size:18,color:"#6666"},null),pe.value.length>0?i(T,{closable:!0,bordered:!1,color:G,onClose:()=>je("member")},{default:()=>{var e,a;return[f("成员:")," ",pe.value.length>1?pe.value.length+((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.40"))||"人"):null==(a=de.currentGroupUser.find((e=>e.id===pe.value[0])))?void 0:a.name]}}):null,fe.value?i(T,{closable:!0,bordered:!1,color:G,onClose:()=>je("start")},{default:()=>[f("起始时间: "),fe.value]}):null,ge.value?i(T,{closable:!0,bordered:!1,color:G,onClose:()=>je("end")},{default:()=>[f("结束时间: "),ge.value]}):null])))),i(n(b),{placeholder:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.36"))||"搜索",value:me.value,"onUpdate:value":l[0]||(l[0]=e=>me.value=e),valueModifiers:{trim:!0},onInput:n(he)},null,8,["value","onInput"])]})),_:1}),e("div",J,[e("div",{class:"chat-record-box__content",ref_key:"recordRef",ref:ce},[ve.value.length>0?(r(!0),c(v,{key:0},m(ve.value,(a=>(r(),c("div",{class:"content-item",key:a.id},[i(n(y),{round:"",size:38,src:a.senderAvatar},null,8,["src"]),e("div",P,[e("div",$,[e("span",null,u(a.senderName),1),e("span",null,u(n(A)(a.sendTime).recordTime),1)]),e("div",q,[a.content.chatMessageType===n(C).IMAGE?(r(),c("img",{key:0,src:a.__content},null,8,F)):a.content.chatMessageType===n(C).EMOJI?(r(),c("img",{key:1,class:"emoji",src:n(U).findEmoji(a.__content)},null,8,K)):(r(),c("p",{key:2,innerHTML:a.__content},null,8,Q))])])])))),128)):(r(),c("div",V,"没有找到相关记录"))],512),e("div",X,[Y,e("div",Z,[ee,i(n(_),{value:pe.value,"onUpdate:value":l[1]||(l[1]=e=>pe.value=e),multiple:"","max-tag-count":1,"render-label":Me,options:n(de).currentGroupUser,"value-field":"id"},null,8,["value","options"])]),e("div",ae,[le,e("div",te,[i(n(k),{trigger:"click","show-arrow":!1},{trigger:s((()=>{var a;return[e("div",re,[oe,p(i(n(T),{bordered:!1,color:G,closable:"",onClose:l[2]||(l[2]=()=>je("start"))},{default:s((()=>[f(u(fe.value),1)])),_:1},512),[[g,fe.value]]),p(e("span",ne,(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.76"))||"点击选择",512),[[g,!fe.value]])])]})),default:s((()=>[i(n(H),{"formatted-value":fe.value,"onUpdate:formatted-value":l[3]||(l[3]=e=>fe.value=e),type:"date",panel:"",clearable:"","is-date-disabled":_e},null,8,["formatted-value"])])),_:1}),i(n(k),{trigger:"click","show-arrow":!1},{trigger:s((()=>{var a;return[e("div",se,[ie,p(i(n(T),{bordered:!1,color:G,closable:"",onClose:l[4]||(l[4]=()=>je("end"))},{default:s((()=>[f(u(ge.value),1)])),_:1},512),[[g,ge.value]]),p(e("span",ue,(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.76"))||"点击选择",512),[[g,!ge.value]])])]})),default:s((()=>[i(n(H),{"formatted-value":ge.value,"onUpdate:formatted-value":l[5]||(l[5]=e=>ge.value=e),type:"date",panel:"",clearable:"","is-date-disabled":ke},null,8,["formatted-value"])])),_:1})])])])])])])),_:1}))}});export{de as default};
|
@@ -31,6 +31,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
31
31
|
userId: string;
|
32
32
|
info: AnyObject | null;
|
33
33
|
};
|
34
|
+
isForward: boolean;
|
34
35
|
};
|
35
36
|
setCurrentSessionItem: (item: AnyObject) => void;
|
36
37
|
setUserDetail: (event: MouseEvent, userDetail: AnyObject) => void;
|
@@ -95,6 +96,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
95
96
|
key: string;
|
96
97
|
label: string;
|
97
98
|
}[];
|
99
|
+
orgList: AnyObject[];
|
98
100
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
99
101
|
title: {
|
100
102
|
type: StringConstructor;
|
@@ -150,6 +152,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
150
152
|
userId: string;
|
151
153
|
info: AnyObject | null;
|
152
154
|
};
|
155
|
+
isForward: boolean;
|
153
156
|
};
|
154
157
|
setCurrentSessionItem: (item: AnyObject) => void;
|
155
158
|
listRef: import("vue").Ref<any>;
|
@@ -186,10 +189,16 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
186
189
|
allChecked: import("vue").WritableComputedRef<boolean>;
|
187
190
|
checkedSourceIds: import("vue").WritableComputedRef<any[]>;
|
188
191
|
currentTabKey: import("vue").ComputedRef<any>;
|
192
|
+
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
193
|
+
getOrgList: () => Promise<void>;
|
194
|
+
setUserTotal: (tree: AnyObject[]) => void;
|
189
195
|
getDisabled: (id: string | number) => boolean;
|
190
196
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
191
197
|
toggleTab: (item: AnyObject) => void;
|
192
198
|
handleTabBack: () => void;
|
199
|
+
openTree: (option: AnyObject, _type?: string | undefined) => void;
|
200
|
+
getOrgDisabled: (option: AnyObject) => boolean;
|
201
|
+
getAllUser: (tree: AnyObject[]) => AnyObject[];
|
193
202
|
handlePositiveClick: () => Promise<void>;
|
194
203
|
closeTag: (id: string) => void;
|
195
204
|
NModal: any;
|
@@ -209,6 +218,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
209
218
|
PersonOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
210
219
|
PeopleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
211
220
|
ChevronBackOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
221
|
+
ChevronForwardOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
212
222
|
last: <T>(array: import("lodash").List<T> | null | undefined) => T | undefined;
|
213
223
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
214
224
|
title: {
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as e,ref as t,computed as o,withDirectives as i,createVNode as s,vShow as n,isVNode as a}from"vue";import{NButtonGroup as l,NButton as r,NIcon as d}from"naive-ui";import{CopyOutline as c,OpenOutline as u,ChatbubbleEllipsesOutline as p,
|
1
|
+
import{defineComponent as e,ref as t,computed as o,withDirectives as i,createVNode as s,vShow as n,isVNode as a}from"vue";import{NButtonGroup as l,NButton as r,NIcon as d}from"naive-ui";import{CopyOutline as c,OpenOutline as u,ChatbubbleEllipsesOutline as p,ReorderFourOutline as m,ReturnDownBack as w,DownloadOutline as g}from"@vicons/ionicons5";import{onClickOutside as y}from"@vueuse/core";import{useData as f}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as v,MESSAGE_TYPE as h}from"../constants/index.js";import{recallMessageApi as T}from"../api/index.js";import{isAudioOrVideoMessage as b,$message as I,downloadFile as k}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import{emojis as E}from"../utils/emoji.js";import{format as j}from"date-fns";var M=e({name:"PopupMenu",inheritAttrs:!1,props:{type:{type:String,default:"message"},show:{type:Boolean,default:!1},position:{type:Object},id:{type:String}},emits:["update:show","select"],setup(e,{attrs:M,slots:L,emit:S}){var D,x,B,C,A,O;const{state:W,setCurrentSessionItem:$}=f(),H=[{icon:c,label:(null==(D=window.getLanguageByCode)?void 0:D.call(window,"10010.1.97"))||"复制",key:"copy"},{icon:u,label:(null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.45"))||"转发",key:"relay"},{icon:p,label:(null==(B=window.getLanguageByCode)?void 0:B.call(window,"10010.1.99"))||"回复",key:"reply"},{icon:m,label:(null==(C=window.getLanguageByCode)?void 0:C.call(window,"10010.1.100"))||"多选",key:"multiSelect"},{icon:w,label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.101"))||"撤回",key:"withdraw"},{icon:g,label:(null==(O=window.getLanguageByCode)?void 0:O.call(window,"10010.1.102"))||"下载",key:"download"}],J=[{label:"置顶会话",key:"topping"},{label:"移除会话",key:"remove"}],N=t(null),R=o((()=>("message"===e.type?W.msgList:W.sessionList).find((({id:t})=>t===e.id)))),F=o((()=>{var t;if(!e.id)return[];if(!(null==R?void 0:R.value))return[];if("session"===e.type){const e=[...J];return e[0].label=(null==(t=R.value)?void 0:t.topping)?"取消置顶":"置顶会话",R.value.status===v.ENDED&&e.pop(),e}const{content:o={},sendTime:i,sender:s}=R.value,{chatMessageType:n}=o,a=[];return(s!==W.userInfo.id||n===h.TEMPLATE||s===W.userInfo.id&&Date.now()-new Date(i).getTime()>2592e5)&&a.push("withdraw"),[h.TEXT,h.EMOJI,h.BLEND].includes(n)?a.push("download"):b(o)?a.push("copy","relay","reply","download"):n===h.FILE?a.push("copy"):[h.FORWARD,h.TEMPLATE].includes(n)&&a.push("copy","download"),a.length?H.filter((e=>!a.includes(e.key))):H}));return y(N,(e=>{S("update:show",!1)})),()=>{let t;return e.id&&F.value?i(s("div",{class:"contextmenu-wrapper",ref:N,style:e.position},[s(l,{vertical:!0},(o=t=F.value.map((t=>s(r,{key:t.key,onClick:()=>async function(t){S("update:show",!1);const{content:o={},sendTime:i,sender:s}=R.value||{},{chatMessageType:n}=o;switch(t){case"copy":if(!o.msg)return console.log("复制内容为空!");if(!navigator||!("clipboard"in navigator))return console.log("当前浏览器版本不支持复制!");try{if(n===h.TEXT)await navigator.clipboard.writeText(o.msg);else{let e;if([h.EMOJI,h.IMAGE].includes(n)){const t=n===h.EMOJI?E.findEmoji(o.msg):o.msg;e=`<img data-msg=${o.msg} data-type=${n} class=${n===h.EMOJI?"emoji--min":""} src=${t} />`}else e=o.msg;await navigator.clipboard.write([new window.ClipboardItem({"text/html":new Blob([e],{type:"text/html"})})])}}catch(e){console.log("复制失败!")}return;case"download":{let{fileUrl:e,msg:t}=o;return n===h.IMAGE&&(e=t,t=t.match(/\/([^\/?#]+)$/)[1]),void k(e,t)}case"withdraw":try{const t=W.msgList.findIndex((({id:t})=>t===e.id)),o=0===t;if(await T({chatType:W.currentSessionItem.chatType,messageIdSet:[e.id],receiver:W.currentSessionItem.receiver,sender:W.userInfo.id,isLastMessage:o}),W.msgList[t].status="WITHDRAWN",o){const e=j(new Date,"yyyy-MM-dd HH:mm:ss");$({lastMessageStatus:"WITHDRAWN",lastMessageSendTime:e,sortTime:e,updatedTime:e})}}catch(e){I.error("撤回失败")}return;case"multiSelect":W.isForward=!0}S("select",t,R.value)}(t.key),quaternary:!0},{default:()=>t.label,icon:()=>t.icon?s(d,{component:t.icon},null):null}))),"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!a(o)?t:{default:()=>[t]}))]),[[n,e.show]]):null;var o}}});export{M as default};
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { AnyObject } from '../../../../shared/types';
|
2
|
+
import { formatTime, getForwardTitle } from '../utils';
|
3
|
+
import { MESSAGE_TYPE } from '../constants';
|
4
|
+
declare const _default: import("vue").DefineComponent<{
|
5
|
+
id: {
|
6
|
+
type: StringConstructor;
|
7
|
+
};
|
8
|
+
}, {
|
9
|
+
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
10
|
+
id: {
|
11
|
+
type: StringConstructor;
|
12
|
+
};
|
13
|
+
}>> & {}>>;
|
14
|
+
state: {
|
15
|
+
orgId: string | number;
|
16
|
+
currentSessionItem: AnyObject;
|
17
|
+
id: string;
|
18
|
+
userInfo: AnyObject;
|
19
|
+
msgList: AnyObject[];
|
20
|
+
currentMsg: AnyObject;
|
21
|
+
isAppendMsg: boolean;
|
22
|
+
sessionList: AnyObject[];
|
23
|
+
isChangeSession: boolean;
|
24
|
+
updateSessionItem: AnyObject;
|
25
|
+
isUpdateSession: boolean;
|
26
|
+
currentReferenceMsg: AnyObject | null;
|
27
|
+
currentReEditMsg: AnyObject | null;
|
28
|
+
showVideo: boolean;
|
29
|
+
currentAVMsg: AnyObject;
|
30
|
+
currentGroupUser: AnyObject[];
|
31
|
+
showMultipleVideo: boolean;
|
32
|
+
userDetail: {
|
33
|
+
show: boolean;
|
34
|
+
position: {
|
35
|
+
x: number;
|
36
|
+
y: number;
|
37
|
+
};
|
38
|
+
userId: string;
|
39
|
+
info: AnyObject | null;
|
40
|
+
};
|
41
|
+
isForward: boolean;
|
42
|
+
};
|
43
|
+
msgItem: import("vue").ComputedRef<AnyObject>;
|
44
|
+
msgList: import("vue").ComputedRef<any>;
|
45
|
+
NModal: any;
|
46
|
+
NAvatar: any;
|
47
|
+
formatTime: typeof formatTime;
|
48
|
+
getForwardTitle: typeof getForwardTitle;
|
49
|
+
MESSAGE_TYPE: typeof MESSAGE_TYPE;
|
50
|
+
emojis: {
|
51
|
+
default: string[][];
|
52
|
+
findEmoji(name: string): any;
|
53
|
+
};
|
54
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
55
|
+
id: {
|
56
|
+
type: StringConstructor;
|
57
|
+
};
|
58
|
+
}>>, {}>;
|
59
|
+
export default _default;
|
@@ -0,0 +1 @@
|
|
1
|
+
import e from"./MessageMergeForward.vue2.js";import r from"../../../../_virtual/_plugin-vue_export-helper.js";var a=r(e,[["__file","MessageMergeForward.vue"]]);export{a as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{defineComponent as t,computed as e,openBlock as s,createBlock as o,unref as n,withCtx as i,createElementVNode as r,createElementBlock as a,Fragment as c,renderList as d,createVNode as m,toDisplayString as l}from"vue";import{NModal as p,NAvatar as u}from"naive-ui";import{useData as f}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as g}from"../constants/index.js";import"../api/index.js";import{transformMessage as h,getForwardTitle as _,formatTime as j}from"../utils/index.js";import{isArray as v}from"lodash-es";import"trtc-sdk-v5";import{emojis as M}from"../utils/emoji.js";const k={class:"iho-chat-dialog__content iho-chat-record-wrapper iho-chat-record-wrapper--forward"},w={class:"msg-box"},y={class:"name-and-time"},T={class:"content"},x=["src"],L=["src"],E=["innerHTML"];var A=t({__name:"MessageMergeForward",props:{id:{type:String}},setup(t){const A=t,{state:H}=f(),I=e((()=>A.id&&H.msgList.find((({id:t})=>t===A.id))||{})),b=e((()=>{if(!I.value)return[];const{content:t={}}=I.value;return v(t.forwardMessageList)?t.forwardMessageList.map((t=>({...t,__content:h(t.content)}))):[]}));return(t,e)=>(s(),o(n(p),{preset:"dialog",title:n(_)(n(I).content),"show-icon":!1,"auto-focus":!1,class:"iho-chat-dialog"},{default:i((()=>[r("div",k,[(s(!0),a(c,null,d(n(b),(t=>(s(),a("div",{class:"content-item",key:t.id},[m(n(u),{round:"",size:38,src:t.senderAvatar},null,8,["src"]),r("div",w,[r("div",y,[r("span",null,l(t.senderName),1),r("span",null,l(n(j)(t.sendTime).recordTime),1)]),r("div",T,[t.content.chatMessageType===n(g).IMAGE?(s(),a("img",{key:0,src:t.__content},null,8,x)):t.content.chatMessageType===n(g).EMOJI?(s(),a("img",{key:1,class:"emoji",src:n(M).findEmoji(t.__content)},null,8,L)):(s(),a("p",{key:2,innerHTML:t.__content},null,8,E))])])])))),128))])])),_:1},8,["title"]))}});export{A as default};
|
@@ -33,6 +33,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
33
33
|
userId: string;
|
34
34
|
info: AnyObject | null;
|
35
35
|
};
|
36
|
+
isForward: boolean;
|
36
37
|
};
|
37
38
|
sendMessage: (message: {
|
38
39
|
chatType?: string | undefined;
|
@@ -113,6 +114,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
113
114
|
key: string;
|
114
115
|
label: string;
|
115
116
|
}[];
|
117
|
+
orgList: AnyObject[];
|
116
118
|
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
117
119
|
title: {
|
118
120
|
type: StringConstructor;
|
@@ -168,6 +170,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
168
170
|
userId: string;
|
169
171
|
info: AnyObject | null;
|
170
172
|
};
|
173
|
+
isForward: boolean;
|
171
174
|
};
|
172
175
|
setCurrentSessionItem: (item: AnyObject) => void;
|
173
176
|
listRef: import("vue").Ref<any>;
|
@@ -204,10 +207,16 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
204
207
|
allChecked: import("vue").WritableComputedRef<boolean>;
|
205
208
|
checkedSourceIds: import("vue").WritableComputedRef<any[]>;
|
206
209
|
currentTabKey: import("vue").ComputedRef<any>;
|
210
|
+
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
211
|
+
getOrgList: () => Promise<void>;
|
212
|
+
setUserTotal: (tree: AnyObject[]) => void;
|
207
213
|
getDisabled: (id: string | number) => boolean;
|
208
214
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
209
215
|
toggleTab: (item: AnyObject) => void;
|
210
216
|
handleTabBack: () => void;
|
217
|
+
openTree: (option: AnyObject, _type?: string | undefined) => void;
|
218
|
+
getOrgDisabled: (option: AnyObject) => boolean;
|
219
|
+
getAllUser: (tree: AnyObject[]) => AnyObject[];
|
211
220
|
handlePositiveClick: () => Promise<void>;
|
212
221
|
closeTag: (id: string) => void;
|
213
222
|
NModal: any;
|
@@ -227,6 +236,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
227
236
|
PersonOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
228
237
|
PeopleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
229
238
|
ChevronBackOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
239
|
+
ChevronForwardOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
230
240
|
last: <T>(array: import("lodash").List<T> | null | undefined) => T | undefined;
|
231
241
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "comfirm"[], "comfirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
232
242
|
title: {
|
@@ -34,6 +34,7 @@ export declare function initData(props: AnyObject, emit: (event: 'template-click
|
|
34
34
|
userId: string;
|
35
35
|
info: AnyObject | null;
|
36
36
|
};
|
37
|
+
isForward: boolean;
|
37
38
|
};
|
38
39
|
unreadTotal: import("vue").ComputedRef<number>;
|
39
40
|
isGroupChat: import("vue").ComputedRef<boolean>;
|
@@ -48,7 +49,7 @@ export declare function initData(props: AnyObject, emit: (event: 'template-click
|
|
48
49
|
relayMessage: (param: {
|
49
50
|
checkedIds: string[];
|
50
51
|
remark: string;
|
51
|
-
|
52
|
+
contents: AnyObject[];
|
52
53
|
}) => Promise<void>;
|
53
54
|
setMessageLabel: (params: {
|
54
55
|
type: 'emoji' | 'text';
|
@@ -96,6 +97,7 @@ export declare const useData: () => {
|
|
96
97
|
userId: string;
|
97
98
|
info: AnyObject | null;
|
98
99
|
};
|
100
|
+
isForward: boolean;
|
99
101
|
};
|
100
102
|
unreadTotal: import("vue").ComputedRef<number>;
|
101
103
|
isGroupChat: import("vue").ComputedRef<boolean>;
|
@@ -110,7 +112,7 @@ export declare const useData: () => {
|
|
110
112
|
relayMessage: (param: {
|
111
113
|
checkedIds: string[];
|
112
114
|
remark: string;
|
113
|
-
|
115
|
+
contents: AnyObject[];
|
114
116
|
}) => Promise<void>;
|
115
117
|
setMessageLabel: (params: {
|
116
118
|
type: 'emoji' | 'text';
|
@@ -1 +1 @@
|
|
1
|
-
import{ref as e,reactive as s,computed as t,watch as n,toRef as i,inject as r,toRaw as o}from"vue";import{openSessionApi as a,updateStatusApi as u,groupUserApi as c}from"../api/index.js";import{promiseTimeout as d,useIntervalFn as m}from"@vueuse/core";import{isGroup as l,listSort as p,formatTime as f,transformMessage as g,getFileSize as h,simplifyMessage as
|
1
|
+
import{ref as e,reactive as s,computed as t,watch as n,toRef as i,inject as r,toRaw as o}from"vue";import{openSessionApi as a,updateStatusApi as u,groupUserApi as c}from"../api/index.js";import{promiseTimeout as d,useIntervalFn as m}from"@vueuse/core";import{isGroup as l,listSort as p,formatTime as f,transformMessage as g,getFileSize as h,$message as I,simplifyMessage as S}from"../utils/index.js";import{cloneDeep as y,remove as L,isArray as T,uniqBy as v}from"lodash-es";import{STATUS as M,MESSAGE_TYPE as E,CHAT_TYPE as C}from"../constants/index.js";import{useTheme as b}from"../../../../shared/hooks/useTheme.js";import"date-fns";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import"naive-ui";import"../../../../shared/hooks/useScrollLoading.js";const w=Symbol("InjectionIChatData");function D(e){const{lastMessage:s,lastSenderName:t=""}=e,n=S(s)||"";return l(e)&&t?t+": "+n:n}function N(r,S){const w=e(),N=s({orgId:r.orgId,currentSessionItem:{},id:"",userInfo:{id:r.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1,currentReferenceMsg:null,currentReEditMsg:null,showVideo:!1,currentAVMsg:{},currentGroupUser:[],showMultipleVideo:!1,userDetail:{show:!1,position:{x:0,y:0},userId:"",info:null},isForward:!1}),j=b(),U=t((()=>N.sessionList.reduce(((e,s)=>e+ +s.unreadNum),0))),_=t((()=>l(N.currentSessionItem))),x=t((()=>{var e,s,t;return(null==(e=N.userInfo)?void 0:e.id)===(null==(t=null==(s=N.currentGroupUser)?void 0:s[0])?void 0:t.id)})),G=t((()=>{var e;return(null==(e=N.currentSessionItem)?void 0:e.status)===M.ENDED}));n((()=>U.value),(e=>{!async function s(t=0){if(t>2)return;const n=N.sessionList.filter((e=>{var s;return+(null!=(s=e.unreadNum)?s:0)>0}));n.every((e=>!!e.name))?S("unread-message-update",e,p(n)):(await d(300),s(++t))}()})),n([()=>N.isChangeSession,()=>N.isUpdateSession],(([e,s])=>{e&&(F(N.currentSessionItem),N.currentSessionItem.status===M.REMOVED&&P(),N.isChangeSession=!1),s&&(F(N.updateSessionItem),N.isUpdateSession=!1)}),{immediate:!0});const{pause:O,resume:R,isActive:K}=m((()=>{const e=y(N.msgList);e.some((e=>{const{sendTime:s}=e;return!(Date.now()-new Date(s).getTime()>=36e5)&&(e.__sendTime=f(s).recordTime,!0)})),N.msgList=e,k()||O()}),6e4,{immediate:!1});function k(){return!!N.msgList.length&&N.msgList.some((e=>Date.now()-new Date(e.sendTime).getTime()<36e5))}async function A(e){var s;try{null==(s=w.value)||s.send("/app/chat/send",{},JSON.stringify({chatType:N.currentSessionItem.chatType,receiver:N.currentSessionItem.receiver,...e}))}catch(e){}}function V(e){Object.assign(N.currentSessionItem,e,{lastMessageContent:Reflect.has(e,"lastMessageContent")?e.lastMessageContent:Reflect.has(e,"lastMessage")?D({...e,chatType:e.chatType||N.currentSessionItem.chatType}):N.currentSessionItem.lastMessageContent}),N.isChangeSession=!0,N.id!==N.currentSessionItem.id&&(N.msgList=[],N.id=N.currentSessionItem.id)}function B(e){const s=N.sessionList.find((s=>s.sessionKey===e.sessionKey)),t={...e,lastMessageContent:D({...e,chatType:e.chatType||(null==s?void 0:s.chatType)})};N.updateSessionItem=s?{...y(s),...t}:t,N.isUpdateSession=!0}function P(){if(!N.id)return null;const{currentSessionItem:e}=N;return N.currentSessionItem={},N.msgList=[],N.id="",N.currentGroupUser=[],e}function z(e){N.sessionList=y(v(e,"id")),N.sessionList.forEach((e=>{Object.assign(e,{defaultName:Reflect.has(e,"defaultName")?e.defaultName:e.name||"",lastMessageContent:Reflect.has(e,"lastMessageContent")?e.lastMessageContent:D(e)}),e.receiver===N.userInfo.id&&(e.unreadNum=0),e.chatType!==C.GROUP||e.name||c({id:e.receiver}).then((s=>{T(s)&&(e.name=s.map((e=>e.name)).join(","))}))}))}function F(e){!e.id||N.sessionList.map((e=>e.id)).includes(e.id)?N.sessionList.some((s=>{if(s.sessionKey===e.sessionKey){let{unreadNum:t=0}=s;return Object.assign(s,e),e.sessionKey!==N.currentSessionItem.sessionKey&&s.sender&&s.sender!==N.userInfo.id&&(s.unreadNum=++t),!0}})):z([...N.sessionList,e])}return{filterable:i(r,"filterable"),trtcProxy:i(r,"trtcProxy"),cssVars:j,stompClient:w,state:N,unreadTotal:U,isGroupChat:_,isGroupLeader:x,isEnded:G,setMsgList:function(e=[]){O(),N.msgList=y(e).sort(((e,s)=>new Date(s.sendTime).getTime()-new Date(e.sendTime).getTime())),N.msgList.forEach((e=>{Object.assign(e,{__time:f(e.sendTime).msgTime,__content:g(e.content),__sendTime:f(e.sendTime).recordTime}),e.content.chatMessageType!==E.FILE||e.__size||h(e.content.fileUrl).then((s=>{e.__size=s}))})),k()&&R()},sendMessage:A,relayMessage:async function(e){const{checkedIds:s,remark:t,contents:n}=e;for(let e=0;e<s.length;e++)try{const i=s[e],r=N.sessionList.find((e=>e.receiver===i));r||await a({chatType:C.SINGLE,receiver:i,sender:N.userInfo.id});const o=(null==r?void 0:r.chatType)||C.SINGLE;for(let e=0;e<n.length;e++){await d(100);const s=n[e];A({chatType:o,receiver:i,content:s})}t&&(await d(100),A({chatType:o,receiver:i,content:{chatMessageType:E.TEXT,msg:t}})),await d(100)}catch(e){console.log("error ==>",e)}I.success("转发成功")},setMessageLabel:function(e){var s;const{type:t,labelItem:n,msgId:i}=e,r=N.msgList.find((e=>e.id===i));if(!r)return;const{labelList:o=[]}=r.content||{},a=o.findIndex((e=>{const s="emoji"===t?e.label===n:e.label.label===n.label;return e.type===t&&s})),u=o[a];if(u){u.userList.find((e=>e.id===N.userInfo.id))?(L(u.userList,(e=>e.id===N.userInfo.id)),(null==(s=u.userList)?void 0:s.length)||o.splice(a,1)):(u.userList||(u.userList=[]),u.userList.push(N.userInfo))}else o.push({type:t,label:n,userList:[N.userInfo]}),r.content.labelList=o},openSession:async function(e){try{const s="string"==typeof e?N.sessionList.find((s=>s.id===e)):e;if(!s)return;s.status===M.REMOVED&&(await u({id:s.id,status:M.ENABLED}),B({...s,status:M.ENABLED}),s.status=M.ENABLED);const t=N.currentSessionItem.sessionKey;if(V(s),t===N.currentSessionItem.sessionKey)return;if(_.value){const e=await c({id:s.receiver});N.currentGroupUser=T(e)?e:[]}else N.currentGroupUser=v([N.userInfo,{...y(s),id:s.receiver}],"id");S("session-change",{...o(N.currentSessionItem),userList:N.currentGroupUser.map((e=>o(e)))})}catch(e){console.log("error---\x3e",e)}},closeSession:P,getCurrentSession:function(){return N.id?N.currentSessionItem:null},setCurrentSessionItem:V,setUpdateSessionItem:B,setSessionList:z,emit:S,setUserDetail:function(e,s){Object.assign(N.userDetail,s,{position:{x:e.clientX,y:e.clientY}})}}}const j=()=>r(w);export{w as InjectionIChatData,N as initData,j as useData};
|