cnhis-design-vue 3.2.15-release.5 → 3.2.16-beta.7

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 (75) hide show
  1. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  2. package/es/components/branch-notice/src/canstants.js +1 -1
  3. package/es/components/button-print/index.d.ts +6 -13
  4. package/es/components/button-print/src/ButtonPrint.vue.d.ts +6 -13
  5. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +6 -13
  6. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  7. package/es/components/button-print/style/index.css +1 -1
  8. package/es/components/callback/src/components/render/popupMaps.d.ts +10 -0
  9. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  10. package/es/components/date-picker/src/DatePicker.vue2.js +1 -1
  11. package/es/components/expand-field/index.d.ts +26 -0
  12. package/es/components/expand-field/src/components/FormItemPerson.vue.d.ts +26 -0
  13. package/es/components/expand-field/src/components/PersonModal.vue.d.ts +26 -0
  14. package/es/components/expand-field/src/components/form.vue.d.ts +26 -0
  15. package/es/components/expand-field/src/index.vue.d.ts +26 -0
  16. package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
  17. package/es/components/field-set/src/FieldFilter.vue.d.ts +1 -1
  18. package/es/components/field-set/src/FieldSet.vue.d.ts +1 -1
  19. package/es/components/field-set/src/components/table-row.vue.d.ts +1 -1
  20. package/es/components/form-config/index.d.ts +30 -0
  21. package/es/components/form-config/src/FormConfig.vue.d.ts +30 -0
  22. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +10 -0
  23. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +10 -0
  24. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +10 -0
  25. package/es/components/form-render/index.d.ts +10 -0
  26. package/es/components/form-render/src/FormRender.vue.d.ts +10 -0
  27. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  28. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +10 -0
  29. package/es/components/form-render/src/components/renderer/input.d.ts +9 -1
  30. package/es/components/form-render/src/components/renderer/input.js +1 -1
  31. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
  32. package/es/components/iho-chat/index.d.ts +181 -23
  33. package/es/components/iho-chat/src/Index.vue.d.ts +181 -23
  34. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  35. package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
  36. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  37. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +24 -12
  38. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +150 -7
  39. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  40. package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +12 -6
  41. package/es/components/iho-chat/src/components/MessageEvent.vue.d.ts +137 -0
  42. package/es/components/iho-chat/src/components/MessageEvent.vue.js +1 -0
  43. package/es/components/iho-chat/src/components/MessageEvent.vue2.js +1 -0
  44. package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +6 -3
  45. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  46. package/es/components/iho-chat/src/components/PersonProfile.vue.d.ts +13 -6
  47. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  48. package/es/components/iho-chat/src/components/Video.vue.d.ts +1 -1
  49. package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
  50. package/es/components/iho-chat/src/constants/index.d.ts +2 -1
  51. package/es/components/iho-chat/src/constants/index.js +1 -1
  52. package/es/components/iho-chat/src/hooks/useVideo.d.ts +2 -2
  53. package/es/components/iho-chat/src/hooks/useVideo.js +1 -1
  54. package/es/components/iho-chat/src/utils/asyncQueue.d.ts +10 -0
  55. package/es/components/iho-chat/src/utils/asyncQueue.js +1 -0
  56. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  57. package/es/components/iho-table/src/types/index.d.ts +14 -0
  58. package/es/components/iho-table/src/utils/index.js +1 -1
  59. package/es/components/index.css +1 -1
  60. package/es/components/info-header/index.d.ts +20 -0
  61. package/es/components/info-header/src/InfoHeader.vue.d.ts +20 -0
  62. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +10 -0
  63. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +10 -0
  64. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  65. package/es/components/select-person/index.d.ts +26 -0
  66. package/es/components/select-person/src/SelectPerson.vue.d.ts +14 -0
  67. package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
  68. package/es/components/select-person/src/index.vue.d.ts +26 -0
  69. package/es/components/select-person/src/index.vue2.js +1 -1
  70. package/es/components/shortcut-setter/index.d.ts +10 -0
  71. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +10 -0
  72. package/es/env.d.ts +25 -25
  73. package/es/shared/hooks/useDateTime.js +1 -1
  74. package/es/shared/package.json.js +1 -1
  75. package/package.json +2 -2
@@ -63,7 +63,10 @@ declare const _default: import("vue").DefineComponent<{}, {
63
63
  resetInfo: () => void;
64
64
  setReferenceMsg: (msgItem: AnyObject) => void;
65
65
  handleSelect: (key: string, msgItem: AnyObject) => void;
66
- handleRelay: (checkedIds: string[], remark: string) => void;
66
+ handleRelay: ({ checkedIds, remark }: {
67
+ checkedIds: string[];
68
+ remark: string;
69
+ }) => void;
67
70
  reEdit: (item: AnyObject) => void;
68
71
  NAvatar: any;
69
72
  NImageGroup: any;
@@ -74,23 +77,27 @@ declare const _default: import("vue").DefineComponent<{}, {
74
77
  NSpace: any;
75
78
  PersonProfile: import("vue").DefineComponent<{
76
79
  userId: {
77
- type: StringConstructor;
78
- required: true;
80
+ type: (NumberConstructor | StringConstructor)[];
79
81
  };
80
82
  disabled: {
81
83
  type: BooleanConstructor;
82
84
  default: boolean;
83
85
  };
86
+ userInfo: {
87
+ type: import("vue").PropType<AnyObject>;
88
+ };
84
89
  }, {
85
90
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
86
91
  userId: {
87
- type: StringConstructor;
88
- required: true;
92
+ type: (NumberConstructor | StringConstructor)[];
89
93
  };
90
94
  disabled: {
91
95
  type: BooleanConstructor;
92
96
  default: boolean;
93
97
  };
98
+ userInfo: {
99
+ type: import("vue").PropType<AnyObject>;
100
+ };
94
101
  }>> & {
95
102
  onClose?: ((...args: any[]) => any) | undefined;
96
103
  }>>;
@@ -145,13 +152,15 @@ declare const _default: import("vue").DefineComponent<{}, {
145
152
  EyeOffOutline: 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<{}>>, {}>;
146
153
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
147
154
  userId: {
148
- type: StringConstructor;
149
- required: true;
155
+ type: (NumberConstructor | StringConstructor)[];
150
156
  };
151
157
  disabled: {
152
158
  type: BooleanConstructor;
153
159
  default: boolean;
154
160
  };
161
+ userInfo: {
162
+ type: import("vue").PropType<AnyObject>;
163
+ };
155
164
  }>> & {
156
165
  onClose?: ((...args: any[]) => any) | undefined;
157
166
  }, {
@@ -235,6 +244,140 @@ declare const _default: import("vue").DefineComponent<{}, {
235
244
  required: true;
236
245
  };
237
246
  }>>, {}>;
247
+ MessageEvent: import("vue").DefineComponent<{
248
+ data: {
249
+ type: import("vue").PropType<AnyObject>;
250
+ required: true;
251
+ };
252
+ }, {
253
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
254
+ data: {
255
+ type: import("vue").PropType<AnyObject>;
256
+ required: true;
257
+ };
258
+ }>> & {}>>;
259
+ state: {
260
+ orgId: string | number;
261
+ currentSessionItem: AnyObject;
262
+ id: string;
263
+ userInfo: AnyObject;
264
+ msgList: AnyObject[];
265
+ currentMsg: AnyObject;
266
+ isAppendMsg: boolean;
267
+ sessionList: AnyObject[];
268
+ isChangeSession: boolean;
269
+ updateSessionItem: AnyObject;
270
+ isUpdateSession: boolean;
271
+ currentReferenceMsg: AnyObject | null;
272
+ currentReEditMsg: AnyObject | null;
273
+ showVideo: boolean;
274
+ currentAVMsg: AnyObject;
275
+ currentGroupUser: AnyObject[];
276
+ showMultipleVideo: boolean;
277
+ };
278
+ inviter: import("vue").Ref<any>;
279
+ invitee: import("vue").Ref<any[]>;
280
+ isValidJSON: (str: string) => boolean;
281
+ getTask: (_id: string | number, arrRes: AnyObject[]) => () => Promise<unknown>;
282
+ getEventContent: (data: AnyObject) => Promise<void>;
283
+ NButton: any;
284
+ PersonProfile: import("vue").DefineComponent<{
285
+ userId: {
286
+ type: (NumberConstructor | StringConstructor)[];
287
+ };
288
+ disabled: {
289
+ type: BooleanConstructor;
290
+ default: boolean;
291
+ };
292
+ userInfo: {
293
+ type: import("vue").PropType<AnyObject>;
294
+ };
295
+ }, {
296
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
297
+ userId: {
298
+ type: (NumberConstructor | StringConstructor)[];
299
+ };
300
+ disabled: {
301
+ type: BooleanConstructor;
302
+ default: boolean;
303
+ };
304
+ userInfo: {
305
+ type: import("vue").PropType<AnyObject>;
306
+ };
307
+ }>> & {
308
+ onClose?: ((...args: any[]) => any) | undefined;
309
+ }>>;
310
+ emit: (event: "close", ...args: any[]) => void;
311
+ state: {
312
+ orgId: string | number;
313
+ currentSessionItem: AnyObject;
314
+ id: string;
315
+ userInfo: AnyObject;
316
+ msgList: AnyObject[];
317
+ currentMsg: AnyObject;
318
+ isAppendMsg: boolean;
319
+ sessionList: AnyObject[];
320
+ isChangeSession: boolean;
321
+ updateSessionItem: AnyObject;
322
+ isUpdateSession: boolean;
323
+ currentReferenceMsg: AnyObject | null;
324
+ currentReEditMsg: AnyObject | null;
325
+ showVideo: boolean;
326
+ currentAVMsg: AnyObject;
327
+ currentGroupUser: AnyObject[];
328
+ showMultipleVideo: boolean;
329
+ };
330
+ openSession: (session: string | AnyObject) => Promise<void>;
331
+ showUserDetail: import("vue").Ref<boolean>;
332
+ showLargeAvatar: import("vue").Ref<boolean>;
333
+ showPhone: import("vue").Ref<boolean>;
334
+ userDetail: AnyObject;
335
+ info: {
336
+ label: string;
337
+ value: string;
338
+ key: string;
339
+ }[];
340
+ personInfo: import("vue").ComputedRef<{
341
+ label: string;
342
+ value: string;
343
+ key: string;
344
+ }[]>;
345
+ toOpenSession: () => Promise<void>;
346
+ updateShow: (value: boolean) => Promise<void>;
347
+ getContent: (info: AnyObject) => any;
348
+ onChange: (options: {
349
+ file: import("naive-ui").UploadFileInfo;
350
+ }) => Promise<void>;
351
+ NAvatar: any;
352
+ NPopover: any;
353
+ NButton: any;
354
+ NIcon: any;
355
+ ChatbubbleEllipses: 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<{}>>, {}>;
356
+ Close: 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<{}>>, {}>;
357
+ EyeOutline: 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<{}>>, {}>;
358
+ EyeOffOutline: 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<{}>>, {}>;
359
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
360
+ userId: {
361
+ type: (NumberConstructor | StringConstructor)[];
362
+ };
363
+ disabled: {
364
+ type: BooleanConstructor;
365
+ default: boolean;
366
+ };
367
+ userInfo: {
368
+ type: import("vue").PropType<AnyObject>;
369
+ };
370
+ }>> & {
371
+ onClose?: ((...args: any[]) => any) | undefined;
372
+ }, {
373
+ disabled: boolean;
374
+ }>;
375
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
376
+ data: {
377
+ type: import("vue").PropType<AnyObject>;
378
+ required: true;
379
+ };
380
+ }>>, {}>;
238
381
  emojis: {
239
382
  default: string[][];
240
383
  findEmoji(name: string): any;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as n,watch as o,openBlock as s,createElementBlock as i,normalizeClass as r,unref as a,normalizeStyle as l,createVNode as c,withCtx as u,Fragment as m,renderList as d,toDisplayString as p,createCommentVNode as g,createBlock as f,createElementVNode as v,createTextVNode as y,withModifiers as h,nextTick as T}from"vue";import{NImageGroup as M,NButton as w,NAvatar as k,NImage as _,NIcon as C,NSpace as x,NButtonGroup as I,NTooltip as L}from"naive-ui";import{format as j}from"date-fns";import{getHistoryRecordApi as E,readMessageApi as S}from"../api/index.js";import{useData as b}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 z,simplifyMessage as D,getAVTime as H,downloadFile as R}from"../utils/index.js";import{first as B,last as N,toString as O}from"lodash-es";import"trtc-sdk-v5";import P from"./PersonProfile.vue.js";import q from"./MessageTemplate.vue.js";import{emojis as J}from"../utils/emoji.js";import W from"./ContextMenu.js";import U 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 X,VideocamOutline as F,DocumentSharp as G,ChatbubbleEllipsesOutline as K,EllipsisHorizontal as Y,ArrowDownSharp as $}from"@vicons/ionicons5";import{useScrollLoading as Q}from"../../../../shared/hooks/useScrollLoading.js";const V={key:0,class:"tip-text"},Z={key:1,class:"tip-text"},ee={key:2,class:"message-box"},te={key:0,class:"content-box"},ne={class:"name-box"},oe=["data-time"],se=["onContextmenu"],ie={key:0,class:"reference-content"},re=["innerHTML"],ae=["src"],le=["innerHTML"],ce=["innerHTML"],ue={style:{"margin-left":"8px"}},me={class:"size"};var de=e({__name:"ChatMain",setup(e){const de=t(),{state:pe,setMsgList:ge,relayMessage:fe,setCurrentSessionItem:ve,isGroupChat:ye}=b(),he=t(),Te=t(!1),Me=t({left:0,top:0}),we=t(),ke=t(),_e={page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")},Ce=n((()=>({"--c-tip-top":ye.value?"1px":"-20px","--c-tip-gap":ye.value?"10px":"0px"})));function xe({nodes:e}){var t,n;const{_ctx:o}=null==(t=e.download)?void 0:t.children,s=o?null==(n=null==o?void 0:o.proxy)?void 0:n.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,c(L,null,{trigger:()=>c(C,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:$,onClick:()=>s&&R(s,"img")},null),default:()=>{var e;return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载"}}),e.close]}async function Ie(){try{if(!_e.hasMore)return;_e.page++;const e=await E({sessionKey:pe.currentSessionItem.sessionKey,page:_e.page,lastSendTime:_e.lastSendTime});if(!Array.isArray(e)||0===e.length)return _e.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=B(e).id;_e.lastSendTime=N(e).sendTime,ge(_e.page>1?[...pe.msgList,...e]:e),1===_e.page&&pe.currentSessionItem.unreadNum&&(await S({chatType:pe.currentSessionItem.chatType,messageIdSet:[t],receiver:pe.userInfo.id,sender:pe.currentSessionItem.receiver}),ve({unreadNum:0}))}catch(e){console.log(e)}}async function Le(e,t){we.value=t,async function(e){var t,n,o,s,i,r;Te.value=!0,await T();const{clientX:a,clientY:l}=e,{width:c=0,height:u=0,left:m=0,top:d=0}=(null==(t=de.value)?void 0:t.getBoundingClientRect())||{},p=null!=(s=null==(o=null==(n=he.value)?void 0:n.$el)?void 0:o.getBoundingClientRect().height)?s:220,g=null!=(r=null==(i=de.value)?void 0:i.scrollTop)?r:0,f=5,v={};a<=m+c/2?v.left=a-m+f+"px":v.right=m+c-a-f+"px";l-d<p/2?v.top=g+f+"px":d+u-l<=p/2?v.bottom=Math.abs(g)+f+"px":v.top=g+l-d-p/2+"px";Me.value=v}(e)}function je(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function Ee(e){const{chatMessageType:t}=e.content;return e.sender===pe.userInfo.id&&Date.now()-new Date(e.sendTime).getTime()<864e5&&[A.TEXT,A.EMOJI].includes(t)}function Se(e){const{chatMessageType:t,msg:n=""}=e.content;if(t===A.BLEND){const e=O(n).match(/<img[^>]*>/gi);return!e||!e.length}return t&&[A.TEXT,A.EMOJI].includes(t)}function be(e){const{chatMessageType:t,msg:n=""}=e.content,o=O(n).match(/<img[^>]*>/gi);return t===A.BLEND&&o&&o.length}function Ae(e,t){var n,o;const{chatMessageType:s,messageTemplate:i}=e.content;if(s===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(o=null==i?void 0:i.setting)?void 0:o.style.id)}function ze(e){var t,n;const{chatMessageType:o,messageTemplate:s}=e;return o===A.TEMPLATE&&3==(null==(n=null==(t=null==s?void 0:s.setting)?void 0:t.style)?void 0:n.id)}function De(e,t){var n;const o=new Date(e.sendTime).getTime(),s=null==(n=pe.msgList[t+1])?void 0:n.sendTime;if(s){return o-new Date(s).getTime()>3e5}return!0}function He(e){pe.currentReferenceMsg=e,pe.currentReferenceMsg.content.referenceContent=null,Object.assign(pe.currentReferenceMsg,{chatType:pe.currentSessionItem.chatType,receiver:pe.currentSessionItem.receiver,receiverAvatar:pe.currentSessionItem.avatar,receiverName:pe.currentSessionItem.name})}function Re(e,t){var n;"reply"!==e?"relay"===e&&(null==(n=ke.value)||n.click()):He(t)}function Be(e,t){const n=pe.msgList.find((e=>e.id===we.value));fe({checkedIds:e,remark:t,content:n.content})}return Q(de,(()=>{Ie()}),"top",(()=>{Te.value=!1})),o((()=>pe.id),(e=>{e&&(pe.currentReferenceMsg=null,Object.assign(_e,{page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")}),Ie())}),{immediate:!0}),o((()=>pe.isAppendMsg),(e=>{e&&(ge([pe.currentMsg,...pe.msgList]),async function(){var e;null==(e=de.value)||e.scrollTo({top:0,behavior:"auto"})}(),pe.isAppendMsg=!1)}),{immediate:!0}),(e,t)=>{var n;return s(),i("div",{class:r(["chat-main",{"home-bg":!a(pe).id}]),ref_key:"chatMainRef",ref:de,style:l(a(Ce))},[c(a(M),{"show-toolbar-tooltip":"","render-toolbar":xe},{default:u((()=>[(s(!0),i(m,null,d(a(pe).msgList,((e,t)=>{var n,o;return s(),i(m,{key:e.id},[je(e)?(s(),i("div",{key:0,class:r(["message-item",{"message-item--mine":e.sender==a(pe).userInfo.id}])},[De(e,t)?(s(),i("p",V,p(e.__sendTime),1)):g("v-if",!0),Ae(e,"system")||"WITHDRAWN"===e.status?(s(),i(m,{key:1},[Ae(e,"system")?(s(),f(q,{key:0,data:e},null,8,["data"])):g("v-if",!0),"WITHDRAWN"===e.status?(s(),i("p",Z,[v("span",null,p(e.sender==a(pe).userInfo.id?(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.67"))||"你":e.senderName)+((null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.68"))||"撤回了一条消息"),1),Ee(e)?(s(),f(a(w),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){pe.currentReEditMsg=e}(e)},{default:u((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.69"))||"重新编辑")]})),_:2},1032,["onClick"])):g("v-if",!0)])):g("v-if",!0)],64)):(s(),i("div",ee,[c(P,{"user-id":e.sender,placement:e.sender==a(pe).userInfo.id?"left":"right"},{trigger:u((()=>[c(a(k),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id","placement"]),e.content?(s(),i("div",te,[v("div",ne,[v("span",{class:"name","data-time":e.__time},p(a(ye)?e.senderName:""),9,oe)]),v("div",{class:r(["content",{emoji:e.content.chatMessageType===a(A).EMOJI&&!e.content.referenceContent,template:e.content.chatMessageType===a(A).TEMPLATE,"template--3":ze(e.content),"audio-video":a(z)(e.content),file:e.content.chatMessageType===a(A).FILE}]),onContextmenu:h((t=>Le(t,e.id)),["prevent"])},[Se(e)?(s(),i(m,{key:0},[e.content.referenceContent?(s(),i("div",ie,[v("span",null,p(e.content.referenceContent.senderName)+":",1),v("pre",{innerHTML:a(D)(e.content.referenceContent.content)},null,8,re)])):g("v-if",!0),e.content.chatMessageType===a(A).EMOJI?(s(),i("img",{key:1,class:r([e.content.referenceContent?"emoji--min":"emoji--big"]),src:a(J).findEmoji(e.__content)},null,10,ae)):(s(),i("pre",{key:2,innerHTML:e.__content},null,8,le))],64)):g("v-if",!0),be(e)?(s(),i("pre",{key:1,innerHTML:e.__content},null,8,ce)):g("v-if",!0),Ae(e,"template")?(s(),f(q,{key:2,data:e},null,8,["data"])):g("v-if",!0),e.content.chatMessageType===a(A).IMAGE?(s(),f(a(_),{key:3,width:"240",src:e.__content},null,8,["src"])):g("v-if",!0),a(z)(e.content)?(s(),i(m,{key:4},[c(a(C),{class:r({"is-audio":e.content.chatMessageType===a(A).AUDIO}),component:e.content.chatMessageType===a(A).AUDIO?a(X):a(F)},null,8,["class","component"]),v("span",ue,p(a(H)(e.__content)),1)],64)):g("v-if",!0),e.content.chatMessageType===a(A).FILE?(s(),f(a(x),{key:5,"wrap-item":!1},{default:u((()=>[c(a(C),{class:"icon-file",size:"40",component:a(G)},null,8,["component"]),c(a(x),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:u((()=>[v("span",null,p(e.__content),1),v("span",me,p(e.__size),1)])),_:2},1024)])),_:2},1024)):g("v-if",!0),c(a(I),{class:"quick-menu"},{default:u((()=>[a(z)(e.content)?g("v-if",!0):(s(),i(m,{key:0},[g(' <n-button quaternary size="tiny">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t\t\t\t</n-button> '),c(a(w),{quaternary:"",size:"tiny",onClick:()=>He(e)},{icon:u((()=>[c(a(C),{size:"17",component:a(K)},null,8,["component"])])),_:2},1032,["onClick"])],64)),c(a(w),{quaternary:"",size:"tiny",onClick:t=>Le(t,e.id)},{icon:u((()=>[c(a(C),{size:"14",component:a(Y)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,se)])):g("v-if",!0)]))],2)):g("v-if",!0)],64)})),128))])),_:1}),c(a(W),{ref_key:"contextmenuRef",ref:he,show:Te.value,"onUpdate:show":t[0]||(t[0]=e=>Te.value=e),position:Me.value,id:we.value,onSelect:Re},null,8,["show","position","id"]),c(U,{title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:Be},{trigger:u((()=>{var e;return[v("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:ke},(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发",512)]})),_:1})],6)}}});export{de as default};
1
+ import{defineComponent as e,ref as t,computed as n,watch as o,openBlock as s,createElementBlock as i,normalizeClass as r,unref as a,normalizeStyle as l,createVNode as c,withCtx as u,Fragment as m,renderList as d,toDisplayString as p,createCommentVNode as g,createBlock as v,createElementVNode as f,createTextVNode as y,withModifiers as h,nextTick as T}from"vue";import{NImageGroup as M,NButton as w,NAvatar as k,NImage as _,NIcon as C,NSpace as x,NButtonGroup as I,NTooltip as L}from"naive-ui";import{format as j}from"date-fns";import{getHistoryRecordApi as E,readMessageApi as S}from"../api/index.js";import{useData as b}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 z,simplifyMessage as D,getAVTime as H,downloadFile as R}from"../utils/index.js";import{first as N,last as B,toString as O}from"lodash-es";import"trtc-sdk-v5";import P from"./PersonProfile.vue.js";import q from"./MessageTemplate.vue.js";import J from"./MessageEvent.vue.js";import{emojis as W}from"../utils/emoji.js";import U from"./ContextMenu.js";import X 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 F,VideocamOutline as G,DocumentSharp as K,ChatbubbleEllipsesOutline as V,EllipsisHorizontal as Y,ArrowDownSharp as $}from"@vicons/ionicons5";import{useScrollLoading as Q}from"../../../../shared/hooks/useScrollLoading.js";const Z={key:0,class:"tip-text"},ee={key:1,class:"tip-text"},te={key:2,class:"message-box"},ne={key:0,class:"content-box"},oe={class:"name-box"},se=["data-time"],ie=["onContextmenu"],re={key:0,class:"reference-content"},ae=["innerHTML"],le=["src"],ce=["innerHTML"],ue=["innerHTML"],me={style:{"margin-left":"8px"}},de={class:"size"};var pe=e({__name:"ChatMain",setup(e){const pe=t(),{state:ge,setMsgList:ve,relayMessage:fe,setCurrentSessionItem:ye,isGroupChat:he}=b(),Te=t(),Me=t(!1),we=t({left:0,top:0}),ke=t(),_e=t(),Ce={page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")},xe=n((()=>({"--c-tip-top":he.value?"1px":"-20px","--c-tip-gap":he.value?"10px":"0px"})));function Ie({nodes:e}){var t,n;const{_ctx:o}=null==(t=e.download)?void 0:t.children,s=o?null==(n=null==o?void 0:o.proxy)?void 0:n.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,c(L,null,{trigger:()=>c(C,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:$,onClick:()=>s&&R(s,"img")},null),default:()=>{var e;return(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.102"))||"下载"}}),e.close]}async function Le(){try{if(!Ce.hasMore)return;Ce.page++;const e=await E({sessionKey:ge.currentSessionItem.sessionKey,page:Ce.page,lastSendTime:Ce.lastSendTime});if(!Array.isArray(e)||0===e.length)return Ce.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=N(e).id;Ce.lastSendTime=B(e).sendTime,ve(Ce.page>1?[...ge.msgList,...e]:e),1===Ce.page&&ge.currentSessionItem.unreadNum&&(await S({chatType:ge.currentSessionItem.chatType,messageIdSet:[t],receiver:ge.userInfo.id,sender:ge.currentSessionItem.receiver}),ye({unreadNum:0}))}catch(e){console.log(e)}}async function je(e,t){ke.value=t,async function(e){var t,n,o,s,i,r;Me.value=!0,await T();const{clientX:a,clientY:l}=e,{width:c=0,height:u=0,left:m=0,top:d=0}=(null==(t=pe.value)?void 0:t.getBoundingClientRect())||{},p=null!=(s=null==(o=null==(n=Te.value)?void 0:n.$el)?void 0:o.getBoundingClientRect().height)?s:220,g=null!=(r=null==(i=pe.value)?void 0:i.scrollTop)?r:0,v=5,f={};a<=m+c/2?f.left=a-m+v+"px":f.right=m+c-a-v+"px";l-d<p/2?f.top=g+v+"px":d+u-l<=p/2?f.bottom=Math.abs(g)+v+"px":f.top=g+l-d-p/2+"px";we.value=f}(e)}function Ee(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function Se(e){const{chatMessageType:t}=e.content;return e.sender===ge.userInfo.id&&Date.now()-new Date(e.sendTime).getTime()<864e5&&[A.TEXT,A.EMOJI].includes(t)}function be(e){const{chatMessageType:t,msg:n=""}=e.content;if(t===A.BLEND){const e=O(n).match(/<img[^>]*>/gi);return!e||!e.length}return t&&[A.TEXT,A.EMOJI].includes(t)}function Ae(e){const{chatMessageType:t,msg:n=""}=e.content,o=O(n).match(/<img[^>]*>/gi);return t===A.BLEND&&o&&o.length}function ze(e,t){var n,o;const{chatMessageType:s,messageTemplate:i}=e.content;if(s===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(o=null==i?void 0:i.setting)?void 0:o.style.id)}function De(e){var t,n;const{chatMessageType:o,messageTemplate:s}=e;return o===A.TEMPLATE&&3==(null==(n=null==(t=null==s?void 0:s.setting)?void 0:t.style)?void 0:n.id)}function He(e,t){var n;const o=new Date(e.sendTime).getTime(),s=null==(n=ge.msgList[t+1])?void 0:n.sendTime;if(s){return o-new Date(s).getTime()>3e5}return!0}function Re(e){ge.currentReferenceMsg=e,ge.currentReferenceMsg.content.referenceContent=null,Object.assign(ge.currentReferenceMsg,{chatType:ge.currentSessionItem.chatType,receiver:ge.currentSessionItem.receiver,receiverAvatar:ge.currentSessionItem.avatar,receiverName:ge.currentSessionItem.name})}function Ne(e,t){var n;"reply"!==e?"relay"===e&&(null==(n=_e.value)||n.click()):Re(t)}function Be({checkedIds:e,remark:t}){const n=ge.msgList.find((e=>e.id===ke.value));fe({checkedIds:e,remark:t,content:n.content})}return Q(pe,(()=>{Le()}),"top",(()=>{Me.value=!1})),o((()=>ge.id),(e=>{e&&(ge.currentReferenceMsg=null,Object.assign(Ce,{page:0,hasMore:!0,lastSendTime:j(new Date,"yyyy-MM-dd HH:mm:ss")}),Le())}),{immediate:!0}),o((()=>ge.isAppendMsg),(e=>{e&&(ve([ge.currentMsg,...ge.msgList]),async function(){var e;null==(e=pe.value)||e.scrollTo({top:0,behavior:"auto"})}(),ge.isAppendMsg=!1)}),{immediate:!0}),(e,t)=>{var n;return s(),i("div",{class:r(["chat-main",{"home-bg":!a(ge).id}]),ref_key:"chatMainRef",ref:pe,style:l(a(xe))},[c(a(M),{"show-toolbar-tooltip":"","render-toolbar":Ie},{default:u((()=>[(s(!0),i(m,null,d(a(ge).msgList,((e,t)=>{var n,o,l;return s(),i(m,{key:e.id},[Ee(e)?(s(),i("div",{key:0,class:r(["message-item",{"message-item--mine":e.sender==a(ge).userInfo.id}])},[He(e,t)?(s(),i("p",Z,p(e.__sendTime),1)):g("v-if",!0),ze(e,"system")||"WITHDRAWN"===e.status||(null==(n=e.content)?void 0:n.chatMessageType)===a(A).EVENT?(s(),i(m,{key:1},[ze(e,"system")?(s(),v(q,{key:0,data:e},null,8,["data"])):g("v-if",!0),"WITHDRAWN"===e.status?(s(),i("p",ee,[f("span",null,p(e.sender==a(ge).userInfo.id?(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.67"))||"你":e.senderName)+((null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.68"))||"撤回了一条消息"),1),Se(e)?(s(),v(a(w),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){ge.currentReEditMsg=e}(e)},{default:u((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.69"))||"重新编辑")]})),_:2},1032,["onClick"])):g("v-if",!0)])):(s(),v(J,{key:2,data:e},null,8,["data"]))],64)):(s(),i("div",te,[c(P,{"user-id":e.sender,placement:e.sender==a(ge).userInfo.id?"left":"right"},{trigger:u((()=>[c(a(k),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id","placement"]),e.content?(s(),i("div",ne,[f("div",oe,[f("span",{class:"name","data-time":e.__time},p(a(he)?e.senderName:""),9,se)]),f("div",{class:r(["content",{emoji:e.content.chatMessageType===a(A).EMOJI&&!e.content.referenceContent,template:e.content.chatMessageType===a(A).TEMPLATE,"template--3":De(e.content),"audio-video":a(z)(e.content),file:e.content.chatMessageType===a(A).FILE}]),onContextmenu:h((t=>je(t,e.id)),["prevent"])},[be(e)?(s(),i(m,{key:0},[e.content.referenceContent?(s(),i("div",re,[f("span",null,p(e.content.referenceContent.senderName)+":",1),f("pre",{innerHTML:a(D)(e.content.referenceContent.content)},null,8,ae)])):g("v-if",!0),e.content.chatMessageType===a(A).EMOJI?(s(),i("img",{key:1,class:r([e.content.referenceContent?"emoji--min":"emoji--big"]),src:a(W).findEmoji(e.__content)},null,10,le)):(s(),i("pre",{key:2,innerHTML:e.__content},null,8,ce))],64)):g("v-if",!0),Ae(e)?(s(),i("pre",{key:1,innerHTML:e.__content},null,8,ue)):g("v-if",!0),ze(e,"template")?(s(),v(q,{key:2,data:e},null,8,["data"])):g("v-if",!0),e.content.chatMessageType===a(A).IMAGE?(s(),v(a(_),{key:3,width:"240",src:e.__content},null,8,["src"])):g("v-if",!0),a(z)(e.content)?(s(),i(m,{key:4},[c(a(C),{class:r({"is-audio":e.content.chatMessageType===a(A).AUDIO}),component:e.content.chatMessageType===a(A).AUDIO?a(F):a(G)},null,8,["class","component"]),f("span",me,p(a(H)(e.__content)),1)],64)):g("v-if",!0),e.content.chatMessageType===a(A).FILE?(s(),v(a(x),{key:5,"wrap-item":!1},{default:u((()=>[c(a(C),{class:"icon-file",size:"40",component:a(K)},null,8,["component"]),c(a(x),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:u((()=>[f("span",null,p(e.__content),1),f("span",de,p(e.__size),1)])),_:2},1024)])),_:2},1024)):g("v-if",!0),c(a(I),{class:"quick-menu"},{default:u((()=>[a(z)(e.content)?g("v-if",!0):(s(),i(m,{key:0},[g(' <n-button quaternary size="tiny">\n\t\t\t\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t</n-button> '),c(a(w),{quaternary:"",size:"tiny",onClick:()=>Re(e)},{icon:u((()=>[c(a(C),{size:"17",component:a(V)},null,8,["component"])])),_:2},1032,["onClick"])],64)),c(a(w),{quaternary:"",size:"tiny",onClick:t=>je(t,e.id)},{icon:u((()=>[c(a(C),{size:"14",component:a(Y)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,ie)])):g("v-if",!0)]))],2)):g("v-if",!0)],64)})),128))])),_:1}),c(a(U),{ref_key:"contextmenuRef",ref:Te,show:Me.value,"onUpdate:show":t[0]||(t[0]=e=>Me.value=e),position:we.value,id:ke.value,onSelect:Ne},null,8,["show","position","id"]),c(X,{title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:Be},{trigger:u((()=>{var e;return[f("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:_e},(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.45"))||"转发",512)]})),_:1})],6)}}});export{pe as default};
@@ -57,23 +57,27 @@ declare const _default: import("vue").DefineComponent<{}, {
57
57
  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<{}>>, {}>;
58
58
  PersonProfile: import("vue").DefineComponent<{
59
59
  userId: {
60
- type: StringConstructor;
61
- required: true;
60
+ type: (NumberConstructor | StringConstructor)[];
62
61
  };
63
62
  disabled: {
64
63
  type: BooleanConstructor;
65
64
  default: boolean;
66
65
  };
66
+ userInfo: {
67
+ type: import("vue").PropType<AnyObject>;
68
+ };
67
69
  }, {
68
70
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
69
71
  userId: {
70
- type: StringConstructor;
71
- required: true;
72
+ type: (NumberConstructor | StringConstructor)[];
72
73
  };
73
74
  disabled: {
74
75
  type: BooleanConstructor;
75
76
  default: boolean;
76
77
  };
78
+ userInfo: {
79
+ type: import("vue").PropType<AnyObject>;
80
+ };
77
81
  }>> & {
78
82
  onClose?: ((...args: any[]) => any) | undefined;
79
83
  }>>;
@@ -128,13 +132,15 @@ declare const _default: import("vue").DefineComponent<{}, {
128
132
  EyeOffOutline: 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<{}>>, {}>;
129
133
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
130
134
  userId: {
131
- type: StringConstructor;
132
- required: true;
135
+ type: (NumberConstructor | StringConstructor)[];
133
136
  };
134
137
  disabled: {
135
138
  type: BooleanConstructor;
136
139
  default: boolean;
137
140
  };
141
+ userInfo: {
142
+ type: import("vue").PropType<AnyObject>;
143
+ };
138
144
  }>> & {
139
145
  onClose?: ((...args: any[]) => any) | undefined;
140
146
  }, {
@@ -0,0 +1,137 @@
1
+ import { PropType } from 'vue';
2
+ import { AnyObject } from '../../../../shared/types';
3
+ declare const _default: import("vue").DefineComponent<{
4
+ data: {
5
+ type: PropType<AnyObject>;
6
+ required: true;
7
+ };
8
+ }, {
9
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
10
+ data: {
11
+ type: PropType<AnyObject>;
12
+ required: true;
13
+ };
14
+ }>> & {}>>;
15
+ state: {
16
+ orgId: string | number;
17
+ currentSessionItem: AnyObject;
18
+ id: string;
19
+ userInfo: AnyObject;
20
+ msgList: AnyObject[];
21
+ currentMsg: AnyObject;
22
+ isAppendMsg: boolean;
23
+ sessionList: AnyObject[];
24
+ isChangeSession: boolean;
25
+ updateSessionItem: AnyObject;
26
+ isUpdateSession: boolean;
27
+ currentReferenceMsg: AnyObject | null;
28
+ currentReEditMsg: AnyObject | null;
29
+ showVideo: boolean;
30
+ currentAVMsg: AnyObject;
31
+ currentGroupUser: AnyObject[];
32
+ showMultipleVideo: boolean;
33
+ };
34
+ inviter: import("vue").Ref<any>;
35
+ invitee: import("vue").Ref<any[]>;
36
+ isValidJSON: (str: string) => boolean;
37
+ getTask: (_id: number | string, arrRes: AnyObject[]) => () => Promise<unknown>;
38
+ getEventContent: (data: AnyObject) => Promise<void>;
39
+ NButton: any;
40
+ PersonProfile: import("vue").DefineComponent<{
41
+ userId: {
42
+ type: (NumberConstructor | StringConstructor)[];
43
+ };
44
+ disabled: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ userInfo: {
49
+ type: PropType<AnyObject>;
50
+ };
51
+ }, {
52
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
53
+ userId: {
54
+ type: (NumberConstructor | StringConstructor)[];
55
+ };
56
+ disabled: {
57
+ type: BooleanConstructor;
58
+ default: boolean;
59
+ };
60
+ userInfo: {
61
+ type: PropType<AnyObject>;
62
+ };
63
+ }>> & {
64
+ onClose?: ((...args: any[]) => any) | undefined;
65
+ }>>;
66
+ emit: (event: "close", ...args: any[]) => void;
67
+ state: {
68
+ orgId: string | number;
69
+ currentSessionItem: AnyObject;
70
+ id: string;
71
+ userInfo: AnyObject;
72
+ msgList: AnyObject[];
73
+ currentMsg: AnyObject;
74
+ isAppendMsg: boolean;
75
+ sessionList: AnyObject[];
76
+ isChangeSession: boolean;
77
+ updateSessionItem: AnyObject;
78
+ isUpdateSession: boolean;
79
+ currentReferenceMsg: AnyObject | null;
80
+ currentReEditMsg: AnyObject | null;
81
+ showVideo: boolean;
82
+ currentAVMsg: AnyObject;
83
+ currentGroupUser: AnyObject[];
84
+ showMultipleVideo: boolean;
85
+ };
86
+ openSession: (session: string | AnyObject) => Promise<void>;
87
+ showUserDetail: import("vue").Ref<boolean>;
88
+ showLargeAvatar: import("vue").Ref<boolean>;
89
+ showPhone: import("vue").Ref<boolean>;
90
+ userDetail: AnyObject;
91
+ info: {
92
+ label: string;
93
+ value: string;
94
+ key: string;
95
+ }[];
96
+ personInfo: import("vue").ComputedRef<{
97
+ label: string;
98
+ value: string;
99
+ key: string;
100
+ }[]>;
101
+ toOpenSession: () => Promise<void>;
102
+ updateShow: (value: boolean) => Promise<void>;
103
+ getContent: (info: AnyObject) => any;
104
+ onChange: (options: {
105
+ file: import("naive-ui").UploadFileInfo;
106
+ }) => Promise<void>;
107
+ NAvatar: any;
108
+ NPopover: any;
109
+ NButton: any;
110
+ NIcon: any;
111
+ ChatbubbleEllipses: 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<{}>>, {}>;
112
+ Close: 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<{}>>, {}>;
113
+ EyeOutline: 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<{}>>, {}>;
114
+ EyeOffOutline: 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<{}>>, {}>;
115
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
116
+ userId: {
117
+ type: (NumberConstructor | StringConstructor)[];
118
+ };
119
+ disabled: {
120
+ type: BooleanConstructor;
121
+ default: boolean;
122
+ };
123
+ userInfo: {
124
+ type: PropType<AnyObject>;
125
+ };
126
+ }>> & {
127
+ onClose?: ((...args: any[]) => any) | undefined;
128
+ }, {
129
+ disabled: boolean;
130
+ }>;
131
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
132
+ data: {
133
+ type: PropType<AnyObject>;
134
+ required: true;
135
+ };
136
+ }>>, {}>;
137
+ export default _default;
@@ -0,0 +1 @@
1
+ import e from"./MessageEvent.vue2.js";import r from"../../../../_virtual/_plugin-vue_export-helper.js";var t=r(e,[["__file","MessageEvent.vue"]]);export{t as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,openBlock as r,createElementBlock as n,unref as o,createBlock as i,withCtx as s,createVNode as a,createTextVNode as u,toDisplayString as l,Fragment as c,renderList as p,createCommentVNode as d,createElementVNode as m}from"vue";import{NButton as f}from"naive-ui";import v from"./PersonProfile.vue.js";import{useData as g}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{getUserDetailApi as y}from"../api/index.js";import"../utils/index.js";import{toString as h}from"lodash-es";import"trtc-sdk-v5";import{AsyncScheduler as w}from"../utils/asyncQueue.js";const k={key:0,class:"tip-text"},j={key:0},x=m("span",{style:{"margin-right":"5px"}},"邀请",-1),I={key:0},_={key:2},b=m("span",null,"加入群聊",-1);var O=e({__name:"MessageEvent",props:{data:{type:Object,required:!0}},setup(e){const m=e,{state:O}=g(),P=t(),z=t([]);function B(e,t){return()=>new Promise(((r,n)=>{y({userId:h(e)}).then((e=>{t.push(e),r(e)})).catch((e=>n(e)))}))}return async function(e){var t;const r=null==(t=null==e?void 0:e.content)?void 0:t.msg;if(!function(e){try{return JSON.parse(e),!0}catch(e){return!1}}(r))return;const{inviter:n,invitee:o=[]}=JSON.parse(r);if(!n||!o)return;try{if(n==O.userInfo.id)P.value=O.userInfo;else{const e=await y({userId:h(n)});(null==e?void 0:e.id)&&(P.value=e)}const e=new w,t=[];for(const r of o)r==O.userInfo.id?t.push(O.userInfo):e.add(B(r,t));e.waitForAll().then((()=>{z.value=t}))}catch(e){console.log("error ==>",e)}}(m.data),(e,t)=>{var m;return P.value&&z.value.length>0?(r(),n("p",k,[P.value.id==o(O).userInfo.id?(r(),n("span",j,(null==(m=window.getLanguageByCode)?void 0:m.call(window,"10010.1.67"))||"你")):(r(),i(v,{key:1,placement:"buttom","user-info":P.value},{trigger:s((()=>[a(o(f),{size:"tiny",text:"",style:{color:"var(--c-primary-color)","margin-right":"5px"}},{default:s((()=>[u(l(P.value.name),1)])),_:1})])),_:1},8,["user-info"])),x,(r(!0),n(c,null,p(z.value,((e,t)=>{var p;return r(),n(c,{key:e.id},[e.id==o(O).userInfo.id?(r(),n("span",I,(null==(p=window.getLanguageByCode)?void 0:p.call(window,"10010.1.67"))||"你")):(r(),i(v,{key:1,placement:"buttom","user-info":e},{trigger:s((()=>[a(o(f),{size:"tiny",text:"",style:{color:"var(--c-primary-color)","margin-right":"5px"}},{default:s((()=>[u(l(e.name),1)])),_:2},1024)])),_:2},1032,["user-info"])),t<=z.value.length-2?(r(),n("span",_,"、")):d("v-if",!0)],64)})),128)),b])):d("v-if",!0)}}});export{O as default};
@@ -32,7 +32,7 @@ declare const _default: import("vue").DefineComponent<{}, {
32
32
  }) => Promise<void>;
33
33
  trtc: TRTC;
34
34
  trtcProxy: import("vue").Ref<any>;
35
- voiceOpen: import("vue").Ref<boolean>;
35
+ voiceClose: import("vue").Ref<boolean>;
36
36
  isAudio: import("vue").ComputedRef<boolean>;
37
37
  isCall: import("vue").ComputedRef<boolean>;
38
38
  startTimer: () => void;
@@ -41,7 +41,7 @@ declare const _default: import("vue").DefineComponent<{}, {
41
41
  messageTypeText: import("vue").ComputedRef<"语音" | "视频">;
42
42
  timing: import("vue").Ref<string>;
43
43
  toggleVideo: () => Promise<void>;
44
- videocamOpen: import("vue").Ref<boolean>;
44
+ videocamClose: import("vue").Ref<boolean>;
45
45
  installEventHandlers: ({ handleError, handleRemoteUserEnter, handleRemoteAudioAvailable, handleRemoteUserExit, handleRemoteVideoAvailable }: {
46
46
  handleError: import("../../../../shared/types").AnyFn;
47
47
  handleRemoteUserEnter: import("../../../../shared/types").AnyFn;
@@ -59,7 +59,10 @@ declare const _default: import("vue").DefineComponent<{}, {
59
59
  isConnect: import("vue").Ref<boolean>;
60
60
  callUser: import("vue").ComputedRef<any>;
61
61
  title: import("vue").ComputedRef<string>;
62
- handleAddPerson: (checkedIds: string[]) => void;
62
+ handleAddPerson: ({ checkedIds, checkedOptions }: {
63
+ checkedIds: string[];
64
+ checkedOptions: AnyObject[];
65
+ }) => void;
63
66
  handleCall: () => void;
64
67
  handleEnter: () => Promise<void>;
65
68
  handleExit: () => Promise<void>;
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as o,ref as t,computed as n,onBeforeUnmount as l,openBlock as i,createElementBlock as a,withDirectives as s,toDisplayString as r,unref as d,vShow as c,createVNode as u,withCtx as m,Fragment as p,renderList as v,createCommentVNode as g,createTextVNode as w,nextTick as f}from"vue";import{NButton as h,NIcon as y}from"naive-ui";import k from"./ChatAdd.vue.js";import{Close as I,Mic as b,MicOff as A,Videocam as C,VideocamOff as V,Call as M,PersonAdd as _}from"@vicons/ionicons5";import{getUserDetailApi as x}from"../api/index.js";import"@vueuse/core";import{$message as L}from"../utils/index.js";import{xorBy as R}from"lodash-es";import{CHAT_TYPE as E,SUBSCRIBE_MESSAGE_TYPE as T}from"../constants/index.js";import"../../../../shared/utils/index.js";import"date-fns";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"../../../../shared/hooks/useScrollLoading.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{useVideo as B}from"../hooks/useVideo.js";import j from"trtc-sdk-v5";var S,$,H,U,z,N;const P={class:"video-wrapper video-wrapper--multiple"},D={class:"video-header"},O={key:0,class:"video-main"},Y={class:"video-main__left"},q=["data-name"],G={class:"video-bottom"},F={class:"btn-group"},J={class:"btn"},K=e("span",{class:"text"},(null==(S=window.getLanguageByCode)?void 0:S.call(window,"10010.1.104"))||"静音",-1),Q={class:"btn"},W=e("span",{class:"text"},(null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.105"))||"摄像头",-1),X=e("span",{class:"text"},(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.106"))||"结束会诊",-1),Z={class:"btn"},ee=e("span",{class:"text"},(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.107"))||"添加参会人",-1),oe={class:"video-main__right"},te=["id","data-name"],ne={class:"user"},le={class:"name"},ie={key:0,class:"tip"},ae={key:0,class:"calling-box"},se={key:1,class:"opt-btn"},re={class:"btn"},de=e("span",null,(null==(z=window.getLanguageByCode)?void 0:z.call(window,"10010.1.113"))||"拒接",-1),ce={class:"btn"},ue=e("span",null,(null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.114"))||"接听",-1);var me=o({__name:"MultipleVideo",setup(o){const S=t(),$=t([]),{state:H,sendMessage:U,trtc:z,trtcProxy:N,voiceOpen:me,isAudio:pe,isCall:ve,startTimer:ge,resetTimer:we,toggleAudio:fe,messageTypeText:he,timing:ye,toggleVideo:ke,videocamOpen:Ie,installEventHandlers:be,uninstallEventHandlers:Ae}=B(),Ce=t(!1),Ve=n((()=>ve.value?H.userInfo.name:H.currentAVMsg.sendName)),Me=n((()=>{if(!Ce.value)return"";const e=ve.value?`(${$.value.length+1}/${H.currentAVMsg.checkedIds.length+1})`:"";return`${Ve.value}发起的${he.value}会诊${e} ${ye.value}`}));function _e(e){console.log("checkedIds :>> ",e),H.currentAVMsg.checkedIds.push(...e),xe()}function xe(){var e;(null==(e=H.currentAVMsg.checkedIds)?void 0:e.length)&&H.currentAVMsg.checkedIds.forEach((e=>{U({chatType:E.SINGLE,content:{msg:H.currentAVMsg.chatMessageType+","+H.currentAVMsg.strRoomId,chatMessageType:T.AV_STATUS},receiver:e})})),Ce.value||Le()}async function Le(){const e=await j.isSupported();if(!e.result||!e.detail.isH264EncodeSupported||!e.detail.isH264DecodeSupported)return console.log("checkResult :>> ",e),void(H.showMultipleVideo=!1);try{if(await z.enterRoom({strRoomId:H.currentAVMsg.strRoomId,sdkAppId:parseInt(H.userInfo.sdkAppID),userId:H.userInfo.id,userSig:H.userInfo.userSig,proxy:N.value}),Ce.value=!0,ge(),be({handleError:$e,handleRemoteUserEnter:Be,handleRemoteAudioAvailable:Te,handleRemoteUserExit:Se,handleRemoteVideoAvailable:Ee}),await z.startLocalAudio(),pe.value)return;await z.startLocalVideo({view:S.value})}catch(e){console.log("error :>> ",e),L.error(e),H.showMultipleVideo=!1}}async function Re(){try{if(H.showMultipleVideo=!1,Ae({handleError:$e,handleRemoteUserEnter:Be,handleRemoteAudioAvailable:Te,handleRemoteUserExit:Se,handleRemoteVideoAvailable:Ee}),await z.exitRoom(),await z.stopLocalAudio(),pe.value)return;await z.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function Ee(e){const{userId:o,streamType:t}=e;try{t===j.TYPE.STREAM_TYPE_MAIN&&(await f(),await z.startRemoteVideo({userId:o,streamType:t,view:o}))}catch(e){console.log("error :>> ",e)}}async function Te(e){var o;const{userId:t}=e;if(t&&!(null==(o=$.value.map((e=>e.id)))?void 0:o.includes(t))){const e=await je(t);$.value.push({id:t,name:e})}}async function Be(e){const{userId:o}=e,t=await je(o);$.value.push({id:o,name:t}),ge()}async function je(e){const o=await x({userId:e});return(null==o?void 0:o.name)||""}function Se(e){console.log("event :>> 退房",e);const{userId:o}=e;$.value=R($.value,[{id:o,name:""}],"id")}function $e(e){console.log("error :>> ",e),H.showMultipleVideo=!1}return l((()=>{Re()})),(o,t)=>{var n,l,f,x,L,R;return i(),a("div",P,[e("div",D,[s(e("span",{class:"title"},r(d(Me)),513),[[c,Ce.value]]),u(d(h),{quaternary:"",circle:"",color:"#ffffffcc",onClick:Re},{icon:m((()=>[u(d(y),{component:d(I)},null,8,["component"])])),_:1})]),Ce.value?(i(),a("div",O,[e("div",Y,[e("div",{ref_key:"selfVideoRef",ref:S,class:"video-view","data-name":d(H).userInfo.name},null,8,q),e("div",G,[e("div",F,[e("div",J,[u(d(h),{text:"",color:d(me)?"#fff":"#000",onClick:d(fe)},{icon:m((()=>[u(d(y),{component:d(me)?d(b):d(A)},null,8,["component"])])),_:1},8,["color","onClick"]),K]),e("div",Q,[u(d(h),{text:"",color:d(Ie)?"#fff":"#000",disabled:d(pe),onClick:d(ke)},{icon:m((()=>[u(d(y),{component:d(Ie)?d(C):d(V)},null,8,["component"])])),_:1},8,["color","disabled","onClick"]),W]),e("div",{class:"btn",onClick:Re},[u(d(h),{circle:"",color:"#f17568",class:"btn--rotate"},{icon:m((()=>[u(d(y),{component:d(M)},null,8,["component"])])),_:1}),X]),u(k,{onComfirm:_e},{trigger:m((()=>[e("div",Z,[u(d(h),{text:"",color:"#fff"},{icon:m((()=>[u(d(y),{component:d(_)},null,8,["component"])])),_:1}),ee])])),_:1})])])]),e("div",oe,[(i(!0),a(p,null,v($.value,(e=>(i(),a("div",{key:e.id,id:e.id,class:"video-view","data-name":e.name},null,8,te)))),128))])])):(i(),a(p,{key:1},[e("div",ne,[e("span",le,r(d(Ve))+((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.108"))||"发起的")+r(d(he))+((null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.109"))||"会议"),1),d(ve)?g("v-if",!0):(i(),a("span",ie,((null==(f=window.getLanguageByCode)?void 0:f.call(window,"10010.1.110"))||"邀请你加入")+r(d(he))+((null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.109"))||"会议"),1))]),d(ve)?(i(),a("div",ae,[u(k,{onComfirm:_e,disabledIds:d(H).currentAVMsg.checkedIds},{trigger:m((()=>[u(d(h),{size:"large",circle:"",color:"#000"},{icon:m((()=>[u(d(y),{component:d(_)},null,8,["component"])])),_:1})])),_:1},8,["disabledIds"]),e("p",null,((null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.111"))||"已邀请共")+r(d(H).currentAVMsg.checkedIds.length)+((null==(R=window.getLanguageByCode)?void 0:R.call(window,"10010.1.40"))||"人"),1),u(d(h),{size:"large",strong:"",round:"",type:"primary",onClick:xe},{default:m((()=>{var e;return[w((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.112"))||"开始会诊")]})),_:1}),g(' <div class="btn-box">\r\n\t\t\t\t\t\t<n-button color="#000" round>\r\n\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t<n-icon :component="Mic" />\r\n\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t</n-button>\r\n\t\t\t\t\t\t<n-button color="#000" round>\r\n\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t<n-icon :component="Videocam" />\r\n\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t</n-button>\r\n\t\t\t\t\t</div> ')])):(i(),a("div",se,[e("div",re,[u(d(h),{circle:"",color:"#f17568",class:"btn--rotate",onClick:t[0]||(t[0]=()=>d(H).showMultipleVideo=!1)},{icon:m((()=>[u(d(y),{size:"30",component:d(M)},null,8,["component"])])),_:1}),de]),e("div",ce,[u(d(h),{circle:"",color:"#2ac98b",onClick:Le},{icon:m((()=>[u(d(y),{size:"30",component:d(M)},null,8,["component"])])),_:1}),ue])]))],64))])}}});export{me as default};
1
+ import{createElementVNode as e,defineComponent as o,ref as n,computed as l,onBeforeUnmount as i,openBlock as a,createElementBlock as t,withDirectives as s,toDisplayString as d,unref as c,vShow as r,createVNode as u,withCtx as m,Fragment as v,renderList as p,createCommentVNode as g,createTextVNode as w,nextTick as f}from"vue";import{NButton as h,NIcon as y}from"naive-ui";import k from"./ChatAdd.vue.js";import{Close as I,Mic as C,MicOff as A,Videocam as b,VideocamOff as V,Call as _,PersonAdd as M}from"@vicons/ionicons5";import{getUserDetailApi as x}from"../api/index.js";import"@vueuse/core";import{$message as L}from"../utils/index.js";import{xorBy as R}from"lodash-es";import{CHAT_TYPE as E,SUBSCRIBE_MESSAGE_TYPE as T}from"../constants/index.js";import"../../../../shared/utils/index.js";import"date-fns";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"../../../../shared/hooks/useScrollLoading.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{useVideo as B}from"../hooks/useVideo.js";import j from"trtc-sdk-v5";var S,$,H,U,z,N;const P={class:"video-wrapper video-wrapper--multiple"},D={class:"video-header"},Y={key:0,class:"video-main"},q={class:"video-main__left"},G=["data-name"],O={class:"video-bottom"},F={class:"btn-group"},J={class:"btn"},K=e("span",{class:"text"},(null==(S=window.getLanguageByCode)?void 0:S.call(window,"10010.1.104"))||"静音",-1),Q={class:"btn"},W=e("span",{class:"text"},(null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.105"))||"摄像头",-1),X=e("span",{class:"text"},(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.106"))||"结束会诊",-1),Z={class:"btn"},ee=e("span",{class:"text"},(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.107"))||"添加参会人",-1),oe={class:"video-main__right"},ne=["id","data-name"],le={class:"user"},ie={class:"name"},ae={key:0,class:"tip"},te={key:0,class:"calling-box"},se={class:"btn-box"},de={key:1,class:"opt-btn"},ce={class:"btn"},re=e("span",null,(null==(z=window.getLanguageByCode)?void 0:z.call(window,"10010.1.113"))||"拒接",-1),ue={class:"btn"},me=e("span",null,(null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.114"))||"接听",-1);var ve=o({__name:"MultipleVideo",setup(o){const S=n(),$=n([]),{state:H,sendMessage:U,trtc:z,trtcProxy:N,voiceClose:ve,isAudio:pe,isCall:ge,startTimer:we,resetTimer:fe,toggleAudio:he,messageTypeText:ye,timing:ke,toggleVideo:Ie,videocamClose:Ce,installEventHandlers:Ae,uninstallEventHandlers:be}=B(),Ve=n(!1),_e=l((()=>ge.value?H.userInfo.name:H.currentAVMsg.sendName)),Me=l((()=>{if(!Ve.value)return"";const e=ge.value?`(${$.value.length+1}/${H.currentAVMsg.checkedIds.length+1})`:"";return`${_e.value}发起的${ye.value}会诊${e} ${ke.value}`}));function xe({checkedIds:e,checkedOptions:o}){console.log("checkedIds :>> ",e,o),H.currentAVMsg.checkedIds.push(...e),Le()}function Le(){var e;(null==(e=H.currentAVMsg.checkedIds)?void 0:e.length)&&H.currentAVMsg.checkedIds.forEach((e=>{U({chatType:E.SINGLE,content:{msg:H.currentAVMsg.chatMessageType+","+H.currentAVMsg.strRoomId,chatMessageType:T.AV_STATUS},receiver:e})})),Ve.value||Re()}async function Re(){const e=await j.isSupported();if(!e.result||!e.detail.isH264EncodeSupported||!e.detail.isH264DecodeSupported)return console.log("checkResult :>> ",e),void(H.showMultipleVideo=!1);try{if(await z.enterRoom({strRoomId:H.currentAVMsg.strRoomId,sdkAppId:parseInt(H.userInfo.sdkAppID),userId:H.userInfo.id,userSig:H.userInfo.userSig,proxy:N.value}),Ve.value=!0,we(),Ae({handleError:He,handleRemoteUserEnter:je,handleRemoteAudioAvailable:Be,handleRemoteUserExit:$e,handleRemoteVideoAvailable:Te}),await z.startLocalAudio({mute:ve.value}),pe.value)return;await z.startLocalVideo({view:S.value,mute:Ce.value})}catch(e){console.log("error :>> ",e),L.error(e),H.showMultipleVideo=!1}}async function Ee(){try{if(H.showMultipleVideo=!1,be({handleError:He,handleRemoteUserEnter:je,handleRemoteAudioAvailable:Be,handleRemoteUserExit:$e,handleRemoteVideoAvailable:Te}),await z.exitRoom(),await z.stopLocalAudio(),pe.value)return;await z.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function Te(e){const{userId:o,streamType:n}=e;try{n===j.TYPE.STREAM_TYPE_MAIN&&(await f(),await z.startRemoteVideo({userId:o,streamType:n,view:o}))}catch(e){console.log("error :>> ",e)}}async function Be(e){var o;const{userId:n}=e;if(n&&!(null==(o=$.value.map((e=>e.id)))?void 0:o.includes(n))){const e=await Se(n);$.value.push({id:n,name:e})}}async function je(e){const{userId:o}=e,n=await Se(o);$.value.push({id:o,name:n}),we()}async function Se(e){const o=await x({userId:e});return(null==o?void 0:o.name)||""}function $e(e){console.log("event :>> 退房",e);const{userId:o}=e;$.value=R($.value,[{id:o,name:""}],"id")}function He(e){console.log("error :>> ",e),H.showMultipleVideo=!1}return i((()=>{Ee()})),(o,n)=>{var l,i,f,x,L,R;return a(),t("div",P,[e("div",D,[s(e("span",{class:"title"},d(c(Me)),513),[[r,Ve.value]]),u(c(h),{quaternary:"",circle:"",color:"#ffffffcc",onClick:Ee},{icon:m((()=>[u(c(y),{component:c(I)},null,8,["component"])])),_:1})]),Ve.value?(a(),t("div",Y,[e("div",q,[e("div",{ref_key:"selfVideoRef",ref:S,class:"video-view","data-name":c(H).userInfo.name},null,8,G),e("div",O,[e("div",F,[e("div",J,[u(c(h),{text:"",color:c(ve)?"#000":"#fff",onClick:c(he)},{icon:m((()=>[u(c(y),{component:c(ve)?c(A):c(C)},null,8,["component"])])),_:1},8,["color","onClick"]),K]),e("div",Q,[u(c(h),{text:"",color:c(Ce)?"#000":"#fff",disabled:c(pe),onClick:c(Ie)},{icon:m((()=>[u(c(y),{component:c(Ce)?c(V):c(b)},null,8,["component"])])),_:1},8,["color","disabled","onClick"]),W]),e("div",{class:"btn",onClick:Ee},[u(c(h),{circle:"",color:"#f17568",class:"btn--rotate"},{icon:m((()=>[u(c(y),{component:c(_)},null,8,["component"])])),_:1}),X]),u(k,{onComfirm:xe,disabledIds:c(H).currentAVMsg.checkedIds},{trigger:m((()=>[e("div",Z,[u(c(h),{text:"",color:"#fff"},{icon:m((()=>[u(c(y),{component:c(M)},null,8,["component"])])),_:1}),ee])])),_:1},8,["disabledIds"])])])]),e("div",oe,[(a(!0),t(v,null,p($.value,(e=>(a(),t("div",{key:e.id,id:e.id,class:"video-view","data-name":e.name},null,8,ne)))),128))])])):(a(),t(v,{key:1},[e("div",le,[e("span",ie,d(c(_e))+((null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.108"))||"发起的")+d(c(ye))+((null==(i=window.getLanguageByCode)?void 0:i.call(window,"10010.1.109"))||"会议"),1),c(ge)?g("v-if",!0):(a(),t("span",ae,((null==(f=window.getLanguageByCode)?void 0:f.call(window,"10010.1.110"))||"邀请你加入")+d(c(ye))+((null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.109"))||"会议"),1))]),c(ge)?(a(),t("div",te,[u(k,{onComfirm:xe,disabledIds:c(H).currentAVMsg.checkedIds},{trigger:m((()=>[u(c(h),{size:"large",circle:"",color:"#000"},{icon:m((()=>[u(c(y),{component:c(M)},null,8,["component"])])),_:1})])),_:1},8,["disabledIds"]),e("p",null,((null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.111"))||"已邀请共")+d(c(H).currentAVMsg.checkedIds.length)+((null==(R=window.getLanguageByCode)?void 0:R.call(window,"10010.1.40"))||"人"),1),u(c(h),{size:"large",strong:"",round:"",type:"primary",onClick:Le},{default:m((()=>{var e;return[w((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.112"))||"开始会诊")]})),_:1}),e("div",se,[u(c(h),{color:"#000",round:"",onClick:n[0]||(n[0]=e=>ve.value=!c(ve))},{icon:m((()=>[u(c(y),{component:c(ve)?c(A):c(C)},null,8,["component"])])),_:1}),u(c(h),{color:"#000",round:"",onClick:n[1]||(n[1]=e=>Ce.value=!c(Ce)),disabled:c(pe)},{icon:m((()=>[u(c(y),{component:c(Ce)?c(V):c(b)},null,8,["component"])])),_:1},8,["disabled"])])])):(a(),t("div",de,[e("div",ce,[u(c(h),{circle:"",color:"#f17568",class:"btn--rotate",onClick:n[2]||(n[2]=()=>c(H).showMultipleVideo=!1)},{icon:m((()=>[u(c(y),{size:"30",component:c(_)},null,8,["component"])])),_:1}),re]),e("div",ue,[u(c(h),{circle:"",color:"#2ac98b",onClick:Re},{icon:m((()=>[u(c(y),{size:"30",component:c(_)},null,8,["component"])])),_:1}),me])]))],64))])}}});export{ve as default};
@@ -1,24 +1,29 @@
1
+ import { PropType } from 'vue';
1
2
  import { UploadFileInfo } from 'naive-ui';
2
3
  import { AnyObject } from '../../../../shared/types';
3
4
  declare const _default: import("vue").DefineComponent<{
4
5
  userId: {
5
- type: StringConstructor;
6
- required: true;
6
+ type: (NumberConstructor | StringConstructor)[];
7
7
  };
8
8
  disabled: {
9
9
  type: BooleanConstructor;
10
10
  default: boolean;
11
11
  };
12
+ userInfo: {
13
+ type: PropType<AnyObject>;
14
+ };
12
15
  }, {
13
16
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
14
17
  userId: {
15
- type: StringConstructor;
16
- required: true;
18
+ type: (NumberConstructor | StringConstructor)[];
17
19
  };
18
20
  disabled: {
19
21
  type: BooleanConstructor;
20
22
  default: boolean;
21
23
  };
24
+ userInfo: {
25
+ type: PropType<AnyObject>;
26
+ };
22
27
  }>> & {
23
28
  onClose?: ((...args: any[]) => any) | undefined;
24
29
  }>>;
@@ -73,13 +78,15 @@ declare const _default: import("vue").DefineComponent<{
73
78
  EyeOffOutline: 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<{}>>, {}>;
74
79
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "close"[], "close", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
75
80
  userId: {
76
- type: StringConstructor;
77
- required: true;
81
+ type: (NumberConstructor | StringConstructor)[];
78
82
  };
79
83
  disabled: {
80
84
  type: BooleanConstructor;
81
85
  default: boolean;
82
86
  };
87
+ userInfo: {
88
+ type: PropType<AnyObject>;
89
+ };
83
90
  }>> & {
84
91
  onClose?: ((...args: any[]) => any) | undefined;
85
92
  }, {
@@ -1 +1 @@
1
- import{defineComponent as t,ref as e,reactive as l,computed as n,openBlock as o,createBlock as a,unref as i,withCtx as r,renderSlot as s,createElementBlock as d,Fragment as c,withDirectives as u,createElementVNode as p,createVNode as v,createCommentVNode as g,toDisplayString as m,createTextVNode as w,renderList as y,vShow as f}from"vue";import{NPopover as k,NAvatar as h,NButton as b,NIcon as C}from"naive-ui";import{ChatbubbleEllipses as j,EyeOffOutline as L,EyeOutline as B,Close as I}from"@vicons/ionicons5";import{useData as _}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as x}from"../constants/index.js";import{openSessionApi as z,getUserDetailApi as N}from"../api/index.js";import"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";const D={class:"person-profile-main"},S={class:"left"},$={class:"profile"},E={class:"profile__text"},P={class:"right"},q={class:"right__content"},G={class:"label"},O={class:"content"};var T=t({__name:"PersonProfile",props:{userId:{type:String,required:!0},disabled:{type:Boolean,default:!1}},emits:["close"],setup(t,{emit:T}){var U,A,F,H,J,K,M,Q;const R=t,{state:V,openSession:W}=_(),X=e(!1),Y=e(!1),Z=e(!1),tt=l({}),et=[{label:(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.115"))||"机构",value:"",key:"orgName"},{label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.116"))||"姓名",value:"",key:"name"},{label:(null==(F=window.getLanguageByCode)?void 0:F.call(window,"10010.1.117"))||"归属科室",value:"",key:"deptName"},{label:(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.118"))||"业务科室",value:"",key:"businessDeptNames"},{label:(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.119"))||"手机号",value:"",key:"phone"},{label:(null==(K=window.getLanguageByCode)?void 0:K.call(window,"10010.1.120"))||"岗位",value:"",key:"post"},{label:(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.121"))||"工号",value:"",key:"jobId"},{label:(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.122"))||"性别",value:"",key:"orgName"}],lt=n((()=>(tt.id&&et.forEach((t=>{const{key:e}=t;t.value=tt[e]})),et)));async function nt(){X.value=!1;let t=V.sessionList.find((t=>t.receiver===R.userId));if(!t)try{t=await z({chatType:x.SINGLE,receiver:R.userId,sender:V.userInfo.id})}catch(t){console.log("error :>> ",t)}t&&W(t),T("close")}async function ot(t){if(!t)return;const e=await N({userId:R.userId});(null==e?void 0:e.id)?Object.assign(tt,e):tt.id=""}function at(t){const{key:e,value:l}=t;return"phone"!==e||Z.value?l:(l||"").replace(/(\d{3})\d{4}(\d{4})/,"$1****$2")}return(e,l)=>(o(),a(i(k),{raw:"",class:"person-profile-wrapper",show:X.value,"onUpdate:show":[l[3]||(l[3]=t=>X.value=t),ot],trigger:t.disabled?"manual":"click","show-arrow":!1,to:"body",shift:""},{trigger:r((()=>[s(e.$slots,"trigger")])),default:r((()=>[tt.id?(o(),d(c,{key:0},[u(p("div",D,[p("div",S,[p("div",$,[v(i(h),{src:tt.avatar,bordered:"",round:"",size:100,onClickCapture:l[0]||(l[0]=t=>Y.value=!0)},null,8,["src"]),g(' <n-upload abstract accept="image/*" @change="onChange">\r\n\t\t\t\t\t\t\t<n-upload-trigger #="{ handleClick }" abstract>\r\n\t\t\t\t\t\t\t\t<n-button\r\n\t\t\t\t\t\t\t\t\tcircle\r\n\t\t\t\t\t\t\t\t\tsecondary\r\n\t\t\t\t\t\t\t\t\tclass="edit-avatar"\r\n\t\t\t\t\t\t\t\t\tv-show="userDetail.id === state.userInfo.id"\r\n\t\t\t\t\t\t\t\t\t@click="handleClick"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t\t\t<n-icon size="16" color="#666666" :component="Camera" />\r\n\t\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t</n-button>\r\n\t\t\t\t\t\t\t</n-upload-trigger>\r\n\t\t\t\t\t\t</n-upload> '),p("div",E,[p("h4",null,m(tt.name),1),p("p",null,m(tt.orgName),1)]),v(i(b),{strong:"",secondary:"",onClick:nt},{default:r((()=>[v(i(C),{size:"13",color:"#666666",component:i(j),style:{"margin-right":"6px"}},null,8,["component"]),w(" 发消息 ")])),_:1})])]),p("div",P,[p("div",q,[(o(!0),d(c,null,y(i(lt),((t,e)=>(o(),d("div",{class:"info-item",key:e},[p("span",G,m(t.label),1),p("div",O,[p("span",null,m(at(t)),1),"phone"===t.key&&at(t)?(o(),a(i(C),{key:0,size:"16",color:"#666666",component:Z.value?i(L):i(B),style:{"margin-left":"10px"},onClick:l[1]||(l[1]=t=>Z.value=!Z.value)},null,8,["component"])):g("v-if",!0)])])))),128))])])],512),[[f,!Y.value]]),u(p("div",{class:"large-avatar",onClick:l[2]||(l[2]=t=>Y.value=!1)},[v(i(b),{circle:"",size:"small",secondary:""},{icon:r((()=>[v(i(C),{size:24,component:i(I),color:"#fff"},null,8,["component"])])),_:1}),v(i(h),{size:310,round:"",src:tt.avatar},null,8,["src"])],512),[[f,Y.value]])],64)):g("v-if",!0)])),_:3},8,["show","trigger"]))}});export{T as default};
1
+ import{defineComponent as t,ref as e,reactive as n,computed as l,openBlock as o,createBlock as a,unref as i,withCtx as s,renderSlot as r,createElementBlock as d,Fragment as u,withDirectives as c,createElementVNode as p,createVNode as v,createCommentVNode as g,toDisplayString as m,createTextVNode as w,renderList as f,vShow as y}from"vue";import{NPopover as k,NAvatar as b,NButton as h,NIcon as C}from"naive-ui";import{ChatbubbleEllipses as I,EyeOffOutline as j,EyeOutline as L,Close as B}from"@vicons/ionicons5";import{useData as _}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as x}from"../constants/index.js";import{openSessionApi as z,getUserDetailApi as N}from"../api/index.js";import"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";const D={class:"person-profile-main"},S={class:"left"},$={class:"profile"},E={class:"profile__text"},O={class:"right"},P={class:"right__content"},G={class:"label"},T={class:"content"};var U=t({__name:"PersonProfile",props:{userId:{type:[String,Number]},disabled:{type:Boolean,default:!1},userInfo:{type:Object}},emits:["close"],setup(t,{emit:U}){var q,A,F,H,J,K,M,Q;const R=t,{state:V,openSession:W}=_(),X=e(!1),Y=e(!1),Z=e(!1),tt=n({}),et=[{label:(null==(q=window.getLanguageByCode)?void 0:q.call(window,"10010.1.115"))||"机构",value:"",key:"orgName"},{label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.116"))||"姓名",value:"",key:"name"},{label:(null==(F=window.getLanguageByCode)?void 0:F.call(window,"10010.1.117"))||"归属科室",value:"",key:"deptName"},{label:(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.118"))||"业务科室",value:"",key:"businessDeptNames"},{label:(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.119"))||"手机号",value:"",key:"phone"},{label:(null==(K=window.getLanguageByCode)?void 0:K.call(window,"10010.1.120"))||"岗位",value:"",key:"post"},{label:(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.121"))||"工号",value:"",key:"jobId"},{label:(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.122"))||"性别",value:"",key:"orgName"}],nt=l((()=>(tt.id&&et.forEach((t=>{const{key:e}=t;t.value=tt[e]})),et)));async function lt(){var t;X.value=!1;let e=V.sessionList.find((t=>t.receiver===R.userId));if(!e)try{e=await z({chatType:x.SINGLE,receiver:R.userId||(null==(t=R.userInfo)?void 0:t.id),sender:V.userInfo.id})}catch(t){console.log("error :>> ",t)}e&&W(e),U("close")}async function ot(t){if(!t)return;if(!R.userId&&!R.userInfo)return;let e={};R.userId?e=await N({userId:R.userId}):R.userInfo&&(e=R.userInfo),(null==e?void 0:e.id)?Object.assign(tt,e):tt.id=""}function at(t){const{key:e,value:n}=t;return"phone"!==e||Z.value?n:(n||"").replace(/(\d{3})\d{4}(\d{4})/,"$1****$2")}return(e,n)=>(o(),a(i(k),{raw:"",class:"person-profile-wrapper",show:X.value,"onUpdate:show":[n[3]||(n[3]=t=>X.value=t),ot],trigger:t.disabled?"manual":"click","show-arrow":!1,to:"body",shift:""},{trigger:s((()=>[r(e.$slots,"trigger")])),default:s((()=>[tt.id?(o(),d(u,{key:0},[c(p("div",D,[p("div",S,[p("div",$,[v(i(b),{src:tt.avatar,bordered:"",round:"",size:100,onClickCapture:n[0]||(n[0]=t=>Y.value=!0)},null,8,["src"]),g(' <n-upload abstract accept="image/*" @change="onChange">\n\t\t\t\t\t\t\t<n-upload-trigger #="{ handleClick }" abstract>\n\t\t\t\t\t\t\t\t<n-button\n\t\t\t\t\t\t\t\t\tcircle\n\t\t\t\t\t\t\t\t\tsecondary\n\t\t\t\t\t\t\t\t\tclass="edit-avatar"\n\t\t\t\t\t\t\t\t\tv-show="userDetail.id === state.userInfo.id"\n\t\t\t\t\t\t\t\t\t@click="handleClick"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t\t<n-icon size="16" color="#666666" :component="Camera" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t</n-button>\n\t\t\t\t\t\t\t</n-upload-trigger>\n\t\t\t\t\t\t</n-upload> '),p("div",E,[p("h4",null,m(tt.name),1),p("p",null,m(tt.orgName),1)]),v(i(h),{strong:"",secondary:"",onClick:lt},{default:s((()=>[v(i(C),{size:"13",color:"#666666",component:i(I),style:{"margin-right":"6px"}},null,8,["component"]),w(" 发消息 ")])),_:1})])]),p("div",O,[p("div",P,[(o(!0),d(u,null,f(i(nt),((t,e)=>(o(),d("div",{class:"info-item",key:e},[p("span",G,m(t.label),1),p("div",T,[p("span",null,m(at(t)),1),"phone"===t.key&&at(t)?(o(),a(i(C),{key:0,size:"16",color:"#666666",component:Z.value?i(j):i(L),style:{"margin-left":"10px"},onClick:n[1]||(n[1]=t=>Z.value=!Z.value)},null,8,["component"])):g("v-if",!0)])])))),128))])])],512),[[y,!Y.value]]),c(p("div",{class:"large-avatar",onClick:n[2]||(n[2]=t=>Y.value=!1)},[v(i(h),{circle:"",size:"small",secondary:""},{icon:s((()=>[v(i(C),{size:24,component:i(B),color:"#fff"},null,8,["component"])])),_:1}),v(i(b),{size:310,round:"",src:tt.avatar},null,8,["src"])],512),[[y,Y.value]])],64)):g("v-if",!0)])),_:3},8,["show","trigger"]))}});export{U as default};