cnhis-design-vue 3.2.14-beta.21 → 3.2.14-beta.26

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 (222) hide show
  1. package/README.md +87 -87
  2. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  3. package/es/components/ai-chat/src/components/ChatPatient.vue2.js +1 -1
  4. package/es/components/base-search/src/index.vue2.js +1 -1
  5. package/es/components/big-table/src/BigTable.vue2.js +1 -1
  6. package/es/components/big-table/src/components/NoData.vue2.js +1 -1
  7. package/es/components/big-table/src/components/edit-form/edit-input.js +1 -1
  8. package/es/components/big-table/src/hooks/useNestTable.js +1 -1
  9. package/es/components/body-select/src/index.vue2.js +1 -1
  10. package/es/components/button-print/index.d.ts +4 -0
  11. package/es/components/button-print/src/ButtonPrint.vue.d.ts +4 -0
  12. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  13. package/es/components/button-print/src/components/EditFormat.vue2.js +1 -1
  14. package/es/components/button-print/src/components/IdentityVerification.vue2.js +1 -1
  15. package/es/components/button-print/src/components/NewPrintComponent.vue.d.ts +4 -0
  16. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  17. package/es/components/button-print/src/components/OldPrintComponent.vue2.js +1 -1
  18. package/es/components/button-print/src/components/Preview.vue2.js +1 -1
  19. package/es/components/button-print/src/utils/dialog.js +1 -1
  20. package/es/components/button-print/src/utils/print.js +1 -1
  21. package/es/components/card-reader-sdk/src/components/readCardDialog.vue2.js +1 -1
  22. package/es/components/card-reader-sdk/src/utils/readHealthCard.js +1 -1
  23. package/es/components/classification/src/components/search-filter/index.vue2.js +1 -1
  24. package/es/components/classification/src/components/set-classification/index.vue2.js +1 -1
  25. package/es/components/classification/src/components/table-modal/index.vue2.js +1 -1
  26. package/es/components/classification/src/index.vue2.js +1 -1
  27. package/es/components/default-page/src/constants/index.js +1 -1
  28. package/es/components/default-page/src/index.vue2.js +1 -1
  29. package/es/components/expand-field/src/components/FormBatchOptionsModal.vue2.js +1 -1
  30. package/es/components/expand-field/src/components/FormItemPerson.vue2.js +1 -1
  31. package/es/components/expand-field/src/components/PersonModal.vue2.js +1 -1
  32. package/es/components/expand-field/src/components/form.vue2.js +1 -1
  33. package/es/components/expand-field/src/index.vue2.js +1 -1
  34. package/es/components/expand-field/src/utils/constant.js +1 -1
  35. package/es/components/fabric-chart/index.d.ts +19 -2
  36. package/es/components/fabric-chart/src/FabricChart.vue.d.ts +19 -2
  37. package/es/components/fabric-chart/src/FabricChart.vue2.js +1 -1
  38. package/es/components/fabric-chart/src/components/PopupMenu.js +1 -1
  39. package/es/components/fabric-chart/src/components/PopupTip.vue.d.ts +13 -0
  40. package/es/components/fabric-chart/src/components/PopupTip.vue2.js +1 -1
  41. package/es/components/fabric-chart/src/components/useStyle.js +1 -1
  42. package/es/components/fabric-chart/src/constants/index.js +1 -1
  43. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +1 -1
  44. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.d.ts +1 -0
  45. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.js +1 -1
  46. package/es/components/fabric-chart/src/hooks/electrocardiogram/hooks/useDetailEvent.js +1 -1
  47. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
  48. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.d.ts +1 -0
  49. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
  50. package/es/components/fabric-chart/src/hooks/electrocardiogram/useMeasureInstrument.js +1 -1
  51. package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcess.js +1 -1
  52. package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcessChart.js +1 -1
  53. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
  54. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +1 -1
  55. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useOther.js +1 -1
  56. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.d.ts +1 -0
  57. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.js +1 -1
  58. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.d.ts +7 -1
  59. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.js +1 -1
  60. package/es/components/fabric-chart/src/hooks/temperature/useBottom.js +1 -1
  61. package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
  62. package/es/components/fabric-chart/src/hooks/temperature/useLeft.js +1 -1
  63. package/es/components/fabric-chart/src/hooks/temperature/useOther.js +1 -1
  64. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.d.ts +1 -0
  65. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +1 -1
  66. package/es/components/fabric-chart/src/hooks/temperature/useTop.js +1 -1
  67. package/es/components/fabric-chart/src/interface.d.ts +2 -0
  68. package/es/components/field-set/src/FieldColor.vue.d.ts +2 -2
  69. package/es/components/field-set/src/FieldColor.vue2.js +1 -1
  70. package/es/components/field-set/src/FieldFilter.vue.d.ts +2 -2
  71. package/es/components/field-set/src/FieldFilter.vue2.js +1 -1
  72. package/es/components/field-set/src/FieldSet.vue.d.ts +2 -2
  73. package/es/components/field-set/src/FieldSet.vue2.js +1 -1
  74. package/es/components/field-set/src/TableStyle.vue2.js +1 -1
  75. package/es/components/field-set/src/components/condition.vue2.js +1 -1
  76. package/es/components/field-set/src/components/edit-dialog.vue2.js +1 -1
  77. package/es/components/field-set/src/components/edit-filter.vue2.js +1 -1
  78. package/es/components/field-set/src/components/table-row.vue.d.ts +2 -2
  79. package/es/components/field-set/src/components/table-row.vue2.js +1 -1
  80. package/es/components/field-set/src/constants/filter.js +1 -1
  81. package/es/components/field-set/src/constants/index.js +1 -1
  82. package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +1 -1
  83. package/es/components/form-config/src/hooks/useLocale.js +1 -1
  84. package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
  85. package/es/components/form-render/src/components/renderer/switch.js +1 -1
  86. package/es/components/iho-chat/index.d.ts +20 -4
  87. package/es/components/iho-chat/src/Index.vue.d.ts +20 -4
  88. package/es/components/iho-chat/src/Index.vue2.js +1 -1
  89. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  90. package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
  91. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  92. package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +1 -0
  93. package/es/components/iho-chat/src/components/ChatHeader.vue2.js +1 -1
  94. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +1 -1
  95. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  96. package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
  97. package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
  98. package/es/components/iho-chat/src/components/ChatSet.vue2.js +1 -1
  99. package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
  100. package/es/components/iho-chat/src/components/MessageTemplate.vue.d.ts +1 -1
  101. package/es/components/iho-chat/src/components/MessageTemplate.vue2.js +1 -1
  102. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  103. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  104. package/es/components/iho-chat/src/components/SiderList.vue2.js +1 -1
  105. package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
  106. package/es/components/iho-chat/src/constants/index.d.ts +2 -1
  107. package/es/components/iho-chat/src/constants/index.js +1 -1
  108. package/es/components/iho-chat/src/hooks/useData.d.ts +3 -3
  109. package/es/components/iho-chat/src/hooks/useVideo.js +1 -1
  110. package/es/components/iho-chat/src/hooks/useWebSocket.js +1 -1
  111. package/es/components/iho-chat/src/utils/chatSock.js +1 -1
  112. package/es/components/iho-chat/src/utils/index.js +1 -1
  113. package/es/components/iho-table/src/plugins/dynamicFilterRenderPlugin/dynamicFilter.vue2.js +1 -1
  114. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
  115. package/es/components/iho-table/src/plugins/filterTextPlugin/filter.vue2.js +1 -1
  116. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/numberRendererPlugin.js +1 -1
  117. package/es/components/index.css +1 -1
  118. package/es/components/info-header/src/components/patientInfo/index.vue2.js +1 -1
  119. package/es/components/keyboard/src/components/NumberPanel.vue2.js +1 -1
  120. package/es/components/map/src/Map.vue2.js +1 -1
  121. package/es/components/picture-clipper/src/PictureClipper.vue2.js +1 -1
  122. package/es/components/quick-search/src/index.vue2.js +1 -1
  123. package/es/components/recommend-search/src/components/BaseSearch.js +1 -1
  124. package/es/components/recommend-search/src/components/RecommendInput.vue2.js +1 -1
  125. package/es/components/recommend-search/src/components/RecommendSelect.vue2.js +1 -1
  126. package/es/components/scale-view/index.d.ts +31 -0
  127. package/es/components/scale-view/src/ScaleView.vue.d.ts +13 -0
  128. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  129. package/es/components/scale-view/src/components/NoData.vue2.js +1 -1
  130. package/es/components/scale-view/src/components/composables/choose-common.js +1 -1
  131. package/es/components/scale-view/src/components/formitem/r-checkbox.d.ts +9 -0
  132. package/es/components/scale-view/src/components/formitem/r-checkbox.js +1 -1
  133. package/es/components/scale-view/src/components/formitem/r-input.d.ts +9 -0
  134. package/es/components/scale-view/src/components/formitem/r-input.js +1 -1
  135. package/es/components/scale-view/src/components/formitem/r-radio.d.ts +9 -0
  136. package/es/components/scale-view/src/components/formitem/r-radio.js +1 -1
  137. package/es/components/scale-view/src/components/formitem/r-sign.js +1 -1
  138. package/es/components/scale-view/src/components/formitem/standard-modal.js +1 -1
  139. package/es/components/scale-view/src/hooks/scaleview-computed.js +1 -1
  140. package/es/components/scale-view/src/hooks/scaleview-methods.js +1 -1
  141. package/es/components/scale-view/src/hooks/scaleview-props.d.ts +4 -0
  142. package/es/components/scale-view/src/hooks/scaleview-props.js +1 -1
  143. package/es/components/scale-view/src/hooks/scaleview-submit.js +1 -1
  144. package/es/components/scale-view/src/hooks/use-component.d.ts +72 -0
  145. package/es/components/scale-view/style/index.css +1 -1
  146. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  147. package/es/components/select-label/src/SelectLabel.vue2.js +1 -1
  148. package/es/components/select-label/src/components/label-classify.vue2.js +1 -1
  149. package/es/components/select-label/src/ihoLabel/IhoLabelFormContent.vue2.js +1 -1
  150. package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue2.js +1 -1
  151. package/es/components/select-label/src/ihoLabel/iho-label-classify.vue2.js +1 -1
  152. package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
  153. package/es/components/select-person/src/SelectPersonType.vue2.js +1 -1
  154. package/es/components/select-person/src/components/SearchOrgAndStaff.vue2.js +1 -1
  155. package/es/components/select-person/src/index.vue2.js +1 -1
  156. package/es/components/slider-tree/src/index.vue2.js +1 -1
  157. package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
  158. package/es/components/table-export-field/src/components/SaveProjectModal.vue2.js +1 -1
  159. package/es/components/table-export-field/src/index.vue2.js +1 -1
  160. package/es/components/table-filter/src/components/bi-filter/ValueCfg.vue2.js +1 -1
  161. package/es/components/table-filter/src/components/bi-filter/helpers/options.js +1 -1
  162. package/es/components/table-filter/src/components/bi-filter/index.vue2.js +1 -1
  163. package/es/components/table-filter/src/components/classify-filter/ValueCfg.vue2.js +1 -1
  164. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +1 -1
  165. package/es/components/table-filter/src/components/classify-filter/components/InputFilter.vue2.js +1 -1
  166. package/es/components/table-filter/src/components/classify-filter/components/InputNumberGroup.vue2.js +1 -1
  167. package/es/components/table-filter/src/components/classify-filter/helpers/options.js +1 -1
  168. package/es/components/table-filter/src/components/classify-filter/hooks/useDisplayCategory.js +1 -1
  169. package/es/components/table-filter/src/components/classify-filter/index.vue2.js +1 -1
  170. package/es/components/table-filter/src/components/render-widget/components/DateInner.vue2.js +1 -1
  171. package/es/components/table-filter/src/components/render-widget/components/DateOut.vue2.js +1 -1
  172. package/es/components/table-filter/src/components/render-widget/components/DateRangeInner.vue2.js +1 -1
  173. package/es/components/table-filter/src/components/render-widget/components/DateRangeOut.vue2.js +1 -1
  174. package/es/components/table-filter/src/components/render-widget/components/InputCustom.vue2.js +1 -1
  175. package/es/components/table-filter/src/components/render-widget/components/InputNumberGroup.vue2.js +1 -1
  176. package/es/components/table-filter/src/components/render-widget/components/LabelInner.vue2.js +1 -1
  177. package/es/components/table-filter/src/components/render-widget/components/SelectDynamicOption/index.vue2.js +1 -1
  178. package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +1 -1
  179. package/es/components/table-filter/src/components/render-widget/widgetCfgMaps.js +1 -1
  180. package/es/components/table-filter/src/tool/baseOptions.js +1 -1
  181. package/es/components/template-render/src/components/index.d.ts +23 -23
  182. package/es/components/tooth-bitmap/src/ToothBitmap.vue2.js +1 -1
  183. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue2.js +1 -1
  184. package/es/components/vod-chunk-upload/src/vod-upload-modal.js +1 -1
  185. package/es/shared/assets/img/ai__avatar.png.js +1 -1
  186. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  187. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  188. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  189. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  190. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  191. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  192. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  193. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  194. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  195. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  196. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  197. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  198. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  199. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  200. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  201. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  202. package/es/shared/assets/img/failure.png.js +1 -1
  203. package/es/shared/assets/img/logo.png.js +1 -1
  204. package/es/shared/assets/img/no-permission.png.js +1 -1
  205. package/es/shared/assets/img/nodata.png.js +1 -1
  206. package/es/shared/assets/img/notfound.png.js +1 -1
  207. package/es/shared/assets/img/qr.png.js +1 -1
  208. package/es/shared/assets/img/success.png.js +1 -1
  209. package/es/shared/assets/img/table_style_2.png.js +1 -1
  210. package/es/shared/assets/img/video.png.js +1 -1
  211. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  212. package/es/shared/assets/img/xb_big.png.js +1 -1
  213. package/es/shared/assets/img/xb_small.png.js +1 -1
  214. package/es/shared/package.json.js +1 -1
  215. package/package.json +2 -2
  216. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  217. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +0 -1
  218. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +0 -1
  219. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +0 -1
  220. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +0 -86
  221. package/es/shared/utils/fabricjs/index.d.ts +0 -6823
  222. package/es/shared/utils/tapable/index.d.ts +0 -139
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as s,openBlock as a,createElementBlock as r,normalizeStyle as c,unref as l,toDisplayString as u,createVNode as d,createCommentVNode as f,withCtx as m,Fragment as g,renderList as p,createBlock as h,createTextVNode as y,mergeProps as w,renderSlot as v,vShow as M}from"vue";import{NIcon as k,NTooltip as _,NPopover as C,NButton as E,NUpload as I,NUploadTrigger as T}from"naive-ui";import b from"./ChatAdd.vue.js";import{useData as x}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as j,AV_STATUS as L}from"../constants/index.js";import{uploadFileApi as z}from"../api/index.js";import{simplifyMessage as O,base64ToFile as R}from"../utils/index.js";import"trtc-sdk-v5";import{emojis as D}from"../utils/emoji.js";import{CloseCircleOutline as q,CallOutline as $,VideocamOutline as A}from"@vicons/ionicons5";import{xor as H,uniq as J,trim as V,cloneDeep as B}from"lodash-es";import{uuidGenerator as K}from"../../../../shared/utils/index.js";import{useStorage as F}from"@vueuse/core";var U,G;const N={key:0,class:"reference-content-box"},X={class:"reference-content"},S=["innerHTML"],P={class:"tool-box"},Q=e("i",{class:"chat--iconfont chat--icon-face"},null,-1),W=e("span",null,(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.51"))||"最近使用",-1),Y={class:"list-box",style:{"margin-bottom":"8px"}},Z=["src"],ee=e("span",null,(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.52"))||"默认表情",-1),ne={class:"list-box"},te=["src"],oe=e("i",{class:"chat--iconfont chat--icon-good"},null,-1),ie=e("i",{class:"chat--iconfont chat--icon-image"},null,-1),se=e("i",{class:"chat--iconfont chat--icon-folder"},null,-1),ae=["contenteditable"],re={class:"btn-box"},ce=e("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var le=n({__name:"ChatFooter",setup(n){const U=t(),{state:G,sendMessage:le,isGroupChat:ue,isEnded:de}=x(),fe=t(!1),me=t(""),ge=F("commonEmoticons",[]),pe=o((()=>({options:G.currentGroupUser,defaultValue:[G.userInfo]}))),he=o((()=>!me.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function ye(e,n=[]){const t=K(),o=[],i=n.length>0;G.showVideo||G.showMultipleVideo||(i?(o.push(...H(n,[G.userInfo.id])),Object.assign(G.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),G.showMultipleVideo=!0):le({content:{chatMessageType:e,msg:"",avStatus:L.IN_CALL}}))}function we(e){["Enter"].includes(e.key)&&(e.ctrlKey&&(e.preventDefault(),document.execCommand("InsertLineBreak")),function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e)||(e.preventDefault(),Ce()))}function ve(){var e;me.value=(null==(e=U.value)?void 0:e.innerHTML)||""}function Me(e){var n;ge.value.unshift(e),ge.value=J(ge.value).slice(0,26),null==(n=U.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${j.EMOJI} class="emoji--min" src=${D.findEmoji(e)} />`)}async function ke(e){const n=new FormData;return n.append("sender",G.userInfo.id),n.append("file",e),await z(n)}async function _e(e,n){const{file:t,name:o}=e.file,i=await ke(t);if(!i)return console.log("上传失败");Ee({chatMessageType:n,msg:n===j.FILE?o:i,url:i})}async function Ce(){const{innerHTML:e="",innerText:n="",outerText:t=""}=U.value||{};if(he.value)return console.log("请输入内容");let o=j.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),s=(t||[]).length;if(n&&0===s)i=n;else if(n||1!==s){if(o=j.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<s;e++)if(t[e].includes(`data-type="${j.EMOJI}"`)){const n=t[e].match(/data-msg="(.*?)"/);n&&n.length>1&&(i=i.replace(t[e],`[${n[1]}]`))}else{const n=t[e].match(/src\s*=\s*"([^"]*)"/);if(n&&n.length>1){const e=await R(n[1]);if(e){const t=await ke(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(j.EMOJI)){o=j.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=j.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await R(n[1]);if(e){const n=await ke(e);n&&(i=n)}}}}else i=V(n);i&&Ee({msg:i,chatMessageType:o,origin:"btn"})}async function Ee(e){const{chatMessageType:n=j.TEXT,msg:t,url:o,origin:i=""}=e,s={msg:t,chatMessageType:n};n===j.FILE&&(s.fileUrl=o),"btn"===i&&Ie(),G.currentReferenceMsg&&([j.TEXT,j.EMOJI,j.BLEND].includes(n)&&(s.referenceContent=B(G.currentReferenceMsg)),G.currentReferenceMsg=null),le({content:s})}function Ie(){U.value.innerHTML="",me.value=""}return i((()=>[G.currentReferenceMsg,G.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=U.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===j.TEXT?t:`<img data-msg=${t} data-type=${j.EMOJI} class="emoji--min" src=${D.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),G.currentReEditMsg=null}})),i((()=>G.id),(e=>{e&&Ie()})),(n,t)=>s((a(),r("section",{class:"chat-footer",style:c({cursor:l(G).id?"default":"not-allowed"})},[l(G).currentReferenceMsg?(a(),r("div",N,[e("div",X,[e("span",null,u(l(G).currentReferenceMsg.senderName)+":",1),e("pre",{innerHTML:l(O)(l(G).currentReferenceMsg.content)},null,8,S)]),d(l(k),{component:l(q),onClick:t[0]||(t[0]=()=>l(G).currentReferenceMsg=null)},null,8,["component"])])):f("v-if",!0),e("div",P,[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(C),{"content-class":"emoji-content",class:"emoji-wrapper",show:fe.value,"onUpdate:show":t[1]||(t[1]=e=>fe.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny"},{icon:m((()=>[Q])),_:1})])),default:m((()=>[l(ge).length>0?(a(),r(g,{key:0},[W,e("div",Y,[(a(!0),r(g,null,p(l(ge),(n=>(a(),h(l(_),{key:n,"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:()=>Me(n)},{icon:m((()=>[e("img",{src:l(D).findEmoji(n)},null,8,Z)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])],64)):f("v-if",!0),ee,e("div",ne,[(a(!0),r(g,null,p(l(D).default,(([n,t])=>(a(),h(l(_),{key:n,"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:()=>Me(n)},{icon:m((()=>[e("img",{src:t},null,8,te)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:m((()=>[y(" 表情 ")])),_:1}),d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>Ee({chatMessageType:l(j).EMOJI,msg:0}))},{icon:m((()=>[oe])),_:1})])),default:m((()=>[y(" 点赞 ")])),_:1}),d(l(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>_e(e,l(j).IMAGE))},{default:m((()=>[d(l(T),{abstract:""},{default:m((({handleClick:e})=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[ie])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传图片 ")])),_:2},1024)])),_:1})])),_:1}),d(l(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>_e(e,l(j).FILE))},{default:m((()=>[d(l(T),{abstract:""},{default:m((({handleClick:e})=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[se])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传文件 ")])),_:2},1024)])),_:1})])),_:1}),l(G).userInfo.sdkAppID?(a(),r(g,{key:0},[l(ue)?(a(),r(g,{key:0},[d(b,w(l(pe),{onComfirm:t[5]||(t[5]=e=>ye(l(j).AUDIO,e))}),{trigger:m((()=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny"},{icon:m((()=>[d(l(k),{size:"18",component:l($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1})])),_:1},16),d(b,w(l(pe),{onComfirm:t[6]||(t[6]=e=>ye(l(j).VIDEO,e))}),{trigger:m((()=>[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny"},{icon:m((()=>[d(l(k),{size:"20",component:l(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频会议 ")])),_:1})])),_:1},16)],64)):(a(),r(g,{key:1},[d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ye(l(j).AUDIO))},{icon:m((()=>[d(l(k),{size:"18",component:l($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1}),d(l(_),{"show-arrow":!1},{trigger:m((()=>[d(l(E),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ye(l(j).VIDEO))},{icon:m((()=>[d(l(k),{size:"20",component:l(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频通话 ")])),_:1})],64))],64)):f("v-if",!0),v(n.$slots,"footer")]),s(e("div",{ref_key:"inputRef",ref:U,class:"input-box",contenteditable:!l(de),onKeydown:we,onInput:ve},null,40,ae),[[M,l(G).id]]),e("div",re,[ce,d(l(E),{type:"primary",round:"",disabled:l(he),onClick:Ce},{default:m((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.60"))||"发送")]})),_:1},8,["disabled"])])],4)),[[M,l(G).id]])}});export{le as default};
1
+ import{createElementVNode as e,defineComponent as n,ref as t,computed as o,watch as i,withDirectives as a,openBlock as r,createElementBlock as l,normalizeStyle as s,unref as c,toDisplayString as u,createVNode as d,createCommentVNode as g,withCtx as f,Fragment as m,renderList as w,createBlock as p,createTextVNode as y,mergeProps as v,renderSlot as h,vShow as C}from"vue";import{NIcon as M,NTooltip as k,NPopover as _,NButton as E,NUpload as I,NUploadTrigger as L}from"naive-ui";import T from"./ChatAdd.vue.js";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as x,AV_STATUS as j}from"../constants/index.js";import{uploadFileApi as z}from"../api/index.js";import{simplifyMessage as B,base64ToFile as O}from"../utils/index.js";import{xor as R,uniq as D,trim as q,cloneDeep as $}from"lodash-es";import"trtc-sdk-v5";import{emojis as A}from"../utils/emoji.js";import{CloseCircleOutline as H,CallOutline as J,VideocamOutline as V}from"@vicons/ionicons5";import{uuidGenerator as K}from"../../../../shared/utils/index.js";import{useStorage as F}from"@vueuse/core";var U,G;const N={key:0,class:"reference-content-box"},X={class:"reference-content"},S=["innerHTML"],P={class:"tool-box"},Q=e("i",{class:"chat--iconfont chat--icon-face"},null,-1),W=e("span",null,(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.51"))||"最近使用",-1),Y={class:"list-box",style:{"margin-bottom":"8px"}},Z=["src"],ee=e("span",null,(null==(G=window.getLanguageByCode)?void 0:G.call(window,"10010.1.52"))||"默认表情",-1),ne={class:"list-box"},te=["src"],oe=e("i",{class:"chat--iconfont chat--icon-good"},null,-1),ie=e("i",{class:"chat--iconfont chat--icon-image"},null,-1),ae=e("i",{class:"chat--iconfont chat--icon-folder"},null,-1),re=["contenteditable"],le={class:"btn-box"},se=e("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ce=n({__name:"ChatFooter",setup(n){const U=t(),{state:G,sendMessage:ce,isGroupChat:ue,isEnded:de}=b(),ge=t(!1),fe=t(""),me=F("commonEmoticons",[]),we=o((()=>({options:G.currentGroupUser,defaultValue:[G.userInfo]}))),pe=o((()=>!fe.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function ye(e,n=[]){const t=K(),o=[],i=n.length>0;G.showVideo||G.showMultipleVideo||(i?(o.push(...R(n,[G.userInfo.id])),Object.assign(G.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),G.showMultipleVideo=!0):ce({content:{chatMessageType:e,msg:"",avStatus:j.IN_CALL}}))}function ve(e){["Enter"].includes(e.key)&&(e.ctrlKey&&(e.preventDefault(),document.execCommand("InsertLineBreak")),function(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}(e)||(e.preventDefault(),_e()))}function he(){var e;fe.value=(null==(e=U.value)?void 0:e.innerHTML)||""}function Ce(e){var n;me.value.unshift(e),me.value=D(me.value).slice(0,26),null==(n=U.value)||n.focus(),document.execCommand("insertHTML",!1,`<img data-msg=${e} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(e)} />`)}async function Me(e){const n=new FormData;return n.append("sender",G.userInfo.id),n.append("file",e),await z(n)}async function ke(e,n){const{file:t,name:o}=e.file,i=await Me(t);if(!i)return console.log("上传失败");Ee({chatMessageType:n,msg:n===x.FILE?o:i,url:i})}async function _e(){const{innerHTML:e="",innerText:n="",outerText:t=""}=U.value||{};if(pe.value)return console.log("请输入内容");let o=x.TEXT,i="";if(e){const t=e.match(/<img[^>]*>/gi),a=(t||[]).length;if(n&&0===a)i=n;else if(n||1!==a){if(o=x.BLEND,i=e,null==t?void 0:t.length)for(let e=0;e<a;e++)if(t[e].includes(`data-type="${x.EMOJI}"`)){const n=t[e].match(/data-msg="(.*?)"/);n&&n.length>1&&(i=i.replace(t[e],`[${n[1]}]`))}else{const n=t[e].match(/src\s*=\s*"([^"]*)"/);if(n&&n.length>1){const e=await O(n[1]);if(e){const t=await Me(e);i=i.replace(n[1],t||"")}}}}else if(e.includes(x.EMOJI)){o=x.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(i=n[1])}else{o=x.IMAGE;const n=e.match(/src\s*=\s*"([^"]*)"/);if(n){const e=await O(n[1]);if(e){const n=await Me(e);n&&(i=n)}}}}else i=q(n);i&&Ee({msg:i,chatMessageType:o,origin:"btn"})}async function Ee(e){const{chatMessageType:n=x.TEXT,msg:t,url:o,origin:i=""}=e,a={msg:t,chatMessageType:n};n===x.FILE&&(a.fileUrl=o),"btn"===i&&Ie(),G.currentReferenceMsg&&([x.TEXT,x.EMOJI,x.BLEND].includes(n)&&(a.referenceContent=$(G.currentReferenceMsg)),G.currentReferenceMsg=null),ce({content:a})}function Ie(){U.value.innerHTML="",fe.value=""}return i((()=>[G.currentReferenceMsg,G.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=U.value)||t.focus()),n){const{chatMessageType:e,msg:t}=n.content||{},o=e===x.TEXT?t:`<img data-msg=${t} data-type=${x.EMOJI} class="emoji--min" src=${A.findEmoji(t)} />`;document.execCommand("insertHTML",!1,o),G.currentReEditMsg=null}})),i((()=>G.id),(e=>{e&&Ie()})),(n,t)=>a((r(),l("section",{class:"chat-footer",style:s({cursor:c(G).id?"default":"not-allowed"})},[c(G).currentReferenceMsg?(r(),l("div",N,[e("div",X,[e("span",null,u(c(G).currentReferenceMsg.senderName)+":",1),e("pre",{innerHTML:c(B)(c(G).currentReferenceMsg.content)},null,8,S)]),d(c(M),{component:c(H),onClick:t[0]||(t[0]=()=>c(G).currentReferenceMsg=null)},null,8,["component"])])):g("v-if",!0),e("div",P,[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(_),{"content-class":"emoji-content",class:"emoji-wrapper",show:ge.value,"onUpdate:show":t[1]||(t[1]=e=>ge.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[Q])),_:1})])),default:f((()=>[c(me).length>0?(r(),l(m,{key:0},[W,e("div",Y,[(r(!0),l(m,null,w(c(me),(n=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:c(A).findEmoji(n)},null,8,Z)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])],64)):g("v-if",!0),ee,e("div",ne,[(r(!0),l(m,null,w(c(A).default,(([n,t])=>(r(),p(c(k),{key:n,"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:()=>Ce(n)},{icon:f((()=>[e("img",{src:t},null,8,te)])),_:2},1032,["onClick"])])),default:f((()=>[y(" "+u(n),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.53"))||"表情")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>Ee({chatMessageType:c(x).EMOJI,msg:0}))},{icon:f((()=>[oe])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.54"))||"点赞")]})),_:1}),d(c(I),{abstract:"",multiple:"",accept:"image/*",onChange:t[3]||(t[3]=e=>ke(e,c(x).IMAGE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ie])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.55"))||"上传图片")]})),_:2},1024)])),_:1})])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:t[4]||(t[4]=e=>ke(e,c(x).FILE))},{default:f((()=>[d(c(L),{abstract:""},{default:f((({handleClick:e})=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:e},{icon:f((()=>[ae])),_:2},1032,["onClick"])])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.56"))||"上传文件")]})),_:2},1024)])),_:1})])),_:1}),c(G).userInfo.sdkAppID?(r(),l(m,{key:0},[c(ue)?(r(),l(m,{key:0},[d(T,v(c(we),{onComfirm:t[5]||(t[5]=e=>ye(c(x).AUDIO,e))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1})])),_:1},16),d(T,v(c(we),{onComfirm:t[6]||(t[6]=e=>ye(c(x).VIDEO,e))}),{trigger:f((()=>[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny"},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.58"))||"视频会议")]})),_:1})])),_:1},16)],64)):(r(),l(m,{key:1},[d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[7]||(t[7]=()=>ye(c(x).AUDIO))},{icon:f((()=>[d(c(M),{size:"18",component:c(J)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.57"))||"语音通话")]})),_:1}),d(c(k),{"show-arrow":!1},{trigger:f((()=>[d(c(E),{quaternary:"",size:"tiny",onClick:t[8]||(t[8]=()=>ye(c(x).VIDEO))},{icon:f((()=>[d(c(M),{size:"20",component:c(V)},null,8,["component"])])),_:1})])),default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.59"))||"视频通话")]})),_:1})],64))],64)):g("v-if",!0),h(n.$slots,"footer")]),a(e("div",{ref_key:"inputRef",ref:U,class:"input-box",contenteditable:!c(de),onKeydown:ve,onInput:he},null,40,re),[[C,c(G).id]]),e("div",le,[se,d(c(E),{type:"primary",round:"",disabled:c(pe),onClick:_e},{default:f((()=>{var e;return[y((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.60"))||"发送")]})),_:1},8,["disabled"])])],4)),[[C,c(G).id]])}});export{ce as default};
@@ -23,6 +23,7 @@ declare const _default: import("vue").DefineComponent<{}, {
23
23
  isGroupLeader: import("vue").ComputedRef<boolean>;
24
24
  isEnded: import("vue").ComputedRef<boolean>;
25
25
  setCurrentSessionItem: (item: AnyObject) => void;
26
+ emit: (event: "template-click" | "unread-message-update" | "session-change" | "session-close", ...args: any[]) => void;
26
27
  showChatSet: import("vue").Ref<boolean>;
27
28
  showChatFile: import("vue").Ref<boolean>;
28
29
  chatFileType: import("vue").Ref<string>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as o,openBlock as i,createElementBlock as s,Fragment as r,unref as a,createElementVNode as n,createVNode as l,withCtx as c,toDisplayString as u,renderSlot as m,createTextVNode as d,normalizeProps as h,guardReactiveProps as p,createBlock as v,createCommentVNode as f}from"vue";import{NAvatar as g,NTooltip as w,NButton as _,NIcon as y,NPopconfirm as b}from"naive-ui";import{useData as j}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as C}from"../constants/index.js";import{updateStatusApi as k}from"../api/index.js";import{$message as z}from"../utils/index.js";import"trtc-sdk-v5";import q from"./PersonProfile.vue.js";import I from"./ChatSet.vue.js";import S from"./ChatFile.vue.js";import x from"./ChatRecord.vue.js";import D from"./ChatAdd.vue.js";import{PersonAddOutline as E,CloseOutline as U}from"@vicons/ionicons5";const G={key:0,class:"chat-header box-shadow"},P={class:"chat-header__left"},N={class:"name"},A={class:"chat-header__right"},F=n("i",{class:"chat--iconfont chat--icon-image"},null,-1),H=n("i",{class:"chat--iconfont chat--icon-folder"},null,-1),L=n("i",{class:"chat--iconfont chat--icon-list-search"},null,-1),R=n("i",{class:"chat--iconfont chat--icon-set"},null,-1);var V=e({__name:"ChatHeader",setup(e){const{state:V,isGroupChat:$,isGroupLeader:B,isEnded:J,setCurrentSessionItem:K}=j(),M=t(!1),O=t(!1),Q=t("image"),T=t(!1),W=o((()=>{const e=V.currentGroupUser.map((e=>e.id));return $.value?{mode:"join",disabledIds:e,disabled:J.value}:{mode:"create",defaultValue:V.currentGroupUser}}));function X(e){Q.value=e,O.value=!0}async function Y(){try{await k({id:V.currentSessionItem.id,status:C.ENDED}),K({status:C.ENDED}),z.success("当前会话已结束")}catch(e){console.log(e)}}return(e,t)=>(i(),s(r,null,[a(V).id?(i(),s("section",G,[n("div",P,[l(q,{"user-id":a(V).currentSessionItem.receiver,disabled:a($),placement:"bottom"},{trigger:c((()=>[l(a(g),{round:"",size:30,src:a(V).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-id","disabled"]),n("span",N,u(a(V).currentSessionItem.name),1)]),n("div",A,[m(e.$slots,"header"),l(a(w),{"show-arrow":!1,placement:"bottom"},{trigger:c((()=>[l(a(_),{quaternary:"",size:"tiny",onClick:t[0]||(t[0]=()=>X("image"))},{icon:c((()=>[F])),_:1})])),default:c((()=>[d(" 图片 ")])),_:1}),l(a(w),{"show-arrow":!1,placement:"bottom"},{trigger:c((()=>[l(a(_),{quaternary:"",size:"tiny",onClick:t[1]||(t[1]=()=>X("file"))},{icon:c((()=>[H])),_:1})])),default:c((()=>[d(" 文件 ")])),_:1}),l(D,h(p(a(W))),{trigger:c((()=>[l(a(w),{"show-arrow":!1,placement:"bottom"},{trigger:c((()=>[l(a(_),{quaternary:"",size:"tiny"},{icon:c((()=>[l(a(y),{size:"18",component:a(E)},null,8,["component"])])),_:1})])),default:c((()=>[d(" 添加成员 ")])),_:1})])),_:1},16),l(a(w),{"show-arrow":!1,placement:"bottom"},{trigger:c((()=>[l(a(_),{quaternary:"",size:"tiny",onClick:t[2]||(t[2]=()=>T.value=!0)},{icon:c((()=>[L])),_:1})])),default:c((()=>[d(" 聊天记录 ")])),_:1}),l(a(w),{"show-arrow":!1,placement:"bottom"},{trigger:c((()=>[l(a(_),{quaternary:"",size:"tiny",onClick:t[3]||(t[3]=()=>M.value=!0)},{icon:c((()=>[R])),_:1})])),default:c((()=>[d(" 聊天设置 ")])),_:1}),a($)&&a(B)?(i(),v(a(b),{key:0,onPositiveClick:Y},{trigger:c((()=>[l(a(w),{"show-arrow":!1,placement:"bottom"},{trigger:c((()=>[l(a(_),{quaternary:"",size:"tiny"},{icon:c((()=>[l(a(y),{size:"18",component:a(U)},null,8,["component"])])),_:1})])),default:c((()=>[d(" 结束聊天 ")])),_:1})])),default:c((()=>[d(" 是否确认结束群聊? ")])),_:1})):f("v-if",!0)])])):f("v-if",!0),l(I,{show:M.value,"onUpdate:show":t[4]||(t[4]=e=>M.value=e)},null,8,["show"]),l(S,{show:O.value,"onUpdate:show":t[5]||(t[5]=e=>O.value=e),type:Q.value,visible:O.value},null,8,["show","type","visible"]),l(x,{show:T.value,"onUpdate:show":t[6]||(t[6]=e=>T.value=e),visible:T.value},null,8,["show","visible"])],64))}});export{V as default};
1
+ import{defineComponent as e,ref as o,computed as t,openBlock as i,createElementBlock as a,Fragment as r,unref as n,createElementVNode as s,createVNode as l,withCtx as u,toDisplayString as c,renderSlot as d,createTextVNode as m,normalizeProps as v,guardReactiveProps as w,createBlock as h,createCommentVNode as p}from"vue";import{NAvatar as g,NTooltip as f,NButton as y,NIcon as _,NPopconfirm as C}from"naive-ui";import{useData as b}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as j}from"../constants/index.js";import{updateStatusApi as k}from"../api/index.js";import{$message as z}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import I from"./PersonProfile.vue.js";import S from"./ChatSet.vue.js";import q from"./ChatFile.vue.js";import L from"./ChatRecord.vue.js";import x from"./ChatAdd.vue.js";import{PersonAddOutline as B,CloseOutline as D}from"@vicons/ionicons5";const E={key:0,class:"chat-header box-shadow"},U={class:"chat-header__left"},G={class:"name"},P={class:"chat-header__right"},N=s("i",{class:"chat--iconfont chat--icon-image"},null,-1),A=s("i",{class:"chat--iconfont chat--icon-folder"},null,-1),F=s("i",{class:"chat--iconfont chat--icon-list-search"},null,-1),H=s("i",{class:"chat--iconfont chat--icon-set"},null,-1);var R=e({__name:"ChatHeader",setup(e){const{state:R,isGroupChat:V,isGroupLeader:$,isEnded:J,setCurrentSessionItem:K,emit:M}=b(),O=o(!1),Q=o(!1),T=o("image"),W=o(!1),X=t((()=>{const e=R.currentGroupUser.map((e=>e.id));return V.value?{mode:"join",disabledIds:e,disabled:J.value}:{mode:"create",defaultValue:R.currentGroupUser}}));function Y(e){T.value=e,Q.value=!0}async function Z(){try{await k({id:R.currentSessionItem.id,status:j.ENDED}),K({status:j.ENDED}),M("session-close",R.currentSessionItem),z.success("当前会话已结束")}catch(e){console.log(e)}}return(e,o)=>(i(),a(r,null,[n(R).id?(i(),a("section",E,[s("div",U,[l(I,{"user-id":n(R).currentSessionItem.receiver,disabled:n(V),placement:"bottom"},{trigger:u((()=>[l(n(g),{round:"",size:30,src:n(R).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-id","disabled"]),s("span",G,c(n(R).currentSessionItem.name),1)]),s("div",P,[d(e.$slots,"header"),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[0]||(o[0]=()=>Y("image"))},{icon:u((()=>[N])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.62"))||"图片")]})),_:1}),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[1]||(o[1]=()=>Y("file"))},{icon:u((()=>[A])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.63"))||"文件")]})),_:1}),l(x,v(w(n(X))),{trigger:u((()=>[l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny"},{icon:u((()=>[l(n(_),{size:"18",component:n(B)},null,8,["component"])])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.64"))||"添加成员")]})),_:1})])),_:1},16),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[2]||(o[2]=()=>W.value=!0)},{icon:u((()=>[F])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.65"))||"聊天记录")]})),_:1}),l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny",onClick:o[3]||(o[3]=()=>O.value=!0)},{icon:u((()=>[H])),_:1})])),default:u((()=>{var e;return[m((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.66"))||"聊天设置")]})),_:1}),n(V)&&n($)?(i(),h(n(C),{key:0,onPositiveClick:Z},{trigger:u((()=>[l(n(f),{"show-arrow":!1,placement:"bottom"},{trigger:u((()=>[l(n(y),{quaternary:"",size:"tiny"},{icon:u((()=>[l(n(_),{size:"18",component:n(D)},null,8,["component"])])),_:1})])),default:u((()=>[m(" 结束聊天 ")])),_:1})])),default:u((()=>[m(" 是否确认结束群聊? ")])),_:1})):p("v-if",!0)])])):p("v-if",!0),l(S,{show:O.value,"onUpdate:show":o[4]||(o[4]=e=>O.value=e)},null,8,["show"]),l(q,{show:Q.value,"onUpdate:show":o[5]||(o[5]=e=>Q.value=e),type:T.value,visible:Q.value},null,8,["show","type","visible"]),l(L,{show:W.value,"onUpdate:show":o[6]||(o[6]=e=>W.value=e),visible:W.value},null,8,["show","visible"])],64))}});export{R as default};
@@ -171,7 +171,7 @@ declare const _default: import("vue").DefineComponent<{}, {
171
171
  }>> & {}>>;
172
172
  describeBodyRef: import("vue").Ref<any>;
173
173
  showMore: import("vue").Ref<boolean>;
174
- emit: (event: "template-click" | "unread-message-update" | "session-change", ...args: any[]) => void;
174
+ emit: (event: "template-click" | "unread-message-update" | "session-change" | "session-close", ...args: any[]) => void;
175
175
  isOverflow: import("vue").ComputedRef<boolean>;
176
176
  setting: import("vue").ComputedRef<any>;
177
177
  serverSetting: import("vue").ComputedRef<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"trtc-sdk-v5";import{first as N,last as O,toString as B}from"lodash-es";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.46"))||"下载"}}),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=N(e).id;_e.lastSendTime=O(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=B(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=B(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 Ne(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((()=>[y(" 重新编辑 ")])),_: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">\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:()=>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:Ne},{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 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">\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:()=>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.70"))||"转发消息",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.98"))||"转发",512)]})),_:1})],6)}}});export{de as default};
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as a,ref as l,watch as t,openBlock as r,createBlock as o,unref as n,withCtx as s,createVNode as i,toDisplayString as u,resolveDynamicComponent as d,createElementBlock as c,Fragment as v,renderList as m,withDirectives as p,createTextVNode as 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"trtc-sdk-v5";import S from"../../../date-picker/index.js";import{useDebounceFn as B}from"@vueuse/core";import{format as E}from"date-fns";import"../../../../shared/utils/index.js";import{last as H}from"lodash-es";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=B(be,500),ye={page:0,hasMore:!0,lastSendTime:E(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=H(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()||E(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(S),{"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(S),{"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 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 +1 @@
1
- import{defineComponent as e,ref as s,computed as o,watch as a,nextTick as r,openBlock as t,createBlock as l,unref as n,normalizeStyle as i,withCtx as c,createVNode as u,createTextVNode as p,createElementVNode as f,createElementBlock as d,Fragment as m,renderList as v,toDisplayString as w,withDirectives as h,vShow as g}from"vue";import{NPopover as y,NButton as k,NIcon as j,NInput as _,NAvatar as x}from"naive-ui";import{SearchOutline as C}from"@vicons/ionicons5";import{useData as L}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{openSessionApi as R}from"../api/index.js";import"../utils/index.js";import"trtc-sdk-v5";import{useSearchUserList as S}from"../hooks/useSearchUserList.js";import U from"../../../default-page/index.js";const I=["onClick"],b={class:"user-info"};var z=e({__name:"ChatSearch",setup(e){const z=s(),D=s(),N=s(!1),B=s(""),{cssVars:E,state:G,openSession:T}=L(),{userList:V,handleInput:$}=S({wrapperRef:z,keywordRef:B}),q=o((()=>!V.value.length&&!!(B.value||"").replace(/^\s+|\s+$/g,"")));return a((()=>N.value),(async e=>{var s;e&&(await r(),null==(s=D.value)||s.focus())})),(e,s)=>(t(),l(n(y),{raw:"","content-class":"search-content",class:"search-wrapper",style:i(n(E)),show:N.value,"onUpdate:show":s[1]||(s[1]=e=>N.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:c((()=>[u(n(k),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:c((()=>[u(n(j),{component:n(C),color:"#ffffff80"},null,8,["component"])])),default:c((()=>[p(" 搜索联系人 ")])),_:1})])),default:c((()=>{var e;return[u(n(_),{ref_key:"inputRef",ref:D,size:"small",clearable:"",autofocus:"",value:B.value,"onUpdate:value":[s[0]||(s[0]=e=>B.value=e),n($)]},{prefix:c((()=>[u(n(j),{color:"#ffffff80",component:n(C)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),f("div",{class:"user-list-wrapper",ref_key:"listRef",ref:z},[(t(!0),d(m,null,v(n(V),(e=>(t(),d("div",{class:"user-item",key:e.id,onClick:()=>async function(e){N.value=!1;const s=await R({chatType:"SINGLE",receiver:e,sender:G.userInfo.id});T(s)}(e.id)},[u(n(x),{round:"",size:32,src:e.avatar},null,8,["src"]),f("div",b,[f("span",null,w(e.name),1),f("span",null,w(e.deptName),1),f("span",null,w(e.post),1)])],8,I)))),128)),h(u(n(U),{config:{title:" ",content:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[g,n(q)]])],512)]})),_:1},8,["style","show"]))}});export{z as default};
1
+ import{defineComponent as e,ref as o,computed as s,watch as a,nextTick as r,openBlock as t,createBlock as l,unref as n,normalizeStyle as i,withCtx as c,createVNode as u,createTextVNode as p,createElementVNode as f,createElementBlock as d,Fragment as m,renderList as v,toDisplayString as w,withDirectives as h,vShow as g}from"vue";import{NPopover as y,NButton as k,NIcon as j,NInput as _,NAvatar as x}from"naive-ui";import{SearchOutline as C}from"@vicons/ionicons5";import{useData as L}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{openSessionApi as R}from"../api/index.js";import"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as S}from"../hooks/useSearchUserList.js";import U from"../../../default-page/index.js";const I=["onClick"],b={class:"user-info"};var z=e({__name:"ChatSearch",setup(e){const z=o(),B=o(),D=o(!1),N=o(""),{cssVars:E,state:G,openSession:T}=L(),{userList:V,handleInput:$}=S({wrapperRef:z,keywordRef:N}),q=s((()=>!V.value.length&&!!(N.value||"").replace(/^\s+|\s+$/g,"")));return a((()=>D.value),(async e=>{var o;e&&(await r(),null==(o=B.value)||o.focus())})),(e,o)=>(t(),l(n(y),{raw:"","content-class":"search-content",class:"search-wrapper",style:i(n(E)),show:D.value,"onUpdate:show":o[1]||(o[1]=e=>D.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:c((()=>[u(n(k),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:c((()=>[u(n(j),{component:n(C),color:"#ffffff80"},null,8,["component"])])),default:c((()=>{var e;return[p((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.80"))||"搜索联系人")]})),_:1})])),default:c((()=>{var e;return[u(n(_),{ref_key:"inputRef",ref:B,size:"small",clearable:"",autofocus:"",value:N.value,"onUpdate:value":[o[0]||(o[0]=e=>N.value=e),n($)]},{prefix:c((()=>[u(n(j),{color:"#ffffff80",component:n(C)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),f("div",{class:"user-list-wrapper",ref_key:"listRef",ref:z},[(t(!0),d(m,null,v(n(V),(e=>(t(),d("div",{class:"user-item",key:e.id,onClick:()=>async function(e){D.value=!1;const o=await R({chatType:"SINGLE",receiver:e,sender:G.userInfo.id});T(o)}(e.id)},[u(n(x),{round:"",size:32,src:e.avatar},null,8,["src"]),f("div",b,[f("span",null,w(e.name),1),f("span",null,w(e.deptName),1),f("span",null,w(e.post),1)])],8,I)))),128)),h(u(n(U),{config:{title:" ",content:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[g,n(q)]])],512)]})),_:1},8,["style","show"]))}});export{z as default};
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as n,useAttrs as t,ref as o,computed as i,watch as a,openBlock as l,createBlock as s,unref as r,withCtx as c,createVNode as u,createTextVNode as d,createElementBlock as m,Fragment as p,renderList as v,toDisplayString as g,createCommentVNode as w,withKeys as f,nextTick as y}from"vue";import{NDrawer as _,NDrawerContent as k,NButton as C,NIcon as h,NAvatar as b,NUpload as I,NUploadTrigger as x,NInput as L,NSpace as S,NSwitch as B,NPopconfirm as j}from"naive-ui";import{ChevronBackOutline as z,ChevronForwardOutline as U,AddOutline as G,RemoveOutline as P,Pencil as A}from"@vicons/ionicons5";import{useData as D}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{toppingSessionApi as R,groupLeaveApi as F,groupUpdateApi as K}from"../api/index.js";import"../utils/index.js";import"trtc-sdk-v5";import N from"./PersonProfile.vue.js";import O from"./ChatAdd.vue.js";import{trim as q,isFunction as E}from"lodash-es";var H,J,M,Q,T,V,W,X;const Y={key:0,class:"chat-set-wrapper"},Z={class:"item"},$={class:"name"},ee={key:0,class:"item__right",style:{color:"var(--c-primary-color)"}},ne={class:"item user-info"},te={class:"name"},oe={class:"item item-column"},ie=e("span",{class:"label"},(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.85"))||"群成员",-1),ae={class:"group-box"},le={class:"group-box__item"},se={class:"name"},re={class:"group-box__item"},ce=e("span",{class:"name"},(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.86"))||"添加",-1),ue={class:"group-box__item"},de=e("span",{class:"name"},(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.88"))||"移除",-1),me=["onClick"],pe=e("span",{class:"label"},(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.90"))||"群头像",-1),ve={class:"item"},ge=e("span",{class:"label"},(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.34"))||"群名称",-1),we={class:"item__right"},fe={class:"txt"},ye={class:"item"},_e=e("span",{class:"label"},(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.92"))||"置顶聊天",-1),ke={class:"item item--red"},Ce=e("span",{class:"label"},(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.93"))||"退出群聊",-1),he=e("p",{style:{width:"230px"}},"是否确认退出群聊?",-1),be={class:"item item--red"},Ie=e("span",{class:"label"},(null==(X=window.getLanguageByCode)?void 0:X.call(window,"10010.1.95"))||"解散该群",-1),xe=e("p",{style:{width:"230px"}},"是否确认解散群聊?",-1);var Le=n({__name:"ChatSet",setup(n){const H=t(),{state:J,setCurrentSessionItem:M,isGroupChat:Q,isGroupLeader:T}=D(),V=o(),W=o(!1),X=o(""),Le=o(!1),Se=i((()=>J.currentGroupUser.map((e=>e.id)))),Be=i((()=>J.currentGroupUser?T.value?J.currentGroupUser.slice(0,6):J.currentGroupUser.slice(0,7):[]));async function je(e){try{await R({id:J.currentSessionItem.id,topping:e}),M({topping:e})}catch(e){}}async function ze(e){await F({dissolution:!!e,groupId:J.currentSessionItem.receiver,operator:J.userInfo.id,memberIdSet:e?Se.value:[J.userInfo.id]})}async function Ue(){var e;X.value=J.currentSessionItem.name,W.value=!0,await y(),null==(e=V.value)||e.select()}async function Ge(e){const n=new FormData,t=Object.assign({id:J.currentSessionItem.receiver},e);for(const e in t)n.append(e,t[e]);await K(n)}async function Pe(){W.value=!1;const e=q(X.value);e&&e!==J.currentSessionItem.name&&(await Ge({name:e}),M({name:e,defaultName:e}))}async function Ae(e){const{file:n}=e.file,t=new FileReader;t.onload=function(e){var n;(null==(n=e.target)?void 0:n.result)&&M({avatar:e.target.result})},t.readAsDataURL(e.file.file),await Ge({file:n})}function De(){E(H["onUpdate:show"])&&H["onUpdate:show"](!1)}return a((()=>J.id),(e=>{De()})),(n,t)=>(l(),s(r(_),{width:320,"trap-focus":!1,"block-scroll":!1,to:".iho-chat",onAfterLeave:t[7]||(t[7]=e=>Le.value=!1)},{default:c((()=>[u(r(k),null,{header:c((()=>{var e,n;return[r(Q)&&Le.value?(l(),s(r(C),{key:0,text:"",color:"#666",onClick:t[0]||(t[0]=e=>Le.value=!1),style:{"font-size":"var(--n-title-font-size)"}},{icon:c((()=>[u(r(h),{size:20,component:r(z)},null,8,["component"])])),default:c((()=>[d(" 返回 ")])),_:1})):r(Q)?(l(),m(p,{key:1},[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.83"))||"群设置")],64)):(l(),m(p,{key:2},[d((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.66"))||"聊天设置")],64))]})),default:c((()=>{var n;return[r(J).id?(l(),m("div",Y,[r(Q)&&Le.value?(l(!0),m(p,{key:0},v(r(J).currentGroupUser,((n,t)=>(l(),s(N,{key:n.id,"user-id":n.id,placement:"left"},{trigger:c((()=>{var o;return[e("div",Z,[u(r(b),{round:"",size:40,src:n.avatar},null,8,["src"]),e("span",$,g(n.name),1),0===t?(l(),m("span",ee,(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.84"))||"群主")):w("v-if",!0)])]})),_:2},1032,["user-id"])))),128)):(l(),m(p,{key:1},[u(N,{"user-id":r(J).currentSessionItem.receiver,onClose:De,disabled:!!r(Q),placement:"bottom-end"},{trigger:c((()=>[e("div",ne,[u(r(b),{round:"",size:40,src:r(J).currentSessionItem.avatar},null,8,["src"]),e("span",te,g(r(J).currentSessionItem.name),1),r(Q)?w("v-if",!0):(l(),s(r(h),{key:0,size:24,component:r(U),class:"item__right"},null,8,["component"]))])])),_:1},8,["user-id","disabled"]),r(Q)?(l(),m(p,{key:0},[e("div",oe,[ie,e("div",ae,[(l(!0),m(p,null,v(r(Be),(n=>(l(),s(N,{key:n.id,"user-id":n.id,placement:"left-start"},{trigger:c((()=>[e("div",le,[u(r(b),{round:"",size:40,src:n.avatar},null,8,["src"]),e("span",se,g(n.name),1)])])),_:2},1032,["user-id"])))),128)),u(O,{mode:"join",disabledIds:r(Se)},{trigger:c((()=>[e("div",re,[u(r(C),{strong:"",secondary:"",circle:""},{icon:c((()=>[u(r(h),{component:r(G)},null,8,["component"])])),_:1}),ce])])),_:1},8,["disabledIds"]),r(T)?(l(),s(O,{key:0,title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.87"))||"移除成员",mode:"remove",options:r(J).currentGroupUser},{trigger:c((()=>[e("div",ue,[u(r(C),{strong:"",secondary:"",circle:""},{icon:c((()=>[u(r(h),{component:r(P)},null,8,["component"])])),_:1}),de])])),_:1},8,["options"])):w("v-if",!0)]),u(r(C),{text:"","icon-placement":"right",color:"#999",onClick:t[1]||(t[1]=e=>Le.value=!0)},{icon:c((()=>[u(r(h),{component:r(U)},null,8,["component"])])),default:c((()=>[d(" 查看全部群成员 ")])),_:1})]),u(r(I),{abstract:"",multiple:"",accept:"image/*",onChange:Ae},{default:c((()=>[u(r(x),{abstract:""},{default:c((({handleClick:n})=>[e("div",{class:"item",onClick:n},[pe,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])],8,me)])),_:1})])),_:1}),e("div",ve,[ge,e("div",we,[W.value?(l(),s(r(L),{key:0,ref_key:"inputRef",ref:V,value:X.value,"onUpdate:value":t[2]||(t[2]=e=>X.value=e),onBlur:Pe,onKeydown:t[3]||(t[3]=f((e=>e.target.blur()),["enter"]))},null,8,["value"])):(l(),s(r(S),{key:1,"wrap-item":!1,onClick:Ue,align:"center"},{default:c((()=>[e("span",fe,g(r(J).currentSessionItem.name),1),u(r(C),{text:"",style:{"font-size":"14px","--n-text-color":"#999"}},{default:c((()=>[u(r(h),{component:r(A)},null,8,["component"])])),_:1})])),_:1}))])])],64)):w("v-if",!0),e("div",ye,[_e,u(r(B),{value:r(J).currentSessionItem.topping,"onUpdate:value":[t[4]||(t[4]=e=>r(J).currentSessionItem.topping=e),je],class:"item__right"},null,8,["value"])]),r(Q)?(l(),m(p,{key:1},[u(r(j),{onPositiveClick:t[5]||(t[5]=()=>ze(!1))},{trigger:c((()=>[e("div",ke,[Ce,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])])])),default:c((()=>[he])),_:1}),r(T)?(l(),s(r(j),{key:0,onPositiveClick:t[6]||(t[6]=()=>ze(!0))},{trigger:c((()=>[e("div",be,[Ie,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])])])),default:c((()=>[xe])),_:1})):w("v-if",!0)],64)):w("v-if",!0)],64))])):w("v-if",!0)]})),_:1})])),_:1}))}});export{Le as default};
1
+ import{createElementVNode as e,defineComponent as n,useAttrs as o,ref as t,computed as a,watch as i,openBlock as l,createBlock as s,unref as r,withCtx as c,createVNode as u,createTextVNode as d,createElementBlock as m,Fragment as p,renderList as g,toDisplayString as v,createCommentVNode as w,withKeys as f,nextTick as y}from"vue";import{NDrawer as _,NDrawerContent as k,NButton as C,NIcon as h,NAvatar as b,NUpload as L,NUploadTrigger as I,NInput as B,NSpace as x,NSwitch as S,NPopconfirm as j}from"naive-ui";import{ChevronBackOutline as z,ChevronForwardOutline as U,AddOutline as G,RemoveOutline as P,Pencil as A}from"@vicons/ionicons5";import{useData as D}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{toppingSessionApi as R,groupLeaveApi as F,groupUpdateApi as K}from"../api/index.js";import"../utils/index.js";import{trim as N,isFunction as O}from"lodash-es";import"trtc-sdk-v5";import q from"./PersonProfile.vue.js";import E from"./ChatAdd.vue.js";var H,J,M,Q,T,V,W,X,Y,Z;const $={key:0,class:"chat-set-wrapper"},ee={class:"item"},ne={class:"name"},oe={key:0,class:"item__right",style:{color:"var(--c-primary-color)"}},te={class:"item user-info"},ae={class:"name"},ie={class:"item item-column"},le=e("span",{class:"label"},(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.85"))||"群成员",-1),se={class:"group-box"},re={class:"group-box__item"},ce={class:"name"},ue={class:"group-box__item"},de=e("span",{class:"name"},(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.86"))||"添加",-1),me={class:"group-box__item"},pe=e("span",{class:"name"},(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.88"))||"移除",-1),ge=["onClick"],ve=e("span",{class:"label"},(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.90"))||"群头像",-1),we={class:"item"},fe=e("span",{class:"label"},(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.91"))||"群名称",-1),ye={class:"item__right"},_e={class:"txt"},ke={class:"item"},Ce=e("span",{class:"label"},(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.92"))||"置顶聊天",-1),he={class:"item item--red"},be=e("span",{class:"label"},(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.93"))||"退出群聊",-1),Le=e("p",{style:{width:"230px"}},(null==(X=window.getLanguageByCode)?void 0:X.call(window,"10010.1.94"))||"是否确认退出群聊?",-1),Ie={class:"item item--red"},Be=e("span",{class:"label"},(null==(Y=window.getLanguageByCode)?void 0:Y.call(window,"10010.1.95"))||"解散该群",-1),xe=e("p",{style:{width:"230px"}},(null==(Z=window.getLanguageByCode)?void 0:Z.call(window,"10010.1.96"))||"是否确认解散群聊?",-1);var Se=n({__name:"ChatSet",setup(n){const H=o(),{state:J,setCurrentSessionItem:M,isGroupChat:Q,isGroupLeader:T}=D(),V=t(),W=t(!1),X=t(""),Y=t(!1),Z=a((()=>J.currentGroupUser.map((e=>e.id)))),Se=a((()=>J.currentGroupUser?T.value?J.currentGroupUser.slice(0,6):J.currentGroupUser.slice(0,7):[]));async function je(e){try{await R({id:J.currentSessionItem.id,topping:e}),M({topping:e})}catch(e){}}async function ze(e){await F({dissolution:!!e,groupId:J.currentSessionItem.receiver,operator:J.userInfo.id,memberIdSet:e?Z.value:[J.userInfo.id]})}async function Ue(){var e;X.value=J.currentSessionItem.name,W.value=!0,await y(),null==(e=V.value)||e.select()}async function Ge(e){const n=new FormData,o=Object.assign({id:J.currentSessionItem.receiver},e);for(const e in o)n.append(e,o[e]);await K(n)}async function Pe(){W.value=!1;const e=N(X.value);e&&e!==J.currentSessionItem.name&&(await Ge({name:e}),M({name:e,defaultName:e}))}async function Ae(e){const{file:n}=e.file,o=new FileReader;o.onload=function(e){var n;(null==(n=e.target)?void 0:n.result)&&M({avatar:e.target.result})},o.readAsDataURL(e.file.file),await Ge({file:n})}function De(){O(H["onUpdate:show"])&&H["onUpdate:show"](!1)}return i((()=>J.id),(e=>{De()})),(n,o)=>(l(),s(r(_),{width:320,"trap-focus":!1,"block-scroll":!1,to:".iho-chat",onAfterLeave:o[7]||(o[7]=e=>Y.value=!1)},{default:c((()=>[u(r(k),null,{header:c((()=>{var e,n;return[r(Q)&&Y.value?(l(),s(r(C),{key:0,text:"",color:"#666",onClick:o[0]||(o[0]=e=>Y.value=!1),style:{"font-size":"var(--n-title-font-size)"}},{icon:c((()=>[u(r(h),{size:20,component:r(z)},null,8,["component"])])),default:c((()=>{var e;return[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.82"))||"返回")]})),_:1})):r(Q)?(l(),m(p,{key:1},[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.83"))||"群设置")],64)):(l(),m(p,{key:2},[d((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.66"))||"聊天设置")],64))]})),default:c((()=>{var n;return[r(J).id?(l(),m("div",$,[r(Q)&&Y.value?(l(!0),m(p,{key:0},g(r(J).currentGroupUser,((n,o)=>(l(),s(q,{key:n.id,"user-id":n.id,placement:"left"},{trigger:c((()=>{var t;return[e("div",ee,[u(r(b),{round:"",size:40,src:n.avatar},null,8,["src"]),e("span",ne,v(n.name),1),0===o?(l(),m("span",oe,(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.84"))||"群主")):w("v-if",!0)])]})),_:2},1032,["user-id"])))),128)):(l(),m(p,{key:1},[u(q,{"user-id":r(J).currentSessionItem.receiver,onClose:De,disabled:!!r(Q),placement:"bottom-end"},{trigger:c((()=>[e("div",te,[u(r(b),{round:"",size:40,src:r(J).currentSessionItem.avatar},null,8,["src"]),e("span",ae,v(r(J).currentSessionItem.name),1),r(Q)?w("v-if",!0):(l(),s(r(h),{key:0,size:24,component:r(U),class:"item__right"},null,8,["component"]))])])),_:1},8,["user-id","disabled"]),r(Q)?(l(),m(p,{key:0},[e("div",ie,[le,e("div",se,[(l(!0),m(p,null,g(r(Se),(n=>(l(),s(q,{key:n.id,"user-id":n.id,placement:"left-start"},{trigger:c((()=>[e("div",re,[u(r(b),{round:"",size:40,src:n.avatar},null,8,["src"]),e("span",ce,v(n.name),1)])])),_:2},1032,["user-id"])))),128)),u(E,{mode:"join",disabledIds:r(Z)},{trigger:c((()=>[e("div",ue,[u(r(C),{strong:"",secondary:"",circle:""},{icon:c((()=>[u(r(h),{component:r(G)},null,8,["component"])])),_:1}),de])])),_:1},8,["disabledIds"]),r(T)?(l(),s(E,{key:0,title:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.87"))||"移除成员",mode:"remove",options:r(J).currentGroupUser},{trigger:c((()=>[e("div",me,[u(r(C),{strong:"",secondary:"",circle:""},{icon:c((()=>[u(r(h),{component:r(P)},null,8,["component"])])),_:1}),pe])])),_:1},8,["options"])):w("v-if",!0)]),u(r(C),{text:"","icon-placement":"right",color:"#999",onClick:o[1]||(o[1]=e=>Y.value=!0)},{icon:c((()=>[u(r(h),{component:r(U)},null,8,["component"])])),default:c((()=>{var e;return[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.89"))||"查看全部群成员")]})),_:1})]),u(r(L),{abstract:"",multiple:"",accept:"image/*",onChange:Ae},{default:c((()=>[u(r(I),{abstract:""},{default:c((({handleClick:n})=>[e("div",{class:"item",onClick:n},[ve,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])],8,ge)])),_:1})])),_:1}),e("div",we,[fe,e("div",ye,[W.value?(l(),s(r(B),{key:0,ref_key:"inputRef",ref:V,value:X.value,"onUpdate:value":o[2]||(o[2]=e=>X.value=e),onBlur:Pe,onKeydown:o[3]||(o[3]=f((e=>e.target.blur()),["enter"]))},null,8,["value"])):(l(),s(r(x),{key:1,"wrap-item":!1,onClick:Ue,align:"center"},{default:c((()=>[e("span",_e,v(r(J).currentSessionItem.name),1),u(r(C),{text:"",style:{"font-size":"14px","--n-text-color":"#999"}},{default:c((()=>[u(r(h),{component:r(A)},null,8,["component"])])),_:1})])),_:1}))])])],64)):w("v-if",!0),e("div",ke,[Ce,u(r(S),{value:r(J).currentSessionItem.topping,"onUpdate:value":[o[4]||(o[4]=e=>r(J).currentSessionItem.topping=e),je],class:"item__right"},null,8,["value"])]),r(Q)?(l(),m(p,{key:1},[u(r(j),{onPositiveClick:o[5]||(o[5]=()=>ze(!1))},{trigger:c((()=>[e("div",he,[be,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])])])),default:c((()=>[Le])),_:1}),r(T)?(l(),s(r(j),{key:0,onPositiveClick:o[6]||(o[6]=()=>ze(!0))},{trigger:c((()=>[e("div",Ie,[Be,u(r(h),{size:20,component:r(U),class:"item__right"},null,8,["component"])])])),default:c((()=>[xe])),_:1})):w("v-if",!0)],64)):w("v-if",!0)],64))])):w("v-if",!0)]})),_:1})])),_:1}))}});export{Se as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as o,withDirectives as i,createVNode as n,vShow as s,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{MESSAGE_TYPE as f}from"../constants/index.js";import{recallMessageApi as v}from"../api/index.js";import{isAudioOrVideoMessage as h,$message as T,downloadFile as b}from"../utils/index.js";import"trtc-sdk-v5";import{emojis as I}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:E}){var L,x,S,A,B;const{state:C,setCurrentSessionItem:D}=y(),O=[{icon:c,label:(null==(L=window.getLanguageByCode)?void 0:L.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.46"))||"下载",key:"download"}],W=[{label:"置顶会话",key:"topping"},{label:"移除会话",key:"remove"}],$=t(null),H=o((()=>("message"===e.type?C.msgList:C.sessionList).find((({id:t})=>t===e.id)))),J=o((()=>{var t;if(!e.id)return[];if(!(null==H?void 0:H.value))return[];if("session"===e.type){const e=[...W];return e[0].label=(null==(t=H.value)?void 0:t.topping)?"取消置顶":"置顶会话",e}const{content:o={},sendTime:i,sender:n}=H.value,{chatMessageType:s}=o,a=[];return(n!==C.userInfo.id||s===f.TEMPLATE||n===C.userInfo.id&&Date.now()-new Date(i).getTime()>2592e5)&&a.push("withdraw"),[f.TEXT,f.EMOJI,f.BLEND].includes(s)?a.push("download"):h(o)?a.push("copy","relay","reply","download"):s===f.FILE?a.push("copy"):[f.FORWARD,f.TEMPLATE].includes(s)&&a.push("copy","download"),a.length?O.filter((e=>!a.includes(e.key))):O}));return g($,(e=>{E("update:show",!1)})),()=>{let t;return e.id&&J.value?i(n("div",{class:"contextmenu-wrapper",ref:$,style:e.position},[n(l,{vertical:!0},(o=t=J.value.map((t=>n(r,{key:t.key,onClick:()=>async function(t){E("update:show",!1);const{content:o={},sendTime:i,sender:n}=H.value||{},{chatMessageType:s}=o;switch(t){case"copy":if(!o.msg)return console.log("复制内容为空!");if(!navigator||!("clipboard"in navigator))return console.log("当前浏览器版本不支持复制!");try{if(s===f.TEXT)await navigator.clipboard.writeText(o.msg);else{let e;if([f.EMOJI,f.IMAGE].includes(s)){const t=s===f.EMOJI?I.findEmoji(o.msg):o.msg;e=`<img data-msg=${o.msg} data-type=${s} class=${s===f.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 s===f.IMAGE&&(e=t,t=t.match(/\/([^\/?#]+)$/)[1]),void b(e,t)}case"withdraw":try{const t=C.msgList.findIndex((({id:t})=>t===e.id)),o=0===t;if(await v({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");D({lastMessageStatus:"WITHDRAWN",lastMessageSendTime:e,sortTime:e,updatedTime:e})}}catch(e){T.error("撤回失败")}return}E("select",t,H.value)}(t.key),quaternary:!0},{default:()=>t.label,icon:()=>t.icon?n(d,{component:t.icon},null):null}))),"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!a(o)?t:{default:()=>[t]}))]),[[s,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,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{MESSAGE_TYPE as f}from"../constants/index.js";import{recallMessageApi as v}from"../api/index.js";import{isAudioOrVideoMessage as h,$message as T,downloadFile as b}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import{emojis as I}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:E}){var L,x,S,A,B;const{state:C,setCurrentSessionItem:D}=y(),O=[{icon:c,label:(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.97"))||"复制",key:"copy"},{icon:u,label:(null==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.98"))||"转发",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"}],W=[{label:"置顶会话",key:"topping"},{label:"移除会话",key:"remove"}],$=t(null),H=o((()=>("message"===e.type?C.msgList:C.sessionList).find((({id:t})=>t===e.id)))),J=o((()=>{var t;if(!e.id)return[];if(!(null==H?void 0:H.value))return[];if("session"===e.type){const e=[...W];return e[0].label=(null==(t=H.value)?void 0:t.topping)?"取消置顶":"置顶会话",e}const{content:o={},sendTime:i,sender:s}=H.value,{chatMessageType:n}=o,a=[];return(s!==C.userInfo.id||n===f.TEMPLATE||s===C.userInfo.id&&Date.now()-new Date(i).getTime()>2592e5)&&a.push("withdraw"),[f.TEXT,f.EMOJI,f.BLEND].includes(n)?a.push("download"):h(o)?a.push("copy","relay","reply","download"):n===f.FILE?a.push("copy"):[f.FORWARD,f.TEMPLATE].includes(n)&&a.push("copy","download"),a.length?O.filter((e=>!a.includes(e.key))):O}));return g($,(e=>{E("update:show",!1)})),()=>{let t;return e.id&&J.value?i(s("div",{class:"contextmenu-wrapper",ref:$,style:e.position},[s(l,{vertical:!0},(o=t=J.value.map((t=>s(r,{key:t.key,onClick:()=>async function(t){E("update:show",!1);const{content:o={},sendTime:i,sender:s}=H.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===f.TEXT)await navigator.clipboard.writeText(o.msg);else{let e;if([f.EMOJI,f.IMAGE].includes(n)){const t=n===f.EMOJI?I.findEmoji(o.msg):o.msg;e=`<img data-msg=${o.msg} data-type=${n} class=${n===f.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===f.IMAGE&&(e=t,t=t.match(/\/([^\/?#]+)$/)[1]),void b(e,t)}case"withdraw":try{const t=C.msgList.findIndex((({id:t})=>t===e.id)),o=0===t;if(await v({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");D({lastMessageStatus:"WITHDRAWN",lastMessageSendTime:e,sortTime:e,updatedTime:e})}}catch(e){T.error("撤回失败")}return}E("select",t,H.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};
@@ -14,7 +14,7 @@ declare const _default: import("vue").DefineComponent<{
14
14
  }>> & {}>>;
15
15
  describeBodyRef: import("vue").Ref<any>;
16
16
  showMore: import("vue").Ref<boolean>;
17
- emit: (event: "template-click" | "unread-message-update" | "session-change", ...args: any[]) => void;
17
+ emit: (event: "template-click" | "unread-message-update" | "session-change" | "session-close", ...args: any[]) => void;
18
18
  isOverflow: import("vue").ComputedRef<boolean>;
19
19
  setting: import("vue").ComputedRef<any>;
20
20
  serverSetting: import("vue").ComputedRef<any>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as l,openBlock as s,createElementBlock as o,Fragment as i,unref as n,createElementVNode as a,toDisplayString as c,withModifiers as r,createBlock as d,createCommentVNode as m,renderList as p,withCtx as u,createTextVNode as v,normalizeClass as f,createVNode as g}from"vue";import{NIcon as y,NButton as k}from"naive-ui";import{ChevronForwardOutline as _,AlertCircleSharp as h}from"@vicons/ionicons5";import b from"../../../../shared/components/SvgIcon/SvgIcon.vue.js";import{useData as T}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import"../api/index.js";import"../utils/index.js";import"trtc-sdk-v5";const j={class:"default-msg-template__header"},C={class:"title"},M={class:"default-msg-template__body"},L=["src"],E={class:"template-content"},H=["innerHTML"],N={key:0,class:"default-msg-template__btn-group"},S=a("i",{class:"chat--iconfont chat--icon-more"},null,-1),w={key:1,class:"describe-msg-template"},x={class:"describe-msg-template__header"},D={class:"title"},B={class:"txt"},O=a("i",{class:"chat--iconfont chat--icon-more"},null,-1),z={key:2,class:"system-msg-template"},F=["innerHTML"],I=["onClick"];var P=e({__name:"MessageTemplate",props:{data:{type:Object,required:!0}},setup(e){const P=e,R=t(),q=t(!0),{emit:V}=T(),W=l((()=>{if(!R.value)return!1;const{childNodes:e,clientWidth:t}=R.value;let l=0;for(let s=0;s<e.length;s++)if(e[s].nodeType===Node.ELEMENT_NODE){const t=parseFloat(window.getComputedStyle(e[s]).lineHeight);l+=e[s].scrollHeight/t}else if(e[s].nodeType===Node.TEXT_NODE){const o=e[s].nodeValue.trim();if(""!==o){const e=o.split(" "),s=Math.floor(t/parseFloat(window.getComputedStyle(R.value).fontSize));l+=Math.ceil(e.length/s)}}return l>6})),X=l((()=>P.data.content.messageTemplate.setting)),$=l((()=>X.value.serverSetting)),A=l((()=>($.value.topRightButton||[])[0])),G=l((()=>{const e=(X.value.content||"").split("##").filter((e=>e));if(!e)return[];const{dbParamsList:t}=X.value||{};return e.map((e=>{const l=/\\n|\n|\r/g;return(e||"").replace(l,"<br>").replace(/\${(.*?)}/g,((e,s)=>{if(0===(t||[]).length)return"";return(U.value[s]||"").replace(l,"<br>")}))}))})),J=l((()=>{var e;return(null==(e=$.value)?void 0:e.toolbar_button)||[]})),K=l((()=>($.value.bottomButton||[])[0])),Q=l((()=>X.value.dbParamsList)),U=l((()=>P.data.content.messageTemplateData));function Y(e){V("template-click",e,P.data)}return(e,t)=>(s(),o(i,null,[1==n(X).style.id?(s(),o("div",{key:0,class:"default-msg-template",onClick:t[2]||(t[2]=()=>Y(n($)))},[a("div",j,[a("span",C,c(n(X).title),1),n(A)?(s(),o("span",{key:0,class:"btn",onClick:t[0]||(t[0]=r((()=>Y(n(A))),["stop"]))},c(n(A).title),1)):n($).address?(s(),d(n(y),{key:1,component:n(_),color:"#969696"},null,8,["component"])):m("v-if",!0)]),a("div",M,[n(X).style.icon?(s(),d(n(b),{key:0,class:"logo","icon-class":n(X).style.icon},null,8,["icon-class"])):n(X).style.image?(s(),o("img",{key:1,class:"logo",src:n(X).style.image},null,8,L)):m("v-if",!0),a("div",E,[(s(!0),o(i,null,p(n(G),(e=>(s(),o("div",{key:e,innerHTML:e},null,8,H)))),128))])]),n(J)?(s(),o("div",N,[(s(!0),o(i,null,p(n(J),((e,t)=>(s(),d(n(k),{type:"primary",round:"",ghost:"",onClick:r((()=>Y(e)),["stop"]),key:t},{default:u((()=>[v(c(e.title),1)])),_:2},1032,["onClick"])))),128))])):m("v-if",!0),n(K)?(s(),o("div",{key:1,class:"default-msg-template__footer",onClick:t[1]||(t[1]=r((()=>Y(n(K))),["stop"]))},[v(c(n(K).title)+" ",1),S])):m("v-if",!0)])):m("v-if",!0),3==n(X).style.id?(s(),o("div",w,[a("div",x,c(n(X).title),1),a("div",{class:f(["describe-msg-template__body",n(W)&&q.value?"overflow-hidden":""]),ref_key:"describeBodyRef",ref:R},[(s(!0),o(i,null,p(n(Q),((e,t)=>(s(),o(i,{key:t},[a("div",D,c(e.desc),1),a("div",B,c(n(U)[e.p_name]),1)],64)))),128))],2),n(W)?(s(),o("div",{key:0,class:f(["describe-msg-template__footer",q.value?"":"hidden"]),onClick:t[3]||(t[3]=()=>q.value=!1)},[v(" 展开全部 "),O],2)):m("v-if",!0)])):m("v-if",!0),2==n(X).style.id?(s(),o("div",z,[g(n(y),{component:n(h),color:"#ffc200",size:18},null,8,["component"]),a("span",{innerHTML:G.value.join("<br>")},null,8,F),(s(!0),o(i,null,p(n(J),((e,t)=>(s(),o("span",{class:"btn",onClick:()=>Y(e),key:t},c(e.title),9,I)))),128))])):m("v-if",!0)],64))}});export{P as default};
1
+ import{defineComponent as e,ref as t,computed as l,openBlock as s,createElementBlock as o,Fragment as i,unref as n,createElementVNode as a,toDisplayString as c,withModifiers as r,createBlock as d,createCommentVNode as m,renderList as u,withCtx as p,createTextVNode as v,normalizeClass as f,createVNode as g}from"vue";import{NIcon as y,NButton as k}from"naive-ui";import{ChevronForwardOutline as h,AlertCircleSharp as _}from"@vicons/ionicons5";import b from"../../../../shared/components/SvgIcon/SvgIcon.vue.js";import{useData as T}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import"../api/index.js";import"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";const C={class:"default-msg-template__header"},j={class:"title"},w={class:"default-msg-template__body"},L=["src"],M={class:"template-content"},E=["innerHTML"],H={key:0,class:"default-msg-template__btn-group"},N=a("i",{class:"chat--iconfont chat--icon-more"},null,-1),S={key:1,class:"describe-msg-template"},x={class:"describe-msg-template__header"},B={class:"title"},D={class:"txt"},O=a("i",{class:"chat--iconfont chat--icon-more"},null,-1),z={key:2,class:"system-msg-template"},F=["innerHTML"],I=["onClick"];var P=e({__name:"MessageTemplate",props:{data:{type:Object,required:!0}},setup(e){const P=e,R=t(),q=t(!0),{emit:V}=T(),W=l((()=>{if(!R.value)return!1;const{childNodes:e,clientWidth:t}=R.value;let l=0;for(let s=0;s<e.length;s++)if(e[s].nodeType===Node.ELEMENT_NODE){const t=parseFloat(window.getComputedStyle(e[s]).lineHeight);l+=e[s].scrollHeight/t}else if(e[s].nodeType===Node.TEXT_NODE){const o=e[s].nodeValue.trim();if(""!==o){const e=o.split(" "),s=Math.floor(t/parseFloat(window.getComputedStyle(R.value).fontSize));l+=Math.ceil(e.length/s)}}return l>6})),X=l((()=>P.data.content.messageTemplate.setting)),$=l((()=>X.value.serverSetting)),A=l((()=>($.value.topRightButton||[])[0])),G=l((()=>{const e=(X.value.content||"").split("##").filter((e=>e));if(!e)return[];const{dbParamsList:t}=X.value||{};return e.map((e=>{const l=/\\n|\n|\r/g;return(e||"").replace(l,"<br>").replace(/\${(.*?)}/g,((e,s)=>{if(0===(t||[]).length)return"";return(U.value[s]||"").replace(l,"<br>")}))}))})),J=l((()=>{var e;return(null==(e=$.value)?void 0:e.toolbar_button)||[]})),K=l((()=>($.value.bottomButton||[])[0])),Q=l((()=>X.value.dbParamsList)),U=l((()=>P.data.content.messageTemplateData));function Y(e){V("template-click",e,P.data)}return(e,t)=>{var l;return s(),o(i,null,[1==n(X).style.id?(s(),o("div",{key:0,class:"default-msg-template",onClick:t[2]||(t[2]=()=>Y(n($)))},[a("div",C,[a("span",j,c(n(X).title),1),n(A)?(s(),o("span",{key:0,class:"btn",onClick:t[0]||(t[0]=r((()=>Y(n(A))),["stop"]))},c(n(A).title),1)):n($).address?(s(),d(n(y),{key:1,component:n(h),color:"#969696"},null,8,["component"])):m("v-if",!0)]),a("div",w,[n(X).style.icon?(s(),d(n(b),{key:0,class:"logo","icon-class":n(X).style.icon},null,8,["icon-class"])):n(X).style.image?(s(),o("img",{key:1,class:"logo",src:n(X).style.image},null,8,L)):m("v-if",!0),a("div",M,[(s(!0),o(i,null,u(n(G),(e=>(s(),o("div",{key:e,innerHTML:e},null,8,E)))),128))])]),n(J)?(s(),o("div",H,[(s(!0),o(i,null,u(n(J),((e,t)=>(s(),d(n(k),{type:"primary",round:"",ghost:"",onClick:r((()=>Y(e)),["stop"]),key:t},{default:p((()=>[v(c(e.title),1)])),_:2},1032,["onClick"])))),128))])):m("v-if",!0),n(K)?(s(),o("div",{key:1,class:"default-msg-template__footer",onClick:t[1]||(t[1]=r((()=>Y(n(K))),["stop"]))},[v(c(n(K).title)+" ",1),N])):m("v-if",!0)])):m("v-if",!0),3==n(X).style.id?(s(),o("div",S,[a("div",x,c(n(X).title),1),a("div",{class:f(["describe-msg-template__body",n(W)&&q.value?"overflow-hidden":""]),ref_key:"describeBodyRef",ref:R},[(s(!0),o(i,null,u(n(Q),((e,t)=>(s(),o(i,{key:t},[a("div",B,c(e.desc),1),a("div",D,c(n(U)[e.p_name]),1)],64)))),128))],2),n(W)?(s(),o("div",{key:0,class:f(["describe-msg-template__footer",q.value?"":"hidden"]),onClick:t[3]||(t[3]=()=>q.value=!1)},[v((null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.103"))||"展开全部"),O],2)):m("v-if",!0)])):m("v-if",!0),2==n(X).style.id?(s(),o("div",z,[g(n(y),{component:n(_),color:"#ffc200",size:18},null,8,["component"]),a("span",{innerHTML:G.value.join("<br>")},null,8,F),(s(!0),o(i,null,u(n(J),((e,t)=>(s(),o("span",{class:"btn",onClick:()=>Y(e),key:t},c(e.title),9,I)))),128))])):m("v-if",!0)],64)}}});export{P as default};
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as o,ref as n,computed as l,onBeforeUnmount as i,openBlock as t,createElementBlock as a,withDirectives as s,toDisplayString as d,unref as c,vShow as r,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 A,MicOff as C,Videocam as V,VideocamOff as b,Call as _,PersonAdd as M}from"@vicons/ionicons5";import{getUserDetailApi as L}from"../api/index.js";import"@vueuse/core";import"../utils/index.js";import{xorBy as x}from"lodash-es";import{CHAT_TYPE as R,SUBSCRIBE_MESSAGE_TYPE as E}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 T}from"../hooks/useVideo.js";import B from"trtc-sdk-v5";var j,S,$,H,U,z;const N={class:"video-wrapper video-wrapper--multiple"},D={class:"video-header"},O={key:0,class:"video-main"},P={class:"video-main__left"},Y=["data-name"],q={class:"video-bottom"},G={class:"btn-group"},F={class:"btn"},J=e("span",{class:"text"},(null==(j=window.getLanguageByCode)?void 0:j.call(window,"10010.1.104"))||"静音",-1),K={class:"btn"},Q=e("span",{class:"text"},(null==(S=window.getLanguageByCode)?void 0:S.call(window,"10010.1.105"))||"摄像头",-1),W=e("span",{class:"text"},(null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.106"))||"结束会诊",-1),X={class:"btn"},Z=e("span",{class:"text"},(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.107"))||"添加参会人",-1),ee={class:"video-main__right"},oe=["id","data-name"],ne={class:"user"},le={class:"name"},ie={key:0,class:"tip"},te={key:0,class:"calling-box"},ae={class:"btn-box"},se={key:1,class:"opt-btn"},de={class:"btn"},ce=e("span",null,(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.113"))||"拒接",-1),re={class:"btn"},ue=e("span",null,(null==(z=window.getLanguageByCode)?void 0:z.call(window,"10010.1.114"))||"接听",-1);var me=o({__name:"MultipleVideo",setup(o){const j=n(),S=n([]),{state:$,sendMessage:H,trtc:U,voiceOpen:z,isAudio:me,isCall:pe,startTimer:ve,resetTimer:ge,toggleAudio:we,messageTypeText:fe,timing:he,toggleVideo:ye,videocamOpen:ke,installEventHandlers:Ie,uninstallEventHandlers:Ae}=T(),Ce=n(!1),Ve=l((()=>pe.value?$.userInfo.name:$.currentAVMsg.sendName)),be=l((()=>{if(!Ce.value)return"";const e=pe.value?`(${S.value.length+1}/${$.currentAVMsg.checkedIds.length+1})`:"";return`${Ve.value}发起的${fe.value}会诊${e} ${he.value}`}));function _e(e){console.log("checkedIds :>> ",e),$.currentAVMsg.checkedIds.push(...e),Me()}function Me(){var e;(null==(e=$.currentAVMsg.checkedIds)?void 0:e.length)&&$.currentAVMsg.checkedIds.forEach((e=>{H({chatType:R.SINGLE,content:{msg:$.currentAVMsg.chatMessageType+","+$.currentAVMsg.strRoomId,chatMessageType:E.AV_STATUS},receiver:e})})),Ce.value||Le()}async function Le(){const e=await B.isSupported();if(!e.result||!e.detail.isH264EncodeSupported||!e.detail.isH264DecodeSupported)return console.log("checkResult :>> ",e),void($.showMultipleVideo=!1);try{if(await U.enterRoom({strRoomId:$.currentAVMsg.strRoomId,sdkAppId:parseInt($.userInfo.sdkAppID),userId:$.userInfo.id,userSig:$.userInfo.userSig}),Ce.value=!0,ve(),Ie({handleError:Se,handleRemoteUserEnter:Te,handleRemoteAudioAvailable:Ee,handleRemoteUserExit:je,handleRemoteVideoAvailable:Re}),await U.startLocalAudio(),me.value)return;await U.startLocalVideo({view:j.value})}catch(e){console.log("error :>> ",e),$.showMultipleVideo=!1}}async function xe(){try{if($.showMultipleVideo=!1,Ae({handleError:Se,handleRemoteUserEnter:Te,handleRemoteAudioAvailable:Ee,handleRemoteUserExit:je,handleRemoteVideoAvailable:Re}),await U.exitRoom(),await U.stopLocalAudio(),me.value)return;await U.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function Re(e){const{userId:o,streamType:n}=e;try{n===B.TYPE.STREAM_TYPE_MAIN&&(await f(),await U.startRemoteVideo({userId:o,streamType:n,view:o}))}catch(e){console.log("error :>> ",e)}}async function Ee(e){var o;const{userId:n}=e;if(n&&!(null==(o=S.value.map((e=>e.id)))?void 0:o.includes(n))){const e=await Be(n);S.value.push({id:n,name:e})}}async function Te(e){const{userId:o}=e,n=await Be(o);S.value.push({id:o,name:n}),ve()}async function Be(e){const o=await L({userId:e});return(null==o?void 0:o.name)||""}function je(e){console.log("event :>> 退房",e);const{userId:o}=e;S.value=x(S.value,[{id:o,name:""}],"id")}function Se(e){console.log("error :>> ",e),$.showMultipleVideo=!1}return i((()=>{xe()})),(o,n)=>{var l,i,f,L,x,R;return t(),a("div",N,[e("div",D,[s(e("span",{class:"title"},d(c(be)),513),[[r,Ce.value]]),u(c(h),{quaternary:"",circle:"",color:"#ffffffcc",onClick:xe},{icon:m((()=>[u(c(y),{component:c(I)},null,8,["component"])])),_:1})]),Ce.value?(t(),a("div",O,[e("div",P,[e("div",{ref_key:"selfVideoRef",ref:j,class:"video-view","data-name":c($).userInfo.name},null,8,Y),e("div",q,[e("div",G,[e("div",F,[u(c(h),{text:"",color:c(z)?"#fff":"#000",onClick:c(we)},{icon:m((()=>[u(c(y),{component:c(z)?c(A):c(C)},null,8,["component"])])),_:1},8,["color","onClick"]),J]),e("div",K,[u(c(h),{text:"",color:c(ke)?"#fff":"#000",disabled:c(me),onClick:c(ye)},{icon:m((()=>[u(c(y),{component:c(ke)?c(V):c(b)},null,8,["component"])])),_:1},8,["color","disabled","onClick"]),Q]),e("div",{class:"btn",onClick:xe},[u(c(h),{circle:"",color:"#f17568",class:"btn--rotate"},{icon:m((()=>[u(c(y),{component:c(_)},null,8,["component"])])),_:1}),W]),u(k,{onComfirm:_e},{trigger:m((()=>[e("div",X,[u(c(h),{text:"",color:"#fff"},{icon:m((()=>[u(c(y),{component:c(M)},null,8,["component"])])),_:1}),Z])])),_:1})])])]),e("div",ee,[(t(!0),a(p,null,v(S.value,(e=>(t(),a("div",{key:e.id,id:e.id,class:"video-view","data-name":e.name},null,8,oe)))),128))])])):(t(),a(p,{key:1},[e("div",ne,[e("span",le,d(c(Ve))+((null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.108"))||"发起的")+d(c(fe))+((null==(i=window.getLanguageByCode)?void 0:i.call(window,"10010.1.109"))||"会议"),1),c(pe)?g("v-if",!0):(t(),a("span",ie,((null==(f=window.getLanguageByCode)?void 0:f.call(window,"10010.1.110"))||"邀请你加入")+d(c(fe))+((null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.109"))||"会议"),1))]),c(pe)?(t(),a("div",te,[u(k,{onComfirm:_e,disabledIds:c($).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==(x=window.getLanguageByCode)?void 0:x.call(window,"10010.1.111"))||"已邀请共")+d(c($).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:Me},{default:m((()=>{var e;return[w((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.112"))||"开始会诊")]})),_:1}),e("div",ae,[u(c(h),{color:"#000",round:""},{icon:m((()=>[u(c(y),{component:c(A)},null,8,["component"])])),_:1}),u(c(h),{color:"#000",round:""},{icon:m((()=>[u(c(y),{component:c(V)},null,8,["component"])])),_:1})])])):(t(),a("div",se,[e("div",de,[u(c(h),{circle:"",color:"#f17568",class:"btn--rotate",onClick:n[0]||(n[0]=()=>c($).showMultipleVideo=!1)},{icon:m((()=>[u(c(y),{size:"30",component:c(_)},null,8,["component"])])),_:1}),ce]),e("div",re,[u(c(h),{circle:"",color:"#2ac98b",onClick:Le},{icon:m((()=>[u(c(y),{size:"30",component:c(_)},null,8,["component"])])),_:1}),ue])]))],64))])}}});export{me as default};
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 d,unref as c,vShow as r,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 L}from"../api/index.js";import"@vueuse/core";import{$message as x}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 D={class:"video-wrapper video-wrapper--multiple"},O={class:"video-header"},P={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"},de={class:"btn"},ce=e("span",null,(null==(z=window.getLanguageByCode)?void 0:z.call(window,"10010.1.113"))||"拒接",-1),re={class:"btn"},ue=e("span",null,(null==(N=window.getLanguageByCode)?void 0:N.call(window,"10010.1.126"))||"接听",-1);var me=o({__name:"MultipleVideo",setup(o){const S=t(),$=t([]),{state:H,sendMessage:U,trtc:z,voiceOpen:N,isAudio:me,isCall:pe,startTimer:ve,resetTimer:ge,toggleAudio:we,messageTypeText:fe,timing:he,toggleVideo:ye,videocamOpen:ke,installEventHandlers:Ie,uninstallEventHandlers:be}=B(),Ae=t(!1),Ce=n((()=>pe.value?H.userInfo.name:H.currentAVMsg.sendName)),Ve=n((()=>{if(!Ae.value)return"";const e=pe.value?`(${$.value.length+1}/${H.currentAVMsg.checkedIds.length+1})`:"";return`${Ce.value}发起的${fe.value}会诊${e} ${he.value}`}));function Me(e){console.log("checkedIds :>> ",e),H.currentAVMsg.checkedIds.push(...e),_e()}function _e(){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})})),Ae.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}),Ae.value=!0,ve(),Ie({handleError:Se,handleRemoteUserEnter:Te,handleRemoteAudioAvailable:Ee,handleRemoteUserExit:je,handleRemoteVideoAvailable:Re}),await z.startLocalAudio(),me.value)return;await z.startLocalVideo({view:S.value})}catch(e){console.log("error :>> ",e),x.error(e),H.showMultipleVideo=!1}}async function xe(){try{if(H.showMultipleVideo=!1,be({handleError:Se,handleRemoteUserEnter:Te,handleRemoteAudioAvailable:Ee,handleRemoteUserExit:je,handleRemoteVideoAvailable:Re}),await z.exitRoom(),await z.stopLocalAudio(),me.value)return;await z.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function Re(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 Ee(e){var o;const{userId:t}=e;if(t&&!(null==(o=$.value.map((e=>e.id)))?void 0:o.includes(t))){const e=await Be(t);$.value.push({id:t,name:e})}}async function Te(e){const{userId:o}=e,t=await Be(o);$.value.push({id:o,name:t}),ve()}async function Be(e){const o=await L({userId:e});return(null==o?void 0:o.name)||""}function je(e){console.log("event :>> 退房",e);const{userId:o}=e;$.value=R($.value,[{id:o,name:""}],"id")}function Se(e){console.log("error :>> ",e),H.showMultipleVideo=!1}return l((()=>{xe()})),(o,t)=>{var n,l,f,L,x,R;return i(),a("div",D,[e("div",O,[s(e("span",{class:"title"},d(c(Ve)),513),[[r,Ae.value]]),u(c(h),{quaternary:"",circle:"",color:"#ffffffcc",onClick:xe},{icon:m((()=>[u(c(y),{component:c(I)},null,8,["component"])])),_:1})]),Ae.value?(i(),a("div",P,[e("div",Y,[e("div",{ref_key:"selfVideoRef",ref:S,class:"video-view","data-name":c(H).userInfo.name},null,8,q),e("div",G,[e("div",F,[e("div",J,[u(c(h),{text:"",color:c(N)?"#fff":"#000",onClick:c(we)},{icon:m((()=>[u(c(y),{component:c(N)?c(b):c(A)},null,8,["component"])])),_:1},8,["color","onClick"]),K]),e("div",Q,[u(c(h),{text:"",color:c(ke)?"#fff":"#000",disabled:c(me),onClick:c(ye)},{icon:m((()=>[u(c(y),{component:c(ke)?c(C):c(V)},null,8,["component"])])),_:1},8,["color","disabled","onClick"]),W]),e("div",{class:"btn",onClick:xe},[u(c(h),{circle:"",color:"#f17568",class:"btn--rotate"},{icon:m((()=>[u(c(y),{component:c(M)},null,8,["component"])])),_:1}),X]),u(k,{onComfirm:Me},{trigger:m((()=>[e("div",Z,[u(c(h),{text:"",color:"#fff"},{icon:m((()=>[u(c(y),{component:c(_)},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,d(c(Ce))+((null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.108"))||"发起的")+d(c(fe))+((null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.109"))||"会议"),1),c(pe)?g("v-if",!0):(i(),a("span",ie,((null==(f=window.getLanguageByCode)?void 0:f.call(window,"10010.1.110"))||"邀请你加入")+d(c(fe))+((null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.109"))||"会议"),1))]),c(pe)?(i(),a("div",ae,[u(k,{onComfirm:Me,disabledIds:c(H).currentAVMsg.checkedIds},{trigger:m((()=>[u(c(h),{size:"large",circle:"",color:"#000"},{icon:m((()=>[u(c(y),{component:c(_)},null,8,["component"])])),_:1})])),_:1},8,["disabledIds"]),e("p",null,((null==(x=window.getLanguageByCode)?void 0:x.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:_e},{default:m((()=>{var e;return[w((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.112"))||"开始会诊")]})),_:1}),g(' <div class="btn-box">\n\t\t\t\t\t\t<n-button color="#000" round>\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<n-icon :component="Mic" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</n-button>\n\t\t\t\t\t\t<n-button color="#000" round>\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<n-icon :component="Videocam" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</n-button>\n\t\t\t\t\t</div> ')])):(i(),a("div",se,[e("div",de,[u(c(h),{circle:"",color:"#f17568",class:"btn--rotate",onClick:t[0]||(t[0]=()=>c(H).showMultipleVideo=!1)},{icon:m((()=>[u(c(y),{size:"30",component:c(M)},null,8,["component"])])),_:1}),ce]),e("div",re,[u(c(h),{circle:"",color:"#2ac98b",onClick:Le},{icon:m((()=>[u(c(y),{size:"30",component:c(M)},null,8,["component"])])),_:1}),ue])]))],64))])}}});export{me as default};
@@ -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 s,renderSlot as r,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 b,NButton as h,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"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:s((()=>[r(e.$slots,"trigger")])),default:s((()=>[tt.id?(o(),d(c,{key:0},[u(p("div",D,[p("div",S,[p("div",$,[v(i(b),{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">\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:nt},{default:s((()=>[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(h),{circle:"",size:"small",secondary:""},{icon:s((()=>[v(i(C),{size:24,component:i(I),color:"#fff"},null,8,["component"])])),_:1}),v(i(b),{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 l,computed as n,openBlock as o,createBlock as a,unref as i,withCtx as s,renderSlot as r,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:s((()=>[r(e.$slots,"trigger")])),default:s((()=>[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">\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(b),{strong:"",secondary:"",onClick:nt},{default:s((()=>[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:s((()=>[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 +1 @@
1
- import{defineComponent as e,ref as t,computed as l,withDirectives as i,openBlock as n,createElementBlock as o,normalizeStyle as a,unref as s,createBlock as u,createCommentVNode as d,createElementVNode as r,Fragment as v,renderList as p,withCtx as c,createTextVNode as m,toDisplayString as g,withModifiers as f,normalizeClass as y,createVNode as w,vShow as k,nextTick as h}from"vue";import{NSpin as x,NTag as _,NAvatar as C,NBadge as b}from"naive-ui";import M from"./ContextMenu.js";import{useData as j}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as L}from"../constants/index.js";import{toppingSessionApi as B}from"../api/index.js";import{listSort as N,formatTime as R}from"../utils/index.js";import"trtc-sdk-v5";import{vFlexibleResize as S}from"../../../../shared/directive/flexibleResize.js";const T={class:"sider-list__filter box-shadow"},D=["onClick","onContextmenu"],E={class:"avatar-right"},H={class:"name"},z={class:"msg-tip"},I={class:"msg-tip__content"},K={key:0},U=["innerHTML"];var W=e({__name:"SiderList",setup(e){var W,A,V;const X="all",Y="unread",$="ended";let q=[];const F=t(300),G=t(),J=t(!1),O=t([{label:(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.123"))||"全部",key:X},{label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.124"))||"未读",key:Y},{label:(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.77"))||"结束",key:$}]),P=t(),Q=t(!1),Z=t({left:0,top:0}),ee=t(),te=t("all"),{state:le,unreadTotal:ie,openSession:ne,setUpdateSessionItem:oe}=j(),ae=l((()=>Math.min(Math.max(F.value,240),360))),se=l((()=>N(le.sessionList)));function ue({distance:e}){F.value=F.value+e}function de(e,t=s(te)){var l;return t===X||(t===Y?q.includes(e.sessionKey)||(null!=(l=e.unreadNum)?l:0)>0:t===$?e.status===L.ENDED:void 0)}async function re(e,t){if("topping"!==e);else try{await B({id:t.id,topping:!(null==t?void 0:t.topping)}),oe({...t,topping:!(null==t?void 0:t.topping)})}catch(e){}}return(e,t)=>i((n(),o("section",{class:"sider-list",style:a({width:s(ae)+"px"})},[J.value?(n(),u(s(x),{key:0,stroke:"#5585f5"})):d("v-if",!0),d(' <n-input v-else placeholder="输入用户名模糊搜索" v-model:value="keyword" @keyup.enter="handleSearch"></n-input> '),r("div",T,[(n(!0),o(v,null,p(O.value,(e=>(n(),u(s(_),{type:te.value===e.key?"info":"default",round:"",bordered:!1,key:e.key,onClick:()=>{return t=e.key,te.value=t,void(t===Y&&(q=(se.value.filter((e=>{var t;return(null!=(t=e.unreadNum)?t:0)>0}))||[]).map((e=>e.sessionKey))));var t}},{default:c((()=>{return[m(g(e.label)+"("+g((t=e,t.key===$?se.value.filter((e=>e.status===L.ENDED)).length:ie.value))+") ",1)];var t})),_:2},1032,["type","onClick"])))),128))]),r("div",{class:"sider-list__box",ref_key:"listBoxRef",ref:G},[(n(!0),o(v,null,p(s(se),(e=>{var t;return i((n(),o("div",{key:e.id,onClick:()=>s(ne)(e),onContextmenu:f((t=>async function(e,t){var l,i,n,o,a;ee.value=t,Q.value=!0,await h();const{clientX:s,clientY:u}=e,{width:d=0,height:r=0,left:v=0,top:p=0}=(null==(l=G.value)?void 0:l.getBoundingClientRect())||{},{width:c=100,height:m=80}=(null==(n=null==(i=P.value)?void 0:i.$el)?void 0:n.getBoundingClientRect())||{},g=null!=(a=null==(o=G.value)?void 0:o.scrollTop)?a:0,f={};s<v+d-(c+2)-5?f.left=s-v+5+"px":f.right=v+d-s+5+"px",p+r-u<=m+5?f.bottom=5-g+"px":f.top=u-p+g+5+"px",Z.value=f}(t,e.id)),["prevent"]),class:y(["sider-list__box__item",{active:e.id===s(le).id},e.topping?"sider-list__box__item--top":""])},[w(s(C),{round:"",size:"large",src:e.avatar},null,8,["src"]),r("div",E,[r("div",H,[r("h4",null,g(e.name),1),r("span",null,g(e.lastMessage?s(R)(e.lastMessageSendTime).siderMsgTime:""),1)]),r("div",z,[r("div",I,["WITHDRAWN"===e.lastMessageStatus?(n(),o("div",K,(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.68"))||"撤回了一条消息")):(n(),o("div",{key:1,innerHTML:e.lastMessageContent},null,8,U))]),w(s(b),{value:e.unreadNum>99?"99+":e.unreadNum},null,8,["value"])])])],42,D)),[[k,de(e)]])})),128)),w(s(M),{ref_key:"contextmenuRef",ref:P,show:Q.value,"onUpdate:show":t[0]||(t[0]=e=>Q.value=e),type:"session",position:Z.value,id:ee.value,onSelect:re},null,8,["show","position","id"])],512)],4)),[[s(S),{mode:"VR",onMove:ue}]])}});export{W as default};
1
+ import{defineComponent as e,ref as t,computed as l,withDirectives as i,openBlock as n,createElementBlock as o,normalizeStyle as s,unref as a,createBlock as u,createCommentVNode as d,createElementVNode as r,Fragment as v,renderList as p,withCtx as c,createTextVNode as m,toDisplayString as g,withModifiers as f,normalizeClass as y,createVNode as w,vShow as k,nextTick as h}from"vue";import{NSpin as x,NTag as _,NAvatar as C,NBadge as b}from"naive-ui";import M from"./ContextMenu.js";import{useData as j}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{STATUS as L}from"../constants/index.js";import{toppingSessionApi as B}from"../api/index.js";import{listSort as N,formatTime as R}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";import{vFlexibleResize as S}from"../../../../shared/directive/flexibleResize.js";const T={class:"sider-list__filter box-shadow"},D=["onClick","onContextmenu"],E={class:"avatar-right"},H={class:"name"},z={class:"msg-tip"},I={class:"msg-tip__content"},K={key:0},U=["innerHTML"];var W=e({__name:"SiderList",setup(e){var W,A,V;const X="all",Y="unread",$="ended";let q=[];const F=t(300),G=t(),J=t(!1),O=t([{label:(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.123"))||"全部",key:X},{label:(null==(A=window.getLanguageByCode)?void 0:A.call(window,"10010.1.124"))||"未读",key:Y},{label:(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.77"))||"结束",key:$}]),P=t(),Q=t(!1),Z=t({left:0,top:0}),ee=t(),te=t("all"),{state:le,unreadTotal:ie,openSession:ne,setUpdateSessionItem:oe}=j(),se=l((()=>Math.min(Math.max(F.value,240),360))),ae=l((()=>N(le.sessionList)));function ue({distance:e}){F.value=F.value+e}function de(e,t=a(te)){var l;return t===X||(t===Y?q.includes(e.sessionKey)||(null!=(l=e.unreadNum)?l:0)>0:t===$?e.status===L.ENDED:void 0)}async function re(e,t){if("topping"!==e);else try{await B({id:t.id,topping:!(null==t?void 0:t.topping)}),oe({...t,topping:!(null==t?void 0:t.topping)})}catch(e){}}return(e,t)=>i((n(),o("section",{class:"sider-list",style:s({width:a(se)+"px"})},[J.value?(n(),u(a(x),{key:0,stroke:"#5585f5"})):d("v-if",!0),d(' <n-input v-else placeholder="输入用户名模糊搜索" v-model:value="keyword" @keyup.enter="handleSearch"></n-input> '),r("div",T,[(n(!0),o(v,null,p(O.value,(e=>(n(),u(a(_),{type:te.value===e.key?"info":"default",round:"",bordered:!1,key:e.key,onClick:()=>{return t=e.key,te.value=t,void(t===Y&&(q=(ae.value.filter((e=>{var t;return(null!=(t=e.unreadNum)?t:0)>0}))||[]).map((e=>e.sessionKey))));var t}},{default:c((()=>{return[m(g(e.label)+"("+g((t=e,t.key===$?ae.value.filter((e=>e.status===L.ENDED)).length:ie.value))+") ",1)];var t})),_:2},1032,["type","onClick"])))),128))]),r("div",{class:"sider-list__box",ref_key:"listBoxRef",ref:G},[(n(!0),o(v,null,p(a(ae),(e=>{var t;return i((n(),o("div",{key:e.id,onClick:()=>a(ne)(e),onContextmenu:f((t=>async function(e,t){var l,i,n,o,s;ee.value=t,Q.value=!0,await h();const{clientX:a,clientY:u}=e,{width:d=0,height:r=0,left:v=0,top:p=0}=(null==(l=G.value)?void 0:l.getBoundingClientRect())||{},{width:c=100,height:m=80}=(null==(n=null==(i=P.value)?void 0:i.$el)?void 0:n.getBoundingClientRect())||{},g=null!=(s=null==(o=G.value)?void 0:o.scrollTop)?s:0,f={};a<v+d-(c+2)-5?f.left=a-v+5+"px":f.right=v+d-a+5+"px",p+r-u<=m+5?f.bottom=5-g+"px":f.top=u-p+g+5+"px",Z.value=f}(t,e.id)),["prevent"]),class:y(["sider-list__box__item",{active:e.id===a(le).id},e.topping?"sider-list__box__item--top":""])},[w(a(C),{round:"",size:"large",src:e.avatar},null,8,["src"]),r("div",E,[r("div",H,[r("h4",null,g(e.name),1),r("span",null,g(e.lastMessage?a(R)(e.lastMessageSendTime).siderMsgTime:""),1)]),r("div",z,[r("div",I,["WITHDRAWN"===e.lastMessageStatus?(n(),o("div",K,(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.68"))||"撤回了一条消息")):(n(),o("div",{key:1,innerHTML:e.lastMessageContent},null,8,U))]),w(a(b),{value:e.unreadNum>99?"99+":e.unreadNum},null,8,["value"])])])],42,D)),[[k,de(e)]])})),128)),w(a(M),{ref_key:"contextmenuRef",ref:P,show:Q.value,"onUpdate:show":t[0]||(t[0]=e=>Q.value=e),type:"session",position:Z.value,id:ee.value,onSelect:re},null,8,["show","position","id"])],512)],4)),[[a(S),{mode:"VR",onMove:ue}]])}});export{W as default};
@@ -1 +1 @@
1
- import{createElementVNode as e,defineComponent as o,ref as n,computed as s,watch as t,onBeforeUnmount as a,openBlock as r,createElementBlock as l,withDirectives as i,vShow as c,createVNode as u,unref as d,toDisplayString as v,Fragment as m,normalizeClass as p,withCtx as g}from"vue";import{NAvatar as f,NButton as w,NIcon as h}from"naive-ui";import{Mic as I,MicOffCircle as y,Call as A}from"@vicons/ionicons5";import{avFinishApi as k}from"../api/index.js";import"@vueuse/core";import"../utils/index.js";import"lodash-es";import{AV_STATUS as E,CHAT_TYPE as V}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 R}from"../hooks/useVideo.js";import S from"trtc-sdk-v5";var C,M,b,L;const T={class:"video-wrapper"},j={class:"user"},x={class:"name"},_={class:"tip"},N={class:"opt-btn"},H={class:"btn"},D=e("span",null,(null==(C=window.getLanguageByCode)?void 0:C.call(window,"10010.1.104"))||"静音",-1),z=e("span",null,(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.113"))||"拒接",-1),B={class:"btn"},U=e("span",null,(null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.125"))||"挂断",-1),F=e("span",null,(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.114"))||"接听",-1);var O=o({__name:"Video",setup(o){const{sendMessage:C,state:M,trtc:b,timing:L,voiceOpen:O,isAudio:G,isCall:J,startTimer:P,resetTimer:$,toggleAudio:q,messageTypeText:K,time:Q,installEventHandlers:W,uninstallEventHandlers:X}=R(),Y=n(),Z=n(),ee=n(!1);let oe=null;const ne=s((()=>{var e,o,n;return J.value?{avatar:M.currentSessionItem.avatar,name:M.currentSessionItem.name,userId:M.currentSessionItem.receiver}:{avatar:null==(e=M.currentAVMsg.currentMsg)?void 0:e.senderAvatar,name:null==(o=M.currentAVMsg.currentMsg)?void 0:o.senderName,userId:null==(n=M.currentAVMsg.currentMsg)?void 0:n.sender}})),se=s((()=>ee.value?G.value?L.value:"":J.value?"正在呼叫...":`邀请你${K.value}问诊...`)),te=s((()=>{var e,o;return null==(o=null==(e=M.currentAVMsg.currentMsg)?void 0:e.content)?void 0:o.avStatus}));async function ae(e=E.FINISHED){C({chatType:V.SINGLE,content:{msg:e===E.FINISHED?""+Q.seconds:"s",chatMessageType:M.currentAVMsg.chatMessageType,avStatus:e},receiver:ne.value.userId}),await k({recordId:M.currentAVMsg.currentMsg.id,status:e,duration:e===E.FINISHED?Q.seconds:0})}async function re(){const e=await S.isSupported();if(!e.result||!e.detail.isH264EncodeSupported||!e.detail.isH264DecodeSupported)return console.log("checkResult :>> ",e),void(M.showVideo=!1);try{if(await b.enterRoom({strRoomId:M.currentAVMsg.strRoomId,sdkAppId:parseInt(M.userInfo.sdkAppID),userId:M.userInfo.id,userSig:M.userInfo.userSig}),J.value||(ee.value=!0,P()),W({handleError:me,handleRemoteUserEnter:de,handleRemoteAudioAvailable:ue,handleRemoteUserExit:ve,handleRemoteVideoAvailable:ce}),await b.startLocalAudio(),G.value)return;await b.startLocalVideo({view:Z.value})}catch(e){console.log("error :>> ",e),M.showVideo=!1}}function le(){J.value&&!ee.value?ae(E.CANCELED):ae()}async function ie(){try{if(M.showVideo=!1,X({handleError:me,handleRemoteUserEnter:de,handleRemoteAudioAvailable:ue,handleRemoteUserExit:ve,handleRemoteVideoAvailable:ce}),await b.exitRoom(),await b.stopLocalAudio(),G.value)return;await b.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function ce(e){const{userId:o,streamType:n}=e;try{await b.startRemoteVideo({userId:o,streamType:n,view:Y.value})}catch(e){console.log("error :>> ",e)}}function ue(e){}function de(){ee.value=!0,P()}function ve(e){console.log("event :>> 对方已挂断",e),ie()}function me(e){console.log("error :>> ",e),M.showVideo=!1}return t((()=>te.value),(e=>{M.showVideo&&(e===E.IN_CALL?async function(){J.value?re():(oe&&clearTimeout(oe),oe=setTimeout((async()=>{ee.value||ae(E.NO_RESPONSE)}),6e4))}():ie())}),{immediate:!0}),a((()=>{ie()})),(o,n)=>(r(),l("div",T,[i(e("div",{class:"video-box",ref_key:"videoRef",ref:Y},null,512),[[c,ee.value]]),i(e("div",{class:"video-box--self",ref_key:"selfVideoRef",ref:Z},null,512),[[c,ee.value]]),i(e("div",j,[u(d(f),{size:58,round:"",src:d(ne).avatar},null,8,["src"]),e("span",x,v(d(ne).name),1),e("span",_,v(d(se)),1)],512),[[c,d(G)||!ee.value]]),e("div",N,[e("div",H,[d(J)&&!ee.value||ee.value?(r(),l(m,{key:0},[u(d(w),{circle:"",onClick:d(q),class:p({bordered:d(O)})},{icon:g((()=>[u(d(h),{size:"30",color:d(O)?"#fff":"#626262",component:d(O)?d(I):d(y)},null,8,["color","component"])])),_:1},8,["onClick","class"]),D],64)):(r(),l(m,{key:1},[u(d(w),{circle:"",color:"#f17568",class:"btn--rotate",onClick:n[0]||(n[0]=()=>ae(d(E).REJECTED))},{icon:g((()=>[u(d(h),{size:"30",component:d(A)},null,8,["component"])])),_:1}),z],64))]),e("div",B,[d(J)&&!ee.value||ee.value?(r(),l(m,{key:0},[u(d(w),{circle:"",color:"#f17568",class:"btn--rotate",onClick:le},{icon:g((()=>[u(d(h),{size:"30",component:d(A)},null,8,["component"])])),_:1}),U],64)):(r(),l(m,{key:1},[u(d(w),{circle:"",color:"#2ac98b",onClick:re},{icon:g((()=>[u(d(h),{size:"30",component:d(A)},null,8,["component"])])),_:1}),F],64))])])]))}});export{O as default};
1
+ import{createElementVNode as e,defineComponent as o,ref as n,computed as s,watch as t,onBeforeUnmount as r,openBlock as a,createElementBlock as l,withDirectives as i,vShow as c,createVNode as u,unref as d,toDisplayString as v,Fragment as m,normalizeClass as p,withCtx as g}from"vue";import{NAvatar as f,NButton as w,NIcon as h}from"naive-ui";import{Mic as I,MicOffCircle as y,Call as A}from"@vicons/ionicons5";import{avFinishApi as k}from"../api/index.js";import"@vueuse/core";import{$message as E}from"../utils/index.js";import"lodash-es";import{AV_STATUS as V,CHAT_TYPE as R}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 S}from"../hooks/useVideo.js";import C from"trtc-sdk-v5";var M,b,L,T;const j={class:"video-wrapper"},x={class:"user"},_={class:"name"},N={class:"tip"},H={class:"opt-btn"},D={class:"btn"},z=e("span",null,(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.104"))||"静音",-1),B=e("span",null,(null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.113"))||"拒接",-1),U={class:"btn"},F=e("span",null,(null==(L=window.getLanguageByCode)?void 0:L.call(window,"10010.1.125"))||"挂断",-1),O=e("span",null,(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.126"))||"接听",-1);var G=o({__name:"Video",setup(o){const{sendMessage:M,state:b,trtc:L,timing:T,voiceOpen:G,isAudio:J,isCall:P,startTimer:$,resetTimer:q,toggleAudio:K,messageTypeText:Q,time:W,installEventHandlers:X,uninstallEventHandlers:Y}=S(),Z=n(),ee=n(),oe=n(!1);let ne=null;const se=s((()=>{var e,o,n;return P.value?{avatar:b.currentSessionItem.avatar,name:b.currentSessionItem.name,userId:b.currentSessionItem.receiver}:{avatar:null==(e=b.currentAVMsg.currentMsg)?void 0:e.senderAvatar,name:null==(o=b.currentAVMsg.currentMsg)?void 0:o.senderName,userId:null==(n=b.currentAVMsg.currentMsg)?void 0:n.sender}})),te=s((()=>oe.value?J.value?T.value:"":P.value?"正在呼叫...":`邀请你${Q.value}问诊...`)),re=s((()=>{var e,o;return null==(o=null==(e=b.currentAVMsg.currentMsg)?void 0:e.content)?void 0:o.avStatus}));async function ae(e=V.FINISHED){M({chatType:R.SINGLE,content:{msg:e===V.FINISHED?""+W.seconds:"s",chatMessageType:b.currentAVMsg.chatMessageType,avStatus:e},receiver:se.value.userId}),await k({recordId:b.currentAVMsg.currentMsg.id,status:e,duration:e===V.FINISHED?W.seconds:0})}async function le(){const e=await C.isSupported();if(!e.result||!e.detail.isH264EncodeSupported||!e.detail.isH264DecodeSupported)return console.log("checkResult :>> ",e),void(b.showVideo=!1);try{if(await L.enterRoom({strRoomId:b.currentAVMsg.strRoomId,sdkAppId:parseInt(b.userInfo.sdkAppID),userId:b.userInfo.id,userSig:b.userInfo.userSig}),P.value||(oe.value=!0,$()),X({handleError:pe,handleRemoteUserEnter:ve,handleRemoteAudioAvailable:de,handleRemoteUserExit:me,handleRemoteVideoAvailable:ue}),await L.startLocalAudio(),J.value)return;await L.startLocalVideo({view:ee.value})}catch(e){console.log("error :>> ",e),E.error(e),b.showVideo=!1}}function ie(){P.value&&!oe.value?ae(V.CANCELED):ae()}async function ce(){try{if(b.showVideo=!1,Y({handleError:pe,handleRemoteUserEnter:ve,handleRemoteAudioAvailable:de,handleRemoteUserExit:me,handleRemoteVideoAvailable:ue}),await L.exitRoom(),await L.stopLocalAudio(),J.value)return;await L.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function ue(e){const{userId:o,streamType:n}=e;try{await L.startRemoteVideo({userId:o,streamType:n,view:Z.value})}catch(e){console.log("error :>> ",e)}}function de(e){}function ve(){oe.value=!0,$()}function me(e){console.log("event :>> 对方已挂断",e),ce()}function pe(e){console.log("error :>> ",e),b.showVideo=!1}return t((()=>re.value),(e=>{b.showVideo&&(e===V.IN_CALL?async function(){P.value?le():(ne&&clearTimeout(ne),ne=setTimeout((async()=>{oe.value||ae(V.NO_RESPONSE)}),6e4))}():ce())}),{immediate:!0}),r((()=>{ce()})),(o,n)=>(a(),l("div",j,[i(e("div",{class:"video-box",ref_key:"videoRef",ref:Z},null,512),[[c,oe.value]]),i(e("div",{class:"video-box--self",ref_key:"selfVideoRef",ref:ee},null,512),[[c,oe.value]]),i(e("div",x,[u(d(f),{size:58,round:"",src:d(se).avatar},null,8,["src"]),e("span",_,v(d(se).name),1),e("span",N,v(d(te)),1)],512),[[c,d(J)||!oe.value]]),e("div",H,[e("div",D,[d(P)&&!oe.value||oe.value?(a(),l(m,{key:0},[u(d(w),{circle:"",onClick:d(K),class:p({bordered:d(G)})},{icon:g((()=>[u(d(h),{size:"30",color:d(G)?"#fff":"#626262",component:d(G)?d(I):d(y)},null,8,["color","component"])])),_:1},8,["onClick","class"]),z],64)):(a(),l(m,{key:1},[u(d(w),{circle:"",color:"#f17568",class:"btn--rotate",onClick:n[0]||(n[0]=()=>ae(d(V).REJECTED))},{icon:g((()=>[u(d(h),{size:"30",component:d(A)},null,8,["component"])])),_:1}),B],64))]),e("div",U,[d(P)&&!oe.value||oe.value?(a(),l(m,{key:0},[u(d(w),{circle:"",color:"#f17568",class:"btn--rotate",onClick:ie},{icon:g((()=>[u(d(h),{size:"30",component:d(A)},null,8,["component"])])),_:1}),F],64)):(a(),l(m,{key:1},[u(d(w),{circle:"",color:"#2ac98b",onClick:le},{icon:g((()=>[u(d(h),{size:"30",component:d(A)},null,8,["component"])])),_:1}),O],64))])])]))}});export{G as default};
@@ -29,7 +29,8 @@ export declare enum SUBSCRIBE_MESSAGE_TYPE {
29
29
  NEW_SESSION = "NEW_SESSION",
30
30
  MESSAGE = "MESSAGE",
31
31
  AV_STATUS = "AV_STATUS",
32
- RECALL_MESSAGE = "RECALL_MESSAGE"
32
+ RECALL_MESSAGE = "RECALL_MESSAGE",
33
+ DISABLE_SESSION = "DISABLE_SESSION"
33
34
  }
34
35
  /**
35
36
  * 音视频接通状态
@@ -1 +1 @@
1
- var E=(E=>(E.SINGLE="SINGLE",E.GROUP="GROUP",E))(E||{}),A=(E=>(E.TEXT="TEXT",E.FILE="FILE",E.EMOJI="EMOJI",E.IMAGE="IMAGE",E.TEMPLATE="TEMPLATE",E.BLEND="BLEND",E.FORWARD="FORWARD",E.QUICK_REPLY="QUICK_REPLY",E.AUDIO="AUDIO",E.VIDEO="VIDEO",E))(A||{}),L=(E=>(E.JOIN_GROUP="JOIN_GROUP",E.LEAVE_GROUP="LEAVE_GROUP",E.NEW_SESSION="NEW_SESSION",E.MESSAGE="MESSAGE",E.AV_STATUS="AV_STATUS",E.RECALL_MESSAGE="RECALL_MESSAGE",E))(L||{}),S=(E=>(E.IN_CALL="IN_CALL",E.CALL_BUSY="CALL_BUSY",E.NO_RESPONSE="NO_RESPONSE",E.FINISHED="FINISHED",E.REJECTED="REJECTED",E.CANCELED="CANCELED",E))(S||{}),I=(E=>(E.REMOVED="REMOVED",E.ENABLED="ENABLED",E.ENDED="ENDED",E.EXITED="EXITED",E))(I||{});export{S as AV_STATUS,E as CHAT_TYPE,A as MESSAGE_TYPE,I as STATUS,L as SUBSCRIBE_MESSAGE_TYPE};
1
+ var E=(E=>(E.SINGLE="SINGLE",E.GROUP="GROUP",E))(E||{}),S=(E=>(E.TEXT="TEXT",E.FILE="FILE",E.EMOJI="EMOJI",E.IMAGE="IMAGE",E.TEMPLATE="TEMPLATE",E.BLEND="BLEND",E.FORWARD="FORWARD",E.QUICK_REPLY="QUICK_REPLY",E.AUDIO="AUDIO",E.VIDEO="VIDEO",E))(S||{}),A=(E=>(E.JOIN_GROUP="JOIN_GROUP",E.LEAVE_GROUP="LEAVE_GROUP",E.NEW_SESSION="NEW_SESSION",E.MESSAGE="MESSAGE",E.AV_STATUS="AV_STATUS",E.RECALL_MESSAGE="RECALL_MESSAGE",E.DISABLE_SESSION="DISABLE_SESSION",E))(A||{}),I=(E=>(E.IN_CALL="IN_CALL",E.CALL_BUSY="CALL_BUSY",E.NO_RESPONSE="NO_RESPONSE",E.FINISHED="FINISHED",E.REJECTED="REJECTED",E.CANCELED="CANCELED",E))(I||{}),L=(E=>(E.REMOVED="REMOVED",E.ENABLED="ENABLED",E.ENDED="ENDED",E.EXITED="EXITED",E))(L||{});export{I as AV_STATUS,E as CHAT_TYPE,S as MESSAGE_TYPE,L as STATUS,A as SUBSCRIBE_MESSAGE_TYPE};