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.
Files changed (120) hide show
  1. package/es/components/ai-chat/index.d.ts +123 -17
  2. package/es/components/ai-chat/src/Index.vue.d.ts +123 -17
  3. package/es/components/ai-chat/src/Index.vue2.js +1 -1
  4. package/es/components/ai-chat/src/api/index.d.ts +5 -0
  5. package/es/components/ai-chat/src/api/index.js +1 -0
  6. package/es/components/ai-chat/src/components/ChatAudio.vue.d.ts +40 -0
  7. package/es/components/ai-chat/src/components/ChatAudio.vue.js +1 -0
  8. package/es/components/ai-chat/src/components/ChatAudio.vue2.js +1 -0
  9. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  10. package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +45 -2
  11. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
  12. package/es/components/ai-chat/src/components/ChatMain.d.ts +1 -7
  13. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  14. package/es/components/ai-chat/src/components/ChatMainInner.d.ts +2 -0
  15. package/es/components/ai-chat/src/components/ChatMainInner.js +1 -0
  16. package/es/components/ai-chat/src/components/ChatRight.vue.d.ts +55 -0
  17. package/es/components/ai-chat/src/components/ChatRight.vue.js +1 -0
  18. package/es/components/ai-chat/src/components/ChatRight.vue2.js +1 -0
  19. package/es/components/ai-chat/src/components/card/JsonCard.d.ts +25 -0
  20. package/es/components/ai-chat/src/components/card/JsonCard.js +1 -0
  21. package/es/components/ai-chat/src/components/card/SelectIcon.d.ts +14 -0
  22. package/es/components/ai-chat/src/components/card/SelectIcon.js +1 -0
  23. package/es/components/ai-chat/src/hooks/useProgram.d.ts +6 -0
  24. package/es/components/ai-chat/src/hooks/useProgram.js +1 -0
  25. package/es/components/ai-chat/src/hooks/useWebsocket.d.ts +2 -0
  26. package/es/components/ai-chat/src/hooks/useWebsocket.js +1 -0
  27. package/es/components/ai-chat/style/index.css +1 -1
  28. package/es/components/audio-sdk/src/audioSDK.d.ts +5 -3
  29. package/es/components/audio-sdk/src/audioSDK.js +1 -1
  30. package/es/components/audio-sdk/src/utils/recordingModal.d.ts +2 -1
  31. package/es/components/audio-sdk/src/utils/recordingModal.js +1 -1
  32. package/es/components/base-search/src/index.vue2.js +1 -1
  33. package/es/components/button-print/index.d.ts +1 -0
  34. package/es/components/button-print/src/ButtonPrint.vue.d.ts +1 -0
  35. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +1 -0
  36. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  37. package/es/components/card-reader-sdk/src/cardReaderSDK.d.ts +4 -1
  38. package/es/components/card-reader-sdk/src/cardReaderSDK.js +1 -1
  39. package/es/components/card-reader-sdk/src/types/index.d.ts +1 -0
  40. package/es/components/card-reader-sdk-cn/index.d.ts +88 -10
  41. package/es/components/card-reader-sdk-cn/index.js +1 -1
  42. package/es/components/card-reader-sdk-cn/src/henan/index.d.ts +40 -10
  43. package/es/components/card-reader-sdk-cn/src/henan/index.js +1 -1
  44. package/es/components/editor/src/Editor.js +1 -1
  45. package/es/components/editor/style/index.css +1 -0
  46. package/es/components/field-editor/index.d.ts +1011 -0
  47. package/es/components/field-editor/index.js +1 -0
  48. package/es/components/field-editor/src/FieldEditor.vue.d.ts +1012 -0
  49. package/es/components/field-editor/src/FieldEditor.vue.js +1 -0
  50. package/es/components/field-editor/src/FieldEditor.vue2.js +1 -0
  51. package/es/components/field-editor/src/fields.d.ts +19 -0
  52. package/es/components/field-editor/src/fields.js +1 -0
  53. package/es/components/field-editor/src/types.d.ts +25 -0
  54. package/es/components/field-editor/src/types.js +1 -0
  55. package/es/components/field-set/index.d.ts +3 -2
  56. package/es/components/field-set/src/FieldColor.vue.d.ts +2 -0
  57. package/es/components/field-set/src/FieldFilter.vue.d.ts +2 -0
  58. package/es/components/field-set/src/FieldSet.vue.d.ts +2 -0
  59. package/es/components/field-set/src/FieldSet.vue2.js +1 -1
  60. package/es/components/field-set/src/Index.vue.d.ts +3 -2
  61. package/es/components/field-set/src/Index.vue2.js +1 -1
  62. package/es/components/field-set/src/components/table-row.vue2.js +1 -1
  63. package/es/components/field-set/src/types/index.d.ts +1 -0
  64. package/es/components/field-set/src/utils/index.js +1 -1
  65. package/es/components/field-set/style/index.css +1 -1
  66. package/es/components/form-render/src/components/renderer/formItem.js +1 -1
  67. package/es/components/iho-chat/index.d.ts +155 -3
  68. package/es/components/iho-chat/src/Index.vue.d.ts +155 -3
  69. package/es/components/iho-chat/src/api/index.d.ts +1 -0
  70. package/es/components/iho-chat/src/api/index.js +1 -1
  71. package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +9 -0
  72. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  73. package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +11 -1
  74. package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
  75. package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +22 -0
  76. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  77. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +32 -1
  78. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +77 -3
  79. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  80. package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +1 -0
  81. package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
  82. package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +1 -0
  83. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +10 -0
  84. package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
  85. package/es/components/iho-chat/src/components/MessageEvent.vue.d.ts +1 -0
  86. package/es/components/iho-chat/src/components/MessageMergeForward.vue.d.ts +59 -0
  87. package/es/components/iho-chat/src/components/MessageMergeForward.vue.js +1 -0
  88. package/es/components/iho-chat/src/components/MessageMergeForward.vue2.js +1 -0
  89. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +10 -0
  90. package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +1 -0
  91. package/es/components/iho-chat/src/components/SiderList.vue.d.ts +1 -0
  92. package/es/components/iho-chat/src/components/Video.vue.d.ts +1 -0
  93. package/es/components/iho-chat/src/hooks/useData.d.ts +4 -2
  94. package/es/components/iho-chat/src/hooks/useData.js +1 -1
  95. package/es/components/iho-chat/src/hooks/useVideo.d.ts +1 -0
  96. package/es/components/iho-chat/src/types/index.d.ts +1 -0
  97. package/es/components/iho-chat/src/utils/index.d.ts +1 -0
  98. package/es/components/iho-chat/src/utils/index.js +1 -1
  99. package/es/components/iho-chat/style/iconfont.ttf +0 -0
  100. package/es/components/iho-chat/style/index.css +1 -1
  101. package/es/components/index.css +1 -1
  102. package/es/components/index.d.ts +2 -1
  103. package/es/components/index.js +1 -1
  104. package/es/components/quick-search/src/index.vue2.js +1 -1
  105. package/es/components/select-label/style/index.css +1 -1
  106. package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
  107. package/es/components/select-person/src/index.vue2.js +1 -1
  108. package/es/components/select-person/style/index.css +1 -1
  109. package/es/components/shortcut-provider/src/types/index.d.ts +3 -0
  110. package/es/components/shortcut-setter/src/ShortcutSetter.vue2.js +1 -1
  111. package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue.d.ts +4 -2
  112. package/es/components/table-filter/src/components/render-widget/components/SelectDynamic.vue2.js +1 -1
  113. package/es/components/table-filter/src/components/render-widget/components/index.d.ts +4 -2
  114. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.d.ts +4 -2
  115. package/es/shared/assets/img/file-emr.png.js +1 -0
  116. package/es/shared/assets/img/file.png.js +1 -0
  117. package/es/shared/assets/img/use.png.js +1 -0
  118. package/es/shared/package.json.js +1 -1
  119. package/es/shared/utils/index.js +1 -1
  120. 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
- content: AnyObject;
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
- last: <T>(array: import("lodash").List<T> | null | undefined) => T | undefined;
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};
@@ -43,6 +43,7 @@ declare const _default: import("vue").DefineComponent<{
43
43
  userId: string;
44
44
  info: AnyObject | null;
45
45
  };
46
+ isForward: boolean;
46
47
  };
47
48
  recordRef: import("vue").Ref<any>;
48
49
  recordList: import("vue").Ref<AnyObject[]>;
@@ -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 g,vShow as f}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 L}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as x}from"../constants/index.js";import{searchChatRecordApi as C}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 B from"../../../date-picker/index.js";import{useDebounceFn as E}from"@vueuse/core";import{format as H}from"date-fns";import"../../../../shared/utils/index.js";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as D}from"../../../../shared/hooks/useScrollLoading.js";import{emojis as U}from"../utils/emoji.js";var z,G;const N={class:"iho-chat-dialog__header"},R=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"},X={class:"name-and-time"},$={class:"content"},q=["src"],F=["src"],K=["innerHTML"],Q={key:1,class:"no-data"},V={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}=L(),ce=l(),ve=l([]),me=l(),pe=l([]),ge=l(),fe=l(),he=E(be,500),ye={page:0,hasMore:!0,lastSendTime:H(new Date,"yyyy-MM-dd HH:mm:ss")};async function we(){var e;try{if(!ye.hasMore)return;ye.page++;const a=await C({orgId:de.orgId,keyword:me.value,endTime:Te(),startTime:ge.value?ge.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,r;let o="";switch(e.content.chatMessageType){case x.TEXT:case x.BLEND:o=I(e.content);break;case x.TEMPLATE:o=null==(t=null==(l=null==(a=e.content)?void 0:a.messageTemplate)?void 0:l.setting)?void 0:t.title;break;default:o=null==(r=e.content)?void 0:r.msg}e.__content=o})),ve.value=ye.page>1?ve.value.concat(l):l}catch(e){}}function be(){Object.assign(ye,{page:0,hasMore:!0,lastSendTime:Te()||H(new Date,"yyyy-MM-dd HH:mm:ss")}),we()}function _e(e){return!!fe.value&&e>Date.parse(`${fe.value} 23:59:59`)}function ke(e){return!!ge.value&&e<Date.parse(ge.value)}function Te(){return fe.value?fe.value+" 23:59:59":""}function je(e){switch(e){case"member":pe.value=[];break;case"start":ge.value=null;break;case"end":fe.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 D(ce,(()=>{we()})),t([()=>pe.value,()=>ge.value,()=>fe.value],(()=>{z.visible&&be()}),{deep:!0}),t((()=>z.visible),(e=>{e?be():(me.value="",fe.value=null,ge.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",N,[R,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[g("成员:")," ",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,ge.value?i(T,{closable:!0,bordered:!1,color:G,onClose:()=>je("start")},{default:()=>[g("起始时间: "),ge.value]}):null,fe.value?i(T,{closable:!0,bordered:!1,color:G,onClose:()=>je("end")},{default:()=>[g("结束时间: "),fe.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",X,[e("span",null,u(a.senderName),1),e("span",null,u(n(A)(a.sendTime).recordTime),1)]),e("div",$,[a.content.chatMessageType===n(x).IMAGE?(r(),c("img",{key:0,src:a.__content},null,8,q)):a.content.chatMessageType===n(x).EMOJI?(r(),c("img",{key:1,class:"emoji",src:n(U).findEmoji(a.__content)},null,8,F)):(r(),c("p",{key:2,innerHTML:a.__content},null,8,K))])])])))),128)):(r(),c("div",Q,"没有找到相关记录"))],512),e("div",V,[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((()=>[g(u(ge.value),1)])),_:1},512),[[f,ge.value]]),p(e("span",ne,(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.76"))||"点击选择",512),[[f,!ge.value]])])]})),default:s((()=>[i(n(B),{"formatted-value":ge.value,"onUpdate:formatted-value":l[3]||(l[3]=e=>ge.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((()=>[g(u(fe.value),1)])),_:1},512),[[f,fe.value]]),p(e("span",ue,(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.76"))||"点击选择",512),[[f,!fe.value]])])]})),default:s((()=>[i(n(B),{"formatted-value":fe.value,"onUpdate:formatted-value":l[5]||(l[5]=e=>fe.value=e),type:"date",panel:"",clearable:"","is-date-disabled":ke},null,8,["formatted-value"])])),_:1})])])])])])])),_:1}))}});export{de as default};
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};
@@ -32,6 +32,7 @@ declare const _default: import("vue").DefineComponent<{}, {
32
32
  userId: string;
33
33
  info: AnyObject | null;
34
34
  };
35
+ isForward: boolean;
35
36
  };
36
37
  openSession: (session: string | AnyObject) => Promise<void>;
37
38
  userList: import("vue").Ref<AnyObject[]>;
@@ -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,ReturnDownBack as m,DownloadOutline as w}from"@vicons/ionicons5";import{onClickOutside as g}from"@vueuse/core";import{useData as y}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as f,MESSAGE_TYPE as v}from"../constants/index.js";import{recallMessageApi as h}from"../api/index.js";import{isAudioOrVideoMessage as T,$message as b,downloadFile as I}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 k=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:k,slots:M,emit:L}){var D,x,S,A,B;const{state:C,setCurrentSessionItem:O}=y(),W=[{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==(S=window.getLanguageByCode)?void 0:S.call(window,"10010.1.99"))||"回复",key:"reply"},{icon:m,label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.101"))||"撤回",key:"withdraw"},{icon:w,label:(null==(B=window.getLanguageByCode)?void 0:B.call(window,"10010.1.102"))||"下载",key:"download"}],$=[{label:"置顶会话",key:"topping"},{label:"移除会话",key:"remove"}],H=t(null),J=o((()=>("message"===e.type?C.msgList:C.sessionList).find((({id:t})=>t===e.id)))),N=o((()=>{var t;if(!e.id)return[];if(!(null==J?void 0:J.value))return[];if("session"===e.type){const e=[...$];return e[0].label=(null==(t=J.value)?void 0:t.topping)?"取消置顶":"置顶会话",J.value.status===f.ENDED&&e.pop(),e}const{content:o={},sendTime:i,sender:s}=J.value,{chatMessageType:n}=o,a=[];return(s!==C.userInfo.id||n===v.TEMPLATE||s===C.userInfo.id&&Date.now()-new Date(i).getTime()>2592e5)&&a.push("withdraw"),[v.TEXT,v.EMOJI,v.BLEND].includes(n)?a.push("download"):T(o)?a.push("copy","relay","reply","download"):n===v.FILE?a.push("copy"):[v.FORWARD,v.TEMPLATE].includes(n)&&a.push("copy","download"),a.length?W.filter((e=>!a.includes(e.key))):W}));return g(H,(e=>{L("update:show",!1)})),()=>{let t;return e.id&&N.value?i(s("div",{class:"contextmenu-wrapper",ref:H,style:e.position},[s(l,{vertical:!0},(o=t=N.value.map((t=>s(r,{key:t.key,onClick:()=>async function(t){L("update:show",!1);const{content:o={},sendTime:i,sender:s}=J.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===v.TEXT)await navigator.clipboard.writeText(o.msg);else{let e;if([v.EMOJI,v.IMAGE].includes(n)){const t=n===v.EMOJI?E.findEmoji(o.msg):o.msg;e=`<img data-msg=${o.msg} data-type=${n} class=${n===v.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===v.IMAGE&&(e=t,t=t.match(/\/([^\/?#]+)$/)[1]),void I(e,t)}case"withdraw":try{const t=C.msgList.findIndex((({id:t})=>t===e.id)),o=0===t;if(await h({chatType:C.currentSessionItem.chatType,messageIdSet:[e.id],receiver:C.currentSessionItem.receiver,sender:C.userInfo.id,isLastMessage:o}),C.msgList[t].status="WITHDRAWN",o){const e=j(new Date,"yyyy-MM-dd HH:mm:ss");O({lastMessageStatus:"WITHDRAWN",lastMessageSendTime:e,sortTime:e,updatedTime:e})}}catch(e){b.error("撤回失败")}return}L("select",t,J.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{k as default};
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};
@@ -39,6 +39,7 @@ declare const _default: import("vue").DefineComponent<{
39
39
  userId: string;
40
40
  info: AnyObject | null;
41
41
  };
42
+ isForward: boolean;
42
43
  };
43
44
  setUserDetail: (event: MouseEvent, userDetail: AnyObject) => void;
44
45
  inviter: import("vue").Ref<any>;
@@ -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: {
@@ -28,6 +28,7 @@ declare const _default: import("vue").DefineComponent<{}, {
28
28
  userId: string;
29
29
  info: AnyObject | null;
30
30
  };
31
+ isForward: boolean;
31
32
  };
32
33
  openSession: (session: string | AnyObject) => Promise<void>;
33
34
  showLargeAvatar: import("vue").Ref<boolean>;
@@ -54,6 +54,7 @@ declare const _default: import("vue").DefineComponent<{}, {
54
54
  userId: string;
55
55
  info: AnyObject | null;
56
56
  };
57
+ isForward: boolean;
57
58
  };
58
59
  unreadTotal: import("vue").ComputedRef<number>;
59
60
  filterable: import("vue").Ref<any>;
@@ -33,6 +33,7 @@ declare const _default: import("vue").DefineComponent<{}, {
33
33
  userId: string;
34
34
  info: import("../../../../shared/types").AnyObject | null;
35
35
  };
36
+ isForward: boolean;
36
37
  };
37
38
  trtcProxy: import("vue").Ref<any>;
38
39
  trtc: TRTC;
@@ -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
- content: AnyObject;
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
- content: AnyObject;
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 I}from"../utils/index.js";import{cloneDeep as L,remove as S,isArray as y,uniqBy as T}from"lodash-es";import{STATUS as v,MESSAGE_TYPE as M,CHAT_TYPE as E}from"../constants/index.js";import{useTheme as C}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 D=Symbol("InjectionIChatData");function b(e){const{lastMessage:s,lastSenderName:t=""}=e,n=I(s)||"";return l(e)&&t?t+": "+n:n}function N(r,I){const D=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}}),j=C(),w=t((()=>N.sessionList.reduce(((e,s)=>e+ +s.unreadNum),0))),U=t((()=>l(N.currentSessionItem))),_=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)})),x=t((()=>{var e;return(null==(e=N.currentSessionItem)?void 0:e.status)===v.ENDED}));n((()=>w.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))?I("unread-message-update",e,p(n)):(await d(300),s(++t))}()})),n([()=>N.isChangeSession,()=>N.isUpdateSession],(([e,s])=>{e&&(P(N.currentSessionItem),N.currentSessionItem.status===v.REMOVED&&B(),N.isChangeSession=!1),s&&(P(N.updateSessionItem),N.isUpdateSession=!1)}),{immediate:!0});const{pause:G,resume:O,isActive:R}=m((()=>{const e=L(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()||G()}),6e4,{immediate:!1});function K(){return!!N.msgList.length&&N.msgList.some((e=>Date.now()-new Date(e.sendTime).getTime()<36e5))}async function k(e){var s;try{null==(s=D.value)||s.send("/app/chat/send",{},JSON.stringify({chatType:N.currentSessionItem.chatType,receiver:N.currentSessionItem.receiver,...e}))}catch(e){}}function A(e){Object.assign(N.currentSessionItem,e,{lastMessageContent:Reflect.has(e,"lastMessageContent")?e.lastMessageContent:Reflect.has(e,"lastMessage")?b({...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 V(e){const s=N.sessionList.find((s=>s.sessionKey===e.sessionKey)),t={...e,lastMessageContent:b({...e,chatType:e.chatType||(null==s?void 0:s.chatType)})};N.updateSessionItem=s?{...L(s),...t}:t,N.isUpdateSession=!0}function B(){if(!N.id)return null;const{currentSessionItem:e}=N;return N.currentSessionItem={},N.msgList=[],N.id="",N.currentGroupUser=[],e}function X(e){N.sessionList=L(T(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:b(e)}),e.receiver===N.userInfo.id&&(e.unreadNum=0),e.chatType!==E.GROUP||e.name||c({id:e.receiver}).then((s=>{y(s)&&(e.name=s.map((e=>e.name)).join(","))}))}))}function P(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}})):X([...N.sessionList,e])}return{filterable:i(r,"filterable"),trtcProxy:i(r,"trtcProxy"),cssVars:j,stompClient:D,state:N,unreadTotal:w,isGroupChat:U,isGroupLeader:_,isEnded:x,setMsgList:function(e=[]){G(),N.msgList=L(e).sort(((e,s)=>new Date(s.sendTime).getTime()-new Date(e.sendTime).getTime())),N.msgList.forEach((e=>{var s,t;Object.assign(e,{__time:f(e.sendTime).msgTime,__content:(t=e.content.chatMessageType,[M.TEXT,M.TEXT,M.BLEND].includes(t)?g(e.content):null==(s=e.content)?void 0:s.msg),__sendTime:f(e.sendTime).recordTime}),e.content.chatMessageType!==M.FILE||e.__size||h(e.content.fileUrl).then((s=>{e.__size=s}))})),K()&&O()},sendMessage:k,relayMessage:async function(e){const{checkedIds:s,remark:t,content:n}=e;for(let e=0;e<s.length;e++){const i=s[e],r=N.sessionList.find((e=>e.receiver===i));r||await a({chatType:E.SINGLE,receiver:i,sender:N.userInfo.id});const o=(null==r?void 0:r.chatType)||E.SINGLE;k({chatType:o,receiver:i,content:n}),await d(100),t&&k({chatType:o,receiver:i,content:{chatMessageType:M.TEXT,msg:t}}),await d(100)}},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))?(S(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===v.REMOVED&&(await u({id:s.id,status:v.ENABLED}),V({...s,status:v.ENABLED}),s.status=v.ENABLED);const t=N.currentSessionItem.sessionKey;if(A(s),t===N.currentSessionItem.sessionKey)return;if(U.value){const e=await c({id:s.receiver});N.currentGroupUser=y(e)?e:[]}else N.currentGroupUser=T([N.userInfo,{...L(s),id:s.receiver}],"id");I("session-change",{...o(N.currentSessionItem),userList:N.currentGroupUser.map((e=>o(e)))})}catch(e){console.log("error---\x3e",e)}},closeSession:B,getCurrentSession:function(){return N.id?N.currentSessionItem:null},setCurrentSessionItem:A,setUpdateSessionItem:V,setSessionList:X,emit:I,setUserDetail:function(e,s){Object.assign(N.userDetail,s,{position:{x:e.clientX,y:e.clientY}})}}}const j=()=>r(D);export{D as InjectionIChatData,N as initData,j as useData};
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};