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

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 (182) hide show
  1. package/README.md +87 -87
  2. package/es/components/ai-chat/src/components/ChatCard.js +1 -1
  3. package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
  4. package/es/components/ai-chat/src/components/ChatMain.js +1 -1
  5. package/es/components/ai-chat/src/components/ChatPatient.vue2.js +1 -1
  6. package/es/components/ai-chat/src/components/ChatPrompt.vue2.js +1 -1
  7. package/es/components/audio-sdk/src/components/recording.vue2.js +1 -1
  8. package/es/components/big-table/src/BigTable.vue2.js +1 -1
  9. package/es/components/big-table/src/components/edit-form/edit-date.js +1 -1
  10. package/es/components/big-table/src/components/edit-form/edit-select.js +1 -1
  11. package/es/components/big-table/src/components/edit-form/edit-time.js +1 -1
  12. package/es/components/big-table/src/components/input-button.vue2.js +1 -1
  13. package/es/components/big-table/src/hooks/useTableParse.js +1 -1
  14. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  15. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  16. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  17. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  18. package/es/components/button-print/src/components/IdentityVerification.vue2.js +1 -1
  19. package/es/components/button-print/src/components/NewPrintComponent.vue2.js +1 -1
  20. package/es/components/classification/src/components/search-filter/index.vue2.js +1 -1
  21. package/es/components/classification/src/components/set-classification/index.vue2.js +1 -1
  22. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  23. package/es/components/classification/src/components/table-modal/index.vue2.js +1 -1
  24. package/es/components/classification/src/index.vue2.js +1 -1
  25. package/es/components/expand-field/src/components/FormBatchOptionsModal.vue2.js +1 -1
  26. package/es/components/expand-field/src/components/PersonModal.vue2.js +1 -1
  27. package/es/components/expand-field/src/components/form.vue2.js +1 -1
  28. package/es/components/expand-field/src/index.vue2.js +1 -1
  29. package/es/components/expand-field/src/utils/constant.js +1 -1
  30. package/es/components/fabric-chart/src/FabricChart.vue2.js +1 -1
  31. package/es/components/fabric-chart/src/components/PopupMenu.js +1 -1
  32. package/es/components/fabric-chart/src/constants/index.js +1 -1
  33. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcess.js +1 -1
  34. package/es/components/fabric-chart/src/hooks/birthProcess/useBirthProcessChart.js +1 -1
  35. package/es/components/fabric-chart/src/hooks/electrocardiogram/hooks/useDetailEvent.js +1 -1
  36. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogram.js +1 -1
  37. package/es/components/fabric-chart/src/hooks/electrocardiogram/useElectrocardiogramChart.js +1 -1
  38. package/es/components/fabric-chart/src/hooks/electrocardiogram/useMeasureInstrument.js +1 -1
  39. package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcess.js +1 -1
  40. package/es/components/fabric-chart/src/hooks/newBirthProcess/useNewBirthProcessChart.js +1 -1
  41. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useCenter.js +1 -1
  42. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useLeft.js +1 -1
  43. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useSurgicalAnesthesiaChart.js +1 -1
  44. package/es/components/fabric-chart/src/hooks/surgicalAnesthesia/useTop.js +1 -1
  45. package/es/components/fabric-chart/src/hooks/temperature/useBottom.js +1 -1
  46. package/es/components/fabric-chart/src/hooks/temperature/useCenter.js +1 -1
  47. package/es/components/fabric-chart/src/hooks/temperature/useLeft.js +1 -1
  48. package/es/components/fabric-chart/src/hooks/temperature/useOther.js +1 -1
  49. package/es/components/fabric-chart/src/hooks/temperature/useTemperatureChart.js +1 -1
  50. package/es/components/fabric-chart/src/hooks/temperature/useTop.js +1 -1
  51. package/es/components/fabric-chart/src/hooks/useCommon.js +1 -1
  52. package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
  53. package/es/components/field-set/src/FieldColor.vue2.js +1 -1
  54. package/es/components/field-set/src/FieldFilter.vue2.js +1 -1
  55. package/es/components/field-set/src/FieldSet.vue2.js +1 -1
  56. package/es/components/field-set/src/Index.vue2.js +1 -1
  57. package/es/components/field-set/src/TableStyle.vue2.js +1 -1
  58. package/es/components/field-set/src/components/condition.vue2.js +1 -1
  59. package/es/components/field-set/src/components/edit-dialog.vue.d.ts +1 -1
  60. package/es/components/field-set/src/components/edit-dialog.vue2.js +1 -1
  61. package/es/components/field-set/src/components/edit-filter.vue2.js +1 -1
  62. package/es/components/field-set/src/components/table-row.vue2.js +1 -1
  63. package/es/components/field-set/src/constants/filter.js +1 -1
  64. package/es/components/field-set/src/constants/index.js +1 -1
  65. package/es/components/form-config/index.d.ts +108 -3
  66. package/es/components/form-config/src/FormConfig.vue.d.ts +108 -3
  67. package/es/components/form-config/src/FormConfig.vue2.js +1 -1
  68. package/es/components/form-config/src/components/FormConfigEventSetting.vue.js +1 -0
  69. package/es/components/form-config/src/components/FormConfigEventSetting.vue2.js +1 -0
  70. package/es/components/form-config/src/constants/index.js +1 -1
  71. package/es/components/form-config/src/hooks/useLocale.js +1 -1
  72. package/es/components/form-render/src/components/renderer/combination/hooks/useCombination.js +1 -1
  73. package/es/components/form-render/src/components/renderer/combination/jsonCombination.js +1 -1
  74. package/es/components/form-render/src/components/renderer/combination/tableCombination.js +1 -1
  75. package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
  76. package/es/components/form-render/src/components/renderer/switch.js +1 -1
  77. package/es/components/iho-chat/index.d.ts +55 -2
  78. package/es/components/iho-chat/src/Index.vue.d.ts +55 -2
  79. package/es/components/iho-chat/src/Index.vue2.js +1 -1
  80. package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
  81. package/es/components/iho-chat/src/components/ChatFile.vue2.js +1 -1
  82. package/es/components/iho-chat/src/components/ChatFooter.vue2.js +1 -1
  83. package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +11 -2
  84. package/es/components/iho-chat/src/components/ChatMain.vue2.js +1 -1
  85. package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
  86. package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
  87. package/es/components/iho-chat/src/components/ChatSet.vue2.js +1 -1
  88. package/es/components/iho-chat/src/components/ContextMenu.d.ts +11 -2
  89. package/es/components/iho-chat/src/components/ContextMenu.js +1 -1
  90. package/es/components/iho-chat/src/components/MultipleVideo.vue2.js +1 -1
  91. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  92. package/es/components/iho-chat/src/components/SiderList.vue.d.ts +45 -0
  93. package/es/components/iho-chat/src/components/SiderList.vue2.js +1 -1
  94. package/es/components/iho-chat/src/components/Video.vue2.js +1 -1
  95. package/es/components/iho-chat/src/hooks/useVideo.js +1 -1
  96. package/es/components/iho-chat/src/utils/index.js +1 -1
  97. package/es/components/iho-chat/style/index.css +1 -1
  98. package/es/components/iho-table/src/hooks/useColumnConfigAdaptor.js +1 -1
  99. package/es/components/iho-table/src/plugins/dynamicFilterRenderPlugin/dynamicFilter.vue2.js +1 -1
  100. package/es/components/iho-table/src/plugins/filterRenderPlugin/filter.vue2.js +1 -1
  101. package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
  102. package/es/components/iho-table/src/plugins/filterTextPlugin/filter.vue2.js +1 -1
  103. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  104. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue2.js +1 -1
  105. package/es/components/iho-table/src/utils/index.js +1 -1
  106. package/es/components/index.css +1 -1
  107. package/es/components/info-header/src/components/patientInfo/index.vue2.js +1 -1
  108. package/es/components/keyboard/src/Keyboard.vue2.js +1 -1
  109. package/es/components/keyboard/src/components/NumberPanel.vue2.js +1 -1
  110. package/es/components/map/src/Map.vue2.js +1 -1
  111. package/es/components/picture-clipper/src/PictureClipper.vue2.js +1 -1
  112. package/es/components/quick-search/src/index.vue2.js +1 -1
  113. package/es/components/recommend-search/src/components/RecommendSelect.vue2.js +1 -1
  114. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  115. package/es/components/scale-view/src/components/formitem/r-cascader.js +1 -1
  116. package/es/components/scale-view/src/components/formitem/r-map.js +1 -1
  117. package/es/components/scale-view/src/components/formitem/r-select.js +1 -1
  118. package/es/components/scale-view/src/components/formitem/r-sign.js +1 -1
  119. package/es/components/scale-view/src/components/formitem/standard-modal.js +1 -1
  120. package/es/components/scale-view/src/hooks/scaleview-computed.js +1 -1
  121. package/es/components/scale-view/src/hooks/scaleview-methods.js +1 -1
  122. package/es/components/scale-view/src/hooks/scaleview-submit.js +1 -1
  123. package/es/components/scale-view/src/hooks/scaleview-validate.js +1 -1
  124. package/es/components/search-cascader/src/SearchCascader.vue2.js +1 -1
  125. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  126. package/es/components/select-label/src/SelectLabel.vue2.js +1 -1
  127. package/es/components/select-label/src/components/label-classify.vue2.js +1 -1
  128. package/es/components/select-label/src/ihoLabel/IhoSelectLabel.vue2.js +1 -1
  129. package/es/components/select-person/src/SelectPerson.vue2.js +1 -1
  130. package/es/components/select-person/src/SelectPersonType.vue2.js +1 -1
  131. package/es/components/select-person/src/index.vue2.js +1 -1
  132. package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
  133. package/es/components/table-export-field/src/components/SaveProjectModal.vue2.js +1 -1
  134. package/es/components/table-filter/src/components/bi-filter/helpers/options.js +1 -1
  135. package/es/components/table-filter/src/components/bi-filter/index.vue2.js +1 -1
  136. package/es/components/table-filter/src/components/classify-filter/components/Date.vue2.js +1 -1
  137. package/es/components/table-filter/src/components/classify-filter/components/DateRange.vue2.js +1 -1
  138. package/es/components/table-filter/src/components/classify-filter/helpers/options.js +1 -1
  139. package/es/components/table-filter/src/components/classify-filter/index.vue2.js +1 -1
  140. package/es/components/table-filter/src/components/render-widget/helpers/dateExtraMap.js +1 -1
  141. package/es/components/table-filter/src/components/render-widget/helpers/selectExtraMap.js +1 -1
  142. package/es/components/table-filter/src/tool/baseOptions.js +1 -1
  143. package/es/components/template-render/src/components/index.d.ts +23 -23
  144. package/es/components/tooth-bitmap/src/ToothBitmap.vue2.js +1 -1
  145. package/es/components/vod-chunk-upload/src/hooks/upload-computed.js +1 -1
  146. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue2.js +1 -1
  147. package/es/components/vod-chunk-upload/src/vod-upload-modal.js +1 -1
  148. package/es/env.d.ts +25 -25
  149. package/es/shared/assets/img/ai__avatar.png.js +1 -1
  150. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  151. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  152. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  153. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  154. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  155. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  156. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  157. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  158. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  159. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  160. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  161. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  162. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  163. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  164. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  165. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  166. package/es/shared/assets/img/failure.png.js +1 -1
  167. package/es/shared/assets/img/logo.png.js +1 -1
  168. package/es/shared/assets/img/no-permission.png.js +1 -1
  169. package/es/shared/assets/img/nodata.png.js +1 -1
  170. package/es/shared/assets/img/notfound.png.js +1 -1
  171. package/es/shared/assets/img/qr.png.js +1 -1
  172. package/es/shared/assets/img/success.png.js +1 -1
  173. package/es/shared/assets/img/table_style_2.png.js +1 -1
  174. package/es/shared/assets/img/video.png.js +1 -1
  175. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  176. package/es/shared/assets/img/xb_big.png.js +1 -1
  177. package/es/shared/assets/img/xb_small.png.js +1 -1
  178. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  179. package/es/shared/package.json.js +1 -1
  180. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  181. package/es/shared/utils/tapable/index.d.ts +139 -0
  182. package/package.json +2 -2
@@ -1 +1 @@
1
- import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as u,Fragment as o,createVNode as r,unref as s,withCtx as n,createElementVNode as d,createCommentVNode as v,isRef as c,renderList as p,createBlock as m,toDisplayString as f,createTextVNode as h,normalizeClass as b,renderSlot as g}from"vue";import{NModal as y,NInput as k,NIcon as I,NCheckbox as w,NCheckboxGroup as _,NSpace as x,NAvatar as S,NTag as j,NTooltip as U,NButton as C}from"naive-ui";import{SearchOutline as R,AddOutline as L}from"@vicons/ionicons5";import{useData as V}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as A}from"../constants/index.js";import{groupLeaveApi as E,groupJoinApi as G,groupCreateApi as N}from"../api/index.js";import{listSort as $}from"../utils/index.js";import"trtc-sdk-v5";import{cloneDeep as z,union as D,intersection as M,unionBy as T,remove as B,isArray as P,uniqBy as q,trim as F}from"lodash-es";import{useSearchUserList as H}from"../hooks/useSearchUserList.js";const J={class:"iho-chat-dialog__content iho-chat-add-wrapper"},K={key:0,class:"input-box"},O=d("span",null,"群名称:",-1),Q={class:"transfer-box"},W={class:"transfer-box__left"},X={class:"user-list-box"},Y={key:1,class:"no-data"},Z={class:"transfer-box__right"},ee={class:"checked-tag-box"},ae={key:0,class:"input-wrapper"};var le=e({__name:"ChatAdd",props:{title:{type:String,default:"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["comfirm"],setup(e,{emit:le}){const te=e,{state:ie,setCurrentSessionItem:ue}=V(),oe=a(),re=a(""),se=a(!1),ne=a([]),de=a([]),ve=a(""),ce=a([]),pe=a(""),{userList:me,handleInput:fe}=H({wrapperRef:oe,keywordRef:re,before:()=>{me.value=z(de.value),we()},after:()=>{he.value.length&&me.value.forEach((e=>{var a;e.disabled=null==(a=he.value)?void 0:a.includes(e.id)})),we()}}),he=l((()=>"relay"===te.mode?[]:D(te.disabledIds,[ie.userInfo.id]))),be=l((()=>{var e,a;if(!(null==(e=ie.sessionList)?void 0:e.length))return[];const l=$(ie.sessionList);return null==(a="relay"===te.mode?l:l.filter((e=>e.chatType===A.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar})))})),ge=l((()=>ne.value.length?ne.value.map((e=>e.id)):[])),ye=l((()=>"create"===te.mode?ge.value.length<3:ge.value.length<1)),ke=l({get:()=>ce.value.filter((e=>!he.value.includes(e))).length===me.value.filter((e=>!e.disabled)).length,set(e){const a=te.defaultValue.map((e=>e.id)),l=M(a,he.value,me.value.map((e=>e.id))),t=me.value.filter((e=>!e.disabled));ce.value=l.concat(e?t.map((e=>e.id)):[]),e?ne.value=T(ne.value,t,"id"):B(ne.value,(e=>t.map((e=>e.id)).includes(e.id)))}});async function Ie(){switch(te.mode){case"create":await N({creator:ie.userInfo.id,memberIdSet:ge.value,name:F(ve.value),orgId:ie.orgId});break;case"join":if(await G({groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:ge.value}),!ie.currentSessionItem.defaultName){const e=ne.value.map((e=>e.name)).join(",");ue({name:`${ie.currentSessionItem.name},${e}`})}ie.currentGroupUser.push(...me.value.filter((e=>ge.value.includes(e.id))));break;case"remove":if(await E({dissolution:!1,groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:ge.value}),!ie.currentSessionItem.defaultName){const e=ne.value.map((e=>e.name)).join(","),a=new RegExp(e,"g");ue({name:ie.currentSessionItem.name.replace(a,"")})}B(ie.currentGroupUser,(e=>ge.value.includes(e.id)));break;default:le("comfirm",ge.value,pe.value)}se.value=!1}function we(){var e,a;ce.value=null!=(a=null==(e=me.value.filter((e=>ge.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function _e(e,a){if("check"===a.actionType){const e=me.value.find((e=>e.id===a.value));ne.value.push(e)}else B(ne.value,(e=>e.id===a.value))}return t((()=>se.value),(e=>{if(!e)return;re.value="",ve.value="";const a=P(te.options)&&te.options.length?te.options:be.value;de.value=q(a,"id").map((e=>{var a;return{...e,disabled:null==(a=he.value)?void 0:a.includes(e.id)}})),me.value=z(de.value),P(te.defaultValue)&&te.defaultValue.length?(ne.value=z(te.defaultValue),we()):(ne.value=[],ce.value=[])})),(a,l)=>(i(),u(o,null,[r(s(y),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:se.value,"onUpdate:show":l[5]||(l[5]=e=>se.value=e),"negative-text":"取消","positive-text":"确定","display-directive":"show","positive-button-props":{disabled:s(ye)},onPositiveClick:Ie},{default:n((()=>[d("div",J,["create"===e.mode?(i(),u("div",K,[O,r(s(k),{clearable:"",placeholder:"取个群名称方便后续搜索",value:ve.value,"onUpdate:value":l[0]||(l[0]=e=>ve.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),d("div",Q,[d("div",W,[r(s(k),{placeholder:"搜索",clearable:"",value:re.value,"onUpdate:value":[l[1]||(l[1]=e=>re.value=e),s(fe)],valueModifiers:{trim:!0}},{prefix:n((()=>[r(s(I),{component:s(R)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),d("div",X,[s(me).length>0?(i(),u(o,{key:0},[r(s(w),{label:"全选",checked:s(ke),"onUpdate:checked":l[2]||(l[2]=e=>c(ke)?ke.value=e:null)},null,8,["checked"]),r(s(_),{ref_key:"listRef",ref:oe,value:ce.value,"onUpdate:value":[l[3]||(l[3]=e=>ce.value=e),_e]},{default:n((()=>[(i(!0),u(o,null,p(s(me),(e=>(i(),m(s(w),{key:e.id,value:e.id,disabled:e.disabled},{default:n((()=>[r(s(x),{align:"center","wrap-item":!1},{default:n((()=>[r(s(S),{src:e.avatar,round:"",size:32},null,8,["src"]),d("span",null,f(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),u("div",Y,"找不到相关结果"))])]),d("div",Z,[d("span",null,"已选择 "+f(s(ge).length)+" 人",1),d("div",ee,[(i(!0),u(o,null,p(ne.value,(a=>(i(),m(s(j),{key:a.id,bordered:!1,closable:"relay"===e.mode||a.id!==s(ie).userInfo.id,disabled:s(he).includes(a.id),onClose:()=>{return e=a.id,B(ne.value,(a=>a.id===e)),void B(ce.value,(a=>a===e));var e}},{avatar:n((()=>[r(s(S),{round:"",src:a.avatar},null,8,["src"])])),default:n((()=>[h(" "+f(a.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===e.mode?(i(),u("div",ae,[r(s(k),{clearable:"",value:pe.value,"onUpdate:value":l[4]||(l[4]=e=>pe.value=e),type:"textarea",placeholder:"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])])),_:1},8,["title","show","positive-button-props"]),d("span",{class:b(["btn-wrapper",{disabled:e.disabled}]),onClick:l[6]||(l[6]=e=>se.value=!0)},[g(a.$slots,"trigger",{},(()=>[r(s(U),{"show-arrow":!1,placement:"bottom"},{trigger:n((()=>[r(s(C),{color:"#ffffff4D",class:"add-btn"},{icon:n((()=>[r(s(I),{component:s(L),color:"#fff"},null,8,["component"])])),_:1})])),default:n((()=>[h(" "+f(e.title),1)])),_:1})]))],2)],64))}});export{le as default};
1
+ import{defineComponent as e,ref as a,computed as l,watch as t,openBlock as i,createElementBlock as o,Fragment as u,createVNode as n,unref as d,withCtx as r,createElementVNode as s,createCommentVNode as v,isRef as c,renderList as p,createBlock as m,toDisplayString as f,createTextVNode as g,normalizeClass as w,renderSlot as h}from"vue";import{NModal as b,NInput as y,NIcon as k,NCheckbox as I,NCheckboxGroup as _,NSpace as x,NAvatar as C,NTag as S,NTooltip as L,NButton as j}from"naive-ui";import{SearchOutline as U,AddOutline as B}from"@vicons/ionicons5";import{useData as R}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as V}from"../constants/index.js";import{groupLeaveApi as A,groupJoinApi as E,groupCreateApi as G}from"../api/index.js";import{listSort as N}from"../utils/index.js";import"trtc-sdk-v5";import{union as $,intersection as z,unionBy as D,remove as M,isArray as T,uniqBy as P,cloneDeep as q,trim as F}from"lodash-es";import{useSearchUserList as H}from"../hooks/useSearchUserList.js";var J;const K={class:"iho-chat-dialog__content iho-chat-add-wrapper"},O={key:0,class:"input-box"},Q=s("span",null,"群名称:",-1),W={class:"transfer-box"},X={class:"transfer-box__left"},Y={class:"user-list-box"},Z={key:1,class:"no-data"},ee={class:"transfer-box__right"},ae={class:"checked-tag-box"},le={key:0,class:"input-wrapper"};var te=e({__name:"ChatAdd",props:{title:{type:String,default:(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.42"))||"添加新成员"},mode:{type:String,default:"select"},options:{type:Array},disabledIds:{type:Array,default:()=>[]},defaultValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["comfirm"],setup(e,{emit:J}){const te=e,{state:ie,setCurrentSessionItem:oe}=R(),ue=a(),ne=a(""),de=a(!1),re=a([]),se=a([]),ve=a(""),ce=a([]),pe=a(""),{userList:me,handleInput:fe}=H({wrapperRef:ue,keywordRef:ne,before:()=>{me.value=q(se.value),Ie()},after:()=>{ge.value.length&&me.value.forEach((e=>{var a;e.disabled=null==(a=ge.value)?void 0:a.includes(e.id)})),Ie()}}),ge=l((()=>"relay"===te.mode?[]:$(te.disabledIds,[ie.userInfo.id]))),we=l((()=>{var e,a;if(!(null==(e=ie.sessionList)?void 0:e.length))return[];const l=N(ie.sessionList);return null==(a="relay"===te.mode?l:l.filter((e=>e.chatType===V.SINGLE)))?void 0:a.map((e=>({id:e.receiver,name:e.name,avatar:e.avatar})))})),he=l((()=>re.value.length?re.value.map((e=>e.id)):[])),be=l((()=>"create"===te.mode?he.value.length<3:he.value.length<1)),ye=l({get:()=>ce.value.filter((e=>!ge.value.includes(e))).length===me.value.filter((e=>!e.disabled)).length,set(e){const a=te.defaultValue.map((e=>e.id)),l=z(a,ge.value,me.value.map((e=>e.id))),t=me.value.filter((e=>!e.disabled));ce.value=l.concat(e?t.map((e=>e.id)):[]),e?re.value=D(re.value,t,"id"):M(re.value,(e=>t.map((e=>e.id)).includes(e.id)))}});async function ke(){switch(te.mode){case"create":await G({creator:ie.userInfo.id,memberIdSet:he.value,name:F(ve.value),orgId:ie.orgId});break;case"join":if(await E({groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:he.value}),!ie.currentSessionItem.defaultName){const e=re.value.map((e=>e.name)).join(",");oe({name:`${ie.currentSessionItem.name},${e}`})}ie.currentGroupUser.push(...me.value.filter((e=>he.value.includes(e.id))));break;case"remove":if(await A({dissolution:!1,groupId:ie.currentSessionItem.receiver,operator:ie.userInfo.id,memberIdSet:he.value}),!ie.currentSessionItem.defaultName){const e=re.value.map((e=>e.name)).join(","),a=new RegExp(e,"g");oe({name:ie.currentSessionItem.name.replace(a,"")})}M(ie.currentGroupUser,(e=>he.value.includes(e.id)));break;default:J("comfirm",he.value,pe.value)}de.value=!1}function Ie(){var e,a;ce.value=null!=(a=null==(e=me.value.filter((e=>he.value.includes(e.id))))?void 0:e.map((e=>e.id)))?a:[]}function _e(e,a){if("check"===a.actionType){const e=me.value.find((e=>e.id===a.value));re.value.push(e)}else M(re.value,(e=>e.id===a.value))}return t((()=>de.value),(e=>{if(!e)return;ne.value="",ve.value="";const a=T(te.options)&&te.options.length?te.options:we.value;se.value=P(a,"id").map((e=>{var a;return{...e,disabled:null==(a=ge.value)?void 0:a.includes(e.id)}})),me.value=q(se.value),T(te.defaultValue)&&te.defaultValue.length?(re.value=q(te.defaultValue),Ie()):(re.value=[],ce.value=[])})),(a,l)=>{var t,R;return i(),o(u,null,[n(d(b),{preset:"dialog",title:e.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:de.value,"onUpdate:show":l[5]||(l[5]=e=>de.value=e),"negative-text":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.28"))||"取消","positive-text":(null==(R=window.getLanguageByCode)?void 0:R.call(window,"10010.1.27"))||"确定","display-directive":"show","positive-button-props":{disabled:d(be)},onPositiveClick:ke},{default:r((()=>{var a,t,w,h,b;return[s("div",K,["create"===e.mode?(i(),o("div",O,[Q,n(d(y),{clearable:"",placeholder:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:ve.value,"onUpdate:value":l[0]||(l[0]=e=>ve.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):v("v-if",!0),s("div",W,[s("div",X,[n(d(y),{placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.36"))||"搜索",clearable:"",value:ne.value,"onUpdate:value":[l[1]||(l[1]=e=>ne.value=e),d(fe)],valueModifiers:{trim:!0}},{prefix:r((()=>[n(d(k),{component:d(U)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),s("div",Y,[d(me).length>0?(i(),o(u,{key:0},[n(d(I),{label:(null==(w=window.getLanguageByCode)?void 0:w.call(window,"10010.1.37"))||"全选",checked:d(ye),"onUpdate:checked":l[2]||(l[2]=e=>c(ye)?ye.value=e:null)},null,8,["checked"]),n(d(_),{ref_key:"listRef",ref:ue,value:ce.value,"onUpdate:value":[l[3]||(l[3]=e=>ce.value=e),_e]},{default:r((()=>[(i(!0),o(u,null,p(d(me),(e=>(i(),m(d(I),{key:e.id,value:e.id,disabled:e.disabled},{default:r((()=>[n(d(x),{align:"center","wrap-item":!1},{default:r((()=>[n(d(C),{src:e.avatar,round:"",size:32},null,8,["src"]),s("span",null,f(e.name),1)])),_:2},1024)])),_:2},1032,["value","disabled"])))),128))])),_:1},8,["value"])],64)):(i(),o("div",Z,(null==(h=window.getLanguageByCode)?void 0:h.call(window,"10010.1.38"))||"找不到相关结果"))])]),s("div",ee,[s("span",null,"已选择 "+f(d(he).length)+" 人",1),s("div",ae,[(i(!0),o(u,null,p(re.value,(a=>(i(),m(d(S),{key:a.id,bordered:!1,closable:"relay"===e.mode||a.id!==d(ie).userInfo.id,disabled:d(ge).includes(a.id),onClose:()=>{return e=a.id,M(re.value,(a=>a.id===e)),void M(ce.value,(a=>a===e));var e}},{avatar:r((()=>[n(d(C),{round:"",src:a.avatar},null,8,["src"])])),default:r((()=>[g(" "+f(a.name),1)])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===e.mode?(i(),o("div",le,[n(d(y),{clearable:"",value:pe.value,"onUpdate:value":l[4]||(l[4]=e=>pe.value=e),type:"textarea",placeholder:(null==(b=window.getLanguageByCode)?void 0:b.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):v("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),s("span",{class:w(["btn-wrapper",{disabled:e.disabled}]),onClick:l[6]||(l[6]=e=>de.value=!0)},[h(a.$slots,"trigger",{},(()=>[n(d(L),{"show-arrow":!1,placement:"bottom"},{trigger:r((()=>[n(d(j),{color:"#ffffff4D",class:"add-btn"},{icon:r((()=>[n(d(k),{component:d(B),color:"#fff"},null,8,["component"])])),_:1})])),default:r((()=>[g(" "+f(e.title),1)])),_:1})]))],2)],64)}}});export{te as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as s,watch as a,openBlock as o,createBlock as i,unref as r,withCtx as n,withDirectives as l,createElementVNode as c,createVNode as m,createElementBlock as d,Fragment as p,renderList as u,toDisplayString as f,vShow as y,normalizeStyle as h,createTextVNode as g}from"vue";import{NModal as v,NImageGroup as w,NImage as k,NInput as M,NIcon as b,NTooltip as _}from"naive-ui";import{SearchOutline as j,OpenOutline as I,DownloadOutline as T}from"@vicons/ionicons5";import{searchChatRecordApi as x}from"../api/index.js";import"../../../../shared/utils/index.js";import{useDebounceFn as S}from"@vueuse/core";import{format as A,isSameWeek as C,isSameMonth as D}from"date-fns";import{last as H}from"lodash-es";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as z}from"../../../../shared/hooks/useScrollLoading.js";import{useData as L}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{getFileSize as U,downloadFile as E}from"../utils/index.js";import"trtc-sdk-v5";import O from"./ChatAdd.vue.js";const $={class:"label"},F={class:"image-box"},P={class:"file-type"},R={class:"text"},B={class:"name"},G={class:"detail"},N={class:"opt-box"};var V=e({__name:"ChatFile",props:{type:{type:String,default:"image"},visible:{type:Boolean}},setup(e){const V=e,{cssVars:q,state:J,relayMessage:K}=L(),Q=t([]),W=t([]),X=t(),Y=t(),Z=t(),ee=S(ae,500),te={page:0,hasMore:!0,lastSendTime:A(new Date,"yyyy-MM-dd HH:mm:ss")};async function se(){var e;try{if(!te.hasMore)return;te.page++;const t=await x({orgId:J.orgId,keyword:Z.value,endTime:"",startTime:"",lastSendTime:te.lastSendTime,memberIdSet:[],page:te.page,recordType:"image"===V.type?"IMAGE":"FILE",receiver:J.currentSessionItem.receiver,userId:J.userInfo.id});Array.isArray(t)&&0!==t.length&&Array.isArray(t[0].recordList)||(te.hasMore=!1);let s=t||[];if(Array.isArray(t)&&t.length>0&&(s=t[0].recordList),te.lastSendTime=null==(e=H(s))?void 0:e.sendTime,"image"===V.type){const e=function(e){const t={};e.forEach((e=>{const s=new Date(e.sendTime);let a=A(s,"yyyy年MM月");C(s,new Date)?a="本周":D(s,new Date)&&(a="本月"),t[a]||(t[a]=[]),t[a].push(e.content.msg)}));return Object.entries(t).map((([e,t])=>({label:e,list:t})))}(s);Q.value=te.page>1?Q.value.concat(e):e}else{const e=s.map((e=>new Promise((async t=>{const s=await U(e.content.fileUrl);t({...e,size:s})})))),t=await Promise.all(e);W.value=te.page>1?W.value.concat(t):t}}catch(e){}}function ae(){Object.assign(te,{page:0,hasMore:!0,lastSendTime:A(new Date,"yyyy-MM-dd HH:mm:ss")}),se()}z(X,(()=>{se()})),z(Y,(()=>{se()}));const oe=s((()=>"image"===V.type?"聊天图片":"聊天文件"));function ie(e){const{size:t,sendTime:s,senderName:a}=e;return`${t} · ${A(new Date(s),"yyyy/MM/dd HH:mm")} ${a}`}function re(e){var t;const s=(null==(t=e.content)?void 0:t.msg)||"",a=s.lastIndexOf(".");if(-1!==a){return s.charAt(a+1).toUpperCase()}return"?"}return a((()=>V.visible),(e=>{e?ae():Z.value=""})),(t,s)=>(o(),i(r(v),{preset:"dialog",title:r(oe),"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog"},{default:n((()=>[l(c("div",{class:"iho-chat-dialog__content iho-chat-image-wrapper",ref_key:"imageRef",ref:X},[m(r(w),{"show-toolbar-tooltip":""},{default:n((()=>[(o(!0),d(p,null,u(Q.value,(e=>(o(),d("div",{class:"image-item",key:e.label},[c("span",$,f(e.label),1),c("div",F,[(o(!0),d(p,null,u(e.list,(e=>(o(),i(r(k),{key:e,width:"80",height:"80",src:e},null,8,["src"])))),128))])])))),128))])),_:1})],512),[[y,"image"===e.type]]),l(c("div",{class:"iho-chat-dialog__content iho-chat-file-wrapper",style:h(r(q))},[m(r(M),{clearable:"",placeholder:"搜索文件",value:Z.value,"onUpdate:value":s[0]||(s[0]=e=>Z.value=e),valueModifiers:{trim:!0},onInput:r(ee)},{prefix:n((()=>[m(r(b),{component:r(j)},null,8,["component"])])),_:1},8,["value","onInput"]),c("div",{class:"file-list-box",ref_key:"fileRef",ref:Y},[(o(!0),d(p,null,u(W.value,((e,t)=>(o(),d("div",{class:"file-item",key:t},[c("span",P,f(re(e)),1),c("div",R,[c("span",B,f(e.content.msg),1),c("span",G,f(ie(e)),1)]),c("div",N,[m(O,{title:"转发消息",mode:"relay",onComfirm:(t,s)=>r(K)({content:e.content,checkedIds:t,remark:s})},{trigger:n((()=>[m(r(_),{"show-arrow":!1},{trigger:n((()=>[m(r(b),{size:16,component:r(I)},null,8,["component"])])),default:n((()=>[g(" 转发 ")])),_:1})])),_:2},1032,["onComfirm"]),m(r(_),{"show-arrow":!1},{trigger:n((()=>[m(r(b),{size:16,component:r(T),onClick:()=>r(E)(e.content.fileUr,e.content.msg)},null,8,["component","onClick"])])),default:n((()=>[g(" 下载 ")])),_:2},1024)])])))),128))],512)],4),[[y,"image"!==e.type]])])),_:1},8,["title"]))}});export{V as default};
1
+ import{defineComponent as e,ref as t,computed as o,watch as a,openBlock as i,createBlock as n,unref as s,withCtx as r,withDirectives as l,createElementVNode as c,createVNode as d,createElementBlock as m,Fragment as u,renderList as p,toDisplayString as g,vShow as y,normalizeStyle as v,createTextVNode as f}from"vue";import{NModal as w,NImageGroup as h,NImage as k,NInput as M,NIcon as b,NTooltip as C}from"naive-ui";import{SearchOutline as _,OpenOutline as j,DownloadOutline as I}from"@vicons/ionicons5";import{searchChatRecordApi as T}from"../api/index.js";import"../../../../shared/utils/index.js";import{useDebounceFn as x}from"@vueuse/core";import{format as L,isSameWeek as S,isSameMonth as A}from"date-fns";import{last as B}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{useData as H}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{getFileSize as z,downloadFile as U}from"../utils/index.js";import"trtc-sdk-v5";import E from"./ChatAdd.vue.js";const O={class:"label"},$={class:"image-box"},F={class:"file-type"},P={class:"text"},R={class:"name"},G={class:"detail"},N={class:"opt-box"};var V=e({__name:"ChatFile",props:{type:{type:String,default:"image"},visible:{type:Boolean}},setup(e){const V=e,{cssVars:q,state:J,relayMessage:K}=H(),Q=t([]),W=t([]),X=t(),Y=t(),Z=t(),ee=x(ae,500),te={page:0,hasMore:!0,lastSendTime:L(new Date,"yyyy-MM-dd HH:mm:ss")};async function oe(){var e;try{if(!te.hasMore)return;te.page++;const t=await T({orgId:J.orgId,keyword:Z.value,endTime:"",startTime:"",lastSendTime:te.lastSendTime,memberIdSet:[],page:te.page,recordType:"image"===V.type?"IMAGE":"FILE",receiver:J.currentSessionItem.receiver,userId:J.userInfo.id});Array.isArray(t)&&0!==t.length&&Array.isArray(t[0].recordList)||(te.hasMore=!1);let o=t||[];if(Array.isArray(t)&&t.length>0&&(o=t[0].recordList),te.lastSendTime=null==(e=B(o))?void 0:e.sendTime,"image"===V.type){const e=function(e){const t={};e.forEach((e=>{var o,a;const i=new Date(e.sendTime);let n=L(i,"yyyy年MM月");S(i,new Date)?n=(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.47"))||"本周":A(i,new Date)&&(n=(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.48"))||"本月"),t[n]||(t[n]=[]),t[n].push(e.content.msg)}));return Object.entries(t).map((([e,t])=>({label:e,list:t})))}(o);Q.value=te.page>1?Q.value.concat(e):e}else{const e=o.map((e=>new Promise((async t=>{const o=await z(e.content.fileUrl);t({...e,size:o})})))),t=await Promise.all(e);W.value=te.page>1?W.value.concat(t):t}}catch(e){}}function ae(){Object.assign(te,{page:0,hasMore:!0,lastSendTime:L(new Date,"yyyy-MM-dd HH:mm:ss")}),oe()}D(X,(()=>{oe()})),D(Y,(()=>{oe()}));const ie=o((()=>{var e,t;return"image"===V.type?(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.49"))||"聊天图片":(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.50"))||"聊天文件"}));function ne(e){const{size:t,sendTime:o,senderName:a}=e;return`${t} · ${L(new Date(o),"yyyy/MM/dd HH:mm")} ${a}`}function se(e){var t;const o=(null==(t=e.content)?void 0:t.msg)||"",a=o.lastIndexOf(".");if(-1!==a){return o.charAt(a+1).toUpperCase()}return"?"}return a((()=>V.visible),(e=>{e?ae():Z.value=""})),(t,o)=>(i(),n(s(w),{preset:"dialog",title:s(ie),"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog"},{default:r((()=>{var t;return[l(c("div",{class:"iho-chat-dialog__content iho-chat-image-wrapper",ref_key:"imageRef",ref:X},[d(s(h),{"show-toolbar-tooltip":""},{default:r((()=>[(i(!0),m(u,null,p(Q.value,(e=>(i(),m("div",{class:"image-item",key:e.label},[c("span",O,g(e.label),1),c("div",$,[(i(!0),m(u,null,p(e.list,(e=>(i(),n(s(k),{key:e,width:"80",height:"80",src:e},null,8,["src"])))),128))])])))),128))])),_:1})],512),[[y,"image"===e.type]]),l(c("div",{class:"iho-chat-dialog__content iho-chat-file-wrapper",style:v(s(q))},[d(s(M),{clearable:"",placeholder:(null==(t=window.getLanguageByCode)?void 0:t.call(window,"10010.1.43"))||"搜索文件",value:Z.value,"onUpdate:value":o[0]||(o[0]=e=>Z.value=e),valueModifiers:{trim:!0},onInput:s(ee)},{prefix:r((()=>[d(s(b),{component:s(_)},null,8,["component"])])),_:1},8,["value","onInput"]),c("div",{class:"file-list-box",ref_key:"fileRef",ref:Y},[(i(!0),m(u,null,p(W.value,((e,t)=>{var o;return i(),m("div",{class:"file-item",key:t},[c("span",F,g(se(e)),1),c("div",P,[c("span",R,g(e.content.msg),1),c("span",G,g(ne(e)),1)]),c("div",N,[d(E,{title:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.44"))||"转发消息",mode:"relay",onComfirm:(t,o)=>s(K)({content:e.content,checkedIds:t,remark:o})},{trigger:r((()=>[d(s(C),{"show-arrow":!1},{trigger:r((()=>[d(s(b),{size:16,component:s(j)},null,8,["component"])])),default:r((()=>[f(" 转发 ")])),_:1})])),_:2},1032,["onComfirm"]),d(s(C),{"show-arrow":!1},{trigger:r((()=>[d(s(b),{size:16,component:s(I),onClick:()=>s(U)(e.content.fileUr,e.content.msg)},null,8,["component","onClick"])])),default:r((()=>[f(" 下载 ")])),_:2},1024)])])})),128))],512)],4),[[y,"image"!==e.type]])]})),_:1},8,["title"]))}});export{V as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as n,computed as t,watch as o,withDirectives as s,openBlock as i,createElementBlock as r,normalizeStyle as a,unref as c,createElementVNode 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 v,renderSlot as w,vShow as M}from"vue";import{NIcon as k,NTooltip as _,NPopover as E,NButton as C,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 z}from"../constants/index.js";import{uploadFileApi as L}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 K}from"lodash-es";import{uuidGenerator as F}from"../../../../shared/utils/index.js";import{useStorage as U}from"@vueuse/core";const G={key:0,class:"reference-content-box"},N={class:"reference-content"},X=["innerHTML"],B={class:"tool-box"},S=l("i",{class:"chat--iconfont chat--icon-face"},null,-1),P=l("span",null,"最近使用",-1),Q={class:"list-box",style:{"margin-bottom":"8px"}},W=["src"],Y=l("span",null,"默认表情",-1),Z={class:"list-box"},ee=["src"],ne=l("i",{class:"chat--iconfont chat--icon-good"},null,-1),te=l("i",{class:"chat--iconfont chat--icon-image"},null,-1),oe=l("i",{class:"chat--iconfont chat--icon-folder"},null,-1),se=["contenteditable"],ie={class:"btn-box"},re=l("span",{class:"tip"},"Enter 发送, Ctrl + Enter 换行",-1);var ae=e({__name:"ChatFooter",setup(e){const ae=n(),{state:ce,sendMessage:le,isGroupChat:ue,isEnded:de}=x(),fe=n(!1),me=n(""),ge=U("commonEmoticons",[]),pe=t((()=>({options:ce.currentGroupUser,defaultValue:[ce.userInfo]}))),he=t((()=>!me.value.replace(/(&nbsp;|\s|<br>)+/g,"")));function ye(e,n=[]){const t=F(),o=[],s=n.length>0;ce.showVideo||ce.showMultipleVideo||(s?(o.push(...H(n,[ce.userInfo.id])),Object.assign(ce.currentAVMsg,{callMode:"call",checkedIds:o,strRoomId:t,chatMessageType:e}),ce.showMultipleVideo=!0):le({content:{chatMessageType:e,msg:"",avStatus:z.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(),Ee()))}function we(){var e;me.value=(null==(e=ae.value)?void 0:e.innerHTML)||""}function Me(e){var n;ge.value.unshift(e),ge.value=J(ge.value).slice(0,26),null==(n=ae.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",ce.userInfo.id),n.append("file",e),await L(n)}async function _e(e,n){const{file:t,name:o}=e.file,s=await ke(t);if(!s)return console.log("上传失败");Ce({chatMessageType:n,msg:n===j.FILE?o:s,url:s})}async function Ee(){const{innerHTML:e="",innerText:n="",outerText:t=""}=ae.value||{};if(he.value)return console.log("请输入内容");let o=j.TEXT,s="";if(e){const t=e.match(/<img[^>]*>/gi),i=(t||[]).length;if(n&&0===i)s=n;else if(n||1!==i){if(o=j.BLEND,s=e,null==t?void 0:t.length)for(let e=0;e<i;e++)if(t[e].includes(`data-type="${j.EMOJI}"`)){const n=t[e].match(/data-msg="(.*?)"/);n&&n.length>1&&(s=s.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);s=s.replace(n[1],t||"")}}}}else if(e.includes(j.EMOJI)){o=j.EMOJI;const n=e.match(/data-msg\s*=\s*"([^"]*)"/);n&&(s=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&&(s=n)}}}}else s=V(n);s&&Ce({msg:s,chatMessageType:o,origin:"btn"})}async function Ce(e){const{chatMessageType:n=j.TEXT,msg:t,url:o,origin:s=""}=e,i={msg:t,chatMessageType:n};n===j.FILE&&(i.fileUrl=o),"btn"===s&&Ie(),ce.currentReferenceMsg&&([j.TEXT,j.EMOJI,j.BLEND].includes(n)&&(i.referenceContent=K(ce.currentReferenceMsg)),ce.currentReferenceMsg=null),le({content:i})}function Ie(){ae.value.innerHTML="",me.value=""}return o((()=>[ce.currentReferenceMsg,ce.currentReEditMsg]),(([e,n])=>{var t;if((e||n)&&(null==(t=ae.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),ce.currentReEditMsg=null}})),o((()=>ce.id),(e=>{e&&Ie()})),(e,n)=>s((i(),r("section",{class:"chat-footer",style:a({cursor:c(ce).id?"default":"not-allowed"})},[c(ce).currentReferenceMsg?(i(),r("div",G,[l("div",N,[l("span",null,u(c(ce).currentReferenceMsg.senderName)+":",1),l("pre",{innerHTML:c(O)(c(ce).currentReferenceMsg.content)},null,8,X)]),d(c(k),{component:c(q),onClick:n[0]||(n[0]=()=>c(ce).currentReferenceMsg=null)},null,8,["component"])])):f("v-if",!0),l("div",B,[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(E),{"content-class":"emoji-content",class:"emoji-wrapper",show:fe.value,"onUpdate:show":n[1]||(n[1]=e=>fe.value=e),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny"},{icon:m((()=>[S])),_:1})])),default:m((()=>[c(ge).length>0?(i(),r(g,{key:0},[P,l("div",Q,[(i(!0),r(g,null,p(c(ge),(e=>(i(),h(c(_),{key:e,"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:()=>Me(e)},{icon:m((()=>[l("img",{src:c(D).findEmoji(e)},null,8,W)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])],64)):f("v-if",!0),Y,l("div",Z,[(i(!0),r(g,null,p(c(D).default,(([e,n])=>(i(),h(c(_),{key:e,"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:()=>Me(e)},{icon:m((()=>[l("img",{src:n},null,8,ee)])),_:2},1032,["onClick"])])),default:m((()=>[y(" "+u(e),1)])),_:2},1024)))),128))])])),_:1},8,["show"])])),default:m((()=>[y(" 表情 ")])),_:1}),d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:n[2]||(n[2]=()=>Ce({chatMessageType:c(j).EMOJI,msg:0}))},{icon:m((()=>[ne])),_:1})])),default:m((()=>[y(" 点赞 ")])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"image/*",onChange:n[3]||(n[3]=e=>_e(e,c(j).IMAGE))},{default:m((()=>[d(c(T),{abstract:""},{default:m((({handleClick:e})=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[te])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传图片 ")])),_:2},1024)])),_:1})])),_:1}),d(c(I),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:n[4]||(n[4]=e=>_e(e,c(j).FILE))},{default:m((()=>[d(c(T),{abstract:""},{default:m((({handleClick:e})=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:e},{icon:m((()=>[oe])),_:2},1032,["onClick"])])),default:m((()=>[y(" 上传文件 ")])),_:2},1024)])),_:1})])),_:1}),c(ce).userInfo.sdkAppID?(i(),r(g,{key:0},[c(ue)?(i(),r(g,{key:0},[d(b,v(c(pe),{onComfirm:n[5]||(n[5]=e=>ye(c(j).AUDIO,e))}),{trigger:m((()=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny"},{icon:m((()=>[d(c(k),{size:"18",component:c($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1})])),_:1},16),d(b,v(c(pe),{onComfirm:n[6]||(n[6]=e=>ye(c(j).VIDEO,e))}),{trigger:m((()=>[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny"},{icon:m((()=>[d(c(k),{size:"20",component:c(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频会议 ")])),_:1})])),_:1},16)],64)):(i(),r(g,{key:1},[d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:n[7]||(n[7]=()=>ye(c(j).AUDIO))},{icon:m((()=>[d(c(k),{size:"18",component:c($)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 语音通话 ")])),_:1}),d(c(_),{"show-arrow":!1},{trigger:m((()=>[d(c(C),{quaternary:"",size:"tiny",onClick:n[8]||(n[8]=()=>ye(c(j).VIDEO))},{icon:m((()=>[d(c(k),{size:"20",component:c(A)},null,8,["component"])])),_:1})])),default:m((()=>[y(" 视频通话 ")])),_:1})],64))],64)):f("v-if",!0),w(e.$slots,"footer")]),s(l("div",{ref_key:"inputRef",ref:ae,class:"input-box",contenteditable:!c(de),onKeydown:ve,onInput:we},null,40,se),[[M,c(ce).id]]),l("div",ie,[re,d(c(C),{type:"primary",round:"",disabled:c(he),onClick:Ee},{default:m((()=>[y("发送")])),_:1},8,["disabled"])])],4)),[[M,c(ce).id]])}});export{ae as default};
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};
@@ -240,6 +240,10 @@ declare const _default: import("vue").DefineComponent<{}, {
240
240
  findEmoji(name: string): any;
241
241
  };
242
242
  ContextMenu: import("vue").DefineComponent<{
243
+ type: {
244
+ type: StringConstructor;
245
+ default: string;
246
+ };
243
247
  show: {
244
248
  type: BooleanConstructor;
245
249
  default: boolean;
@@ -247,10 +251,14 @@ declare const _default: import("vue").DefineComponent<{}, {
247
251
  position: {
248
252
  type: import("vue").PropType<CSSProperties>;
249
253
  };
250
- msgId: {
254
+ id: {
251
255
  type: StringConstructor;
252
256
  };
253
257
  }, () => JSX.Element | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "update:show")[], "select" | "update:show", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
258
+ type: {
259
+ type: StringConstructor;
260
+ default: string;
261
+ };
254
262
  show: {
255
263
  type: BooleanConstructor;
256
264
  default: boolean;
@@ -258,13 +266,14 @@ declare const _default: import("vue").DefineComponent<{}, {
258
266
  position: {
259
267
  type: import("vue").PropType<CSSProperties>;
260
268
  };
261
- msgId: {
269
+ id: {
262
270
  type: StringConstructor;
263
271
  };
264
272
  }>> & {
265
273
  onSelect?: ((...args: any[]) => any) | undefined;
266
274
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
267
275
  }, {
276
+ type: string;
268
277
  show: boolean;
269
278
  }>;
270
279
  ChatAdd: import("vue").DefineComponent<{
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as n,watch as s,openBlock as o,createElementBlock as i,normalizeClass as r,unref as a,normalizeStyle as c,createVNode as l,withCtx as u,Fragment as m,renderList as p,toDisplayString as d,createCommentVNode as f,createBlock as g,createElementVNode as v,createTextVNode as y,withModifiers as h,nextTick as T}from"vue";import{NImageGroup as M,NButton as k,NAvatar as _,NImage as x,NIcon as I,NSpace as C,NButtonGroup as j,NTooltip as w}from"naive-ui";import{format as E}from"date-fns";import{getHistoryRecordApi as L,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 P}from"lodash-es";import q from"./PersonProfile.vue.js";import B 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"},se=["data-time"],oe=["onContextmenu"],ie={key:0,class:"reference-content"},re=["innerHTML"],ae=["src"],ce=["innerHTML"],le=["innerHTML"],ue={style:{"margin-left":"8px"}},me={class:"size"};var pe=e({__name:"ChatMain",setup(e){const pe=t(),{state:de,setMsgList:fe,relayMessage:ge,setCurrentSessionItem:ve,isGroupChat:ye}=b(),he=t(),Te=t(!1),Me=t({left:0,top:0}),ke=t(),_e=t(),xe={page:0,hasMore:!0,lastSendTime:E(new Date,"yyyy-MM-dd HH:mm:ss")},Ie=n((()=>({"--c-tip-top":ye.value?"1px":"-20px","--c-tip-gap":ye.value?"10px":"0px"})));function Ce({nodes:e}){var t,n;const{_ctx:s}=null==(t=e.download)?void 0:t.children,o=s?null==(n=null==s?void 0:s.proxy)?void 0:n.previewSrc:"";return[e.prev,e.next,e.rotateCounterclockwise,e.rotateClockwise,e.resizeToOriginalSize,e.zoomOut,e.zoomIn,l(w,null,{trigger:()=>l(I,{style:"cursor: pointer",color:"rgba(255, 255, 255, 0.75",size:24,component:$,onClick:()=>o&&R(o,"img")},null),default:()=>"下载"}),e.close]}async function je(){try{if(!xe.hasMore)return;xe.page++;const e=await L({sessionKey:de.currentSessionItem.sessionKey,page:xe.page,lastSendTime:xe.lastSendTime});if(!Array.isArray(e)||0===e.length)return xe.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=N(e).id;xe.lastSendTime=O(e).sendTime,fe(xe.page>1?[...de.msgList,...e]:e),1===xe.page&&de.currentSessionItem.unreadNum&&(await S({chatType:de.currentSessionItem.chatType,messageIdSet:[t],receiver:de.userInfo.id,sender:de.currentSessionItem.receiver}),ve({unreadNum:0}))}catch(e){console.log(e)}}async function we(e,t){ke.value=t,async function(e){var t,n,s,o,i,r;Te.value=!0,await T();const{clientX:a,clientY:c}=e,{width:l=0,height:u=0,left:m=0,top:p=0}=(null==(t=pe.value)?void 0:t.getBoundingClientRect())||{},d=null!=(o=null==(s=null==(n=he.value)?void 0:n.$el)?void 0:s.getBoundingClientRect().height)?o:220,f=null!=(r=null==(i=pe.value)?void 0:i.scrollTop)?r:0,g=5,v={};a<=m+l/2?v.left=a-m+g+"px":v.right=m+l-a-g+"px";c-p<d/2?v.top=f+g+"px":p+u-c<=d/2?v.bottom=Math.abs(f)+g+"px":v.top=f+c-p-d/2+"px";Me.value=v}(e)}function Ee(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function Le(e){const{chatMessageType:t}=e.content;return e.sender===de.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=P(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,s=P(n).match(/<img[^>]*>/gi);return t===A.BLEND&&s&&s.length}function Ae(e,t){var n,s;const{chatMessageType:o,messageTemplate:i}=e.content;if(o===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(s=null==i?void 0:i.setting)?void 0:s.style.id)}function ze(e){var t,n;const{chatMessageType:s,messageTemplate:o}=e;return s===A.TEMPLATE&&3==(null==(n=null==(t=null==o?void 0:o.setting)?void 0:t.style)?void 0:n.id)}function De(e,t){var n;const s=new Date(e.sendTime).getTime(),o=null==(n=de.msgList[t+1])?void 0:n.sendTime;if(o){return s-new Date(o).getTime()>3e5}return!0}function He(e){de.currentReferenceMsg=e,de.currentReferenceMsg.content.referenceContent=null,Object.assign(de.currentReferenceMsg,{chatType:de.currentSessionItem.chatType,receiver:de.currentSessionItem.receiver,receiverAvatar:de.currentSessionItem.avatar,receiverName:de.currentSessionItem.name})}function Re(e,t){var n;"reply"!==e?"relay"===e&&(null==(n=_e.value)||n.click()):He(t)}function Ne(e,t){const n=de.msgList.find((e=>e.id===ke.value));ge({checkedIds:e,remark:t,content:n.content})}return Q(pe,(()=>{je()}),"top",(()=>{Te.value=!1})),s((()=>de.id),(e=>{e&&(de.currentReferenceMsg=null,Object.assign(xe,{page:0,hasMore:!0,lastSendTime:E(new Date,"yyyy-MM-dd HH:mm:ss")}),je())}),{immediate:!0}),s((()=>de.isAppendMsg),(e=>{e&&(fe([de.currentMsg,...de.msgList]),async function(){var e;null==(e=pe.value)||e.scrollTo({top:0,behavior:"auto"})}(),de.isAppendMsg=!1)}),{immediate:!0}),(e,t)=>(o(),i("div",{class:r(["chat-main",{"home-bg":!a(de).id}]),ref_key:"chatMainRef",ref:pe,style:c(a(Ie))},[l(a(M),{"show-toolbar-tooltip":"","render-toolbar":Ce},{default:u((()=>[(o(!0),i(m,null,p(a(de).msgList,((e,t)=>(o(),i(m,{key:e.id},[Ee(e)?(o(),i("div",{key:0,class:r(["message-item",{"message-item--mine":e.sender==a(de).userInfo.id}])},[De(e,t)?(o(),i("p",V,d(e.__sendTime),1)):f("v-if",!0),Ae(e,"system")||"WITHDRAWN"===e.status?(o(),i(m,{key:1},[Ae(e,"system")?(o(),g(B,{key:0,data:e},null,8,["data"])):f("v-if",!0),"WITHDRAWN"===e.status?(o(),i("p",Z,[v("span",null,d(e.sender==a(de).userInfo.id?"你":e.senderName)+"撤回了一条消息",1),Le(e)?(o(),g(a(k),{key:0,size:"tiny",style:{color:"var(--c-primary-color)","margin-left":"5px"},text:"",onClick:()=>function(e){de.currentReEditMsg=e}(e)},{default:u((()=>[y(" 重新编辑 ")])),_:2},1032,["onClick"])):f("v-if",!0)])):f("v-if",!0)],64)):(o(),i("div",ee,[l(q,{"user-id":e.sender,placement:e.sender==a(de).userInfo.id?"left":"right"},{trigger:u((()=>[l(a(_),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id","placement"]),e.content?(o(),i("div",te,[v("div",ne,[v("span",{class:"name","data-time":e.__time},d(a(ye)?e.senderName:""),9,se)]),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=>we(t,e.id)),["prevent"])},[Se(e)?(o(),i(m,{key:0},[e.content.referenceContent?(o(),i("div",ie,[v("span",null,d(e.content.referenceContent.senderName)+":",1),v("pre",{innerHTML:a(D)(e.content.referenceContent.content)},null,8,re)])):f("v-if",!0),e.content.chatMessageType===a(A).EMOJI?(o(),i("img",{key:1,class:r([e.content.referenceContent?"emoji--min":"emoji--big"]),src:a(J).findEmoji(e.__content)},null,10,ae)):(o(),i("pre",{key:2,innerHTML:e.__content},null,8,ce))],64)):f("v-if",!0),be(e)?(o(),i("pre",{key:1,innerHTML:e.__content},null,8,le)):f("v-if",!0),Ae(e,"template")?(o(),g(B,{key:2,data:e},null,8,["data"])):f("v-if",!0),e.content.chatMessageType===a(A).IMAGE?(o(),g(a(x),{key:3,width:"240",src:e.__content},null,8,["src"])):f("v-if",!0),a(z)(e.content)?(o(),i(m,{key:4},[l(a(I),{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,d(a(H)(e.__content)),1)],64)):f("v-if",!0),e.content.chatMessageType===a(A).FILE?(o(),g(a(C),{key:5,"wrap-item":!1},{default:u((()=>[l(a(I),{class:"icon-file",size:"40",component:a(G)},null,8,["component"]),l(a(C),{"wrap-item":!1,vertical:"",justify:"space-between",style:{"row-gap":"0"}},{default:u((()=>[v("span",null,d(e.__content),1),v("span",me,d(e.__size),1)])),_:2},1024)])),_:2},1024)):f("v-if",!0),l(a(j),{class:"quick-menu"},{default:u((()=>[a(z)(e.content)?f("v-if",!0):(o(),i(m,{key:0},[f(' <n-button quaternary size="tiny">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="chat--iconfont chat--icon-face" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t\t\t\t</n-button> '),l(a(k),{quaternary:"",size:"tiny",onClick:()=>He(e)},{icon:u((()=>[l(a(I),{size:"17",component:a(K)},null,8,["component"])])),_:2},1032,["onClick"])],64)),l(a(k),{quaternary:"",size:"tiny",onClick:t=>we(t,e.id)},{icon:u((()=>[l(a(I),{size:"14",component:a(Y)},null,8,["component"])])),_:2},1032,["onClick"])])),_:2},1024)],42,oe)])):f("v-if",!0)]))],2)):f("v-if",!0)],64)))),128))])),_:1}),l(a(W),{ref_key:"contextmenuRef",ref:he,show:Te.value,"onUpdate:show":t[0]||(t[0]=e=>Te.value=e),position:Me.value,"msg-id":ke.value,onSelect:Re},null,8,["show","position","msg-id"]),l(U,{title:"转发消息",mode:"relay",onComfirm:Ne},{trigger:u((()=>[v("span",{style:{display:"none"},ref_key:"relayTriggerRef",ref:_e},"转发",512)])),_:1})],6))}});export{pe 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"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 +1 @@
1
- import{defineComponent as e,ref as a,watch as l,openBlock as t,createBlock as r,unref as s,withCtx as o,createElementVNode as n,createVNode as i,toDisplayString as u,resolveDynamicComponent as c,createElementBlock as d,Fragment as v,renderList as m,withDirectives as p,createTextVNode as f,vShow as h}from"vue";import{NModal as g,NAvatar as y,NInputGroup as b,NInput as _,NSelect as k,NPopover as T,NTag as j,NIcon as M}from"naive-ui";import{SearchOutline as x}from"@vicons/ionicons5";import{useData as I}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as w}from"../constants/index.js";import{searchChatRecordApi as A}from"../api/index.js";import{transformMessage as S,formatTime as L}from"../utils/index.js";import"trtc-sdk-v5";import C 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{last as D}from"lodash-es";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as U}from"../../../../shared/hooks/useScrollLoading.js";import{emojis as z}from"../utils/emoji.js";const G={class:"iho-chat-dialog__header"},N=n("span",{class:"left"},"聊天记录",-1),R={class:"center"},B={class:"iho-chat-dialog__content iho-chat-record-wrapper"},O={class:"chat-record-box"},W={class:"msg-box"},J={class:"name-and-time"},P={class:"content"},X=["src"],$=["src"],q=["innerHTML"],F={key:1,class:"no-data"},K={class:"chat-record-box__filter"},Q=n("span",{class:"filter-title"},"添加筛选条件",-1),V={class:"filter-item"},Y=n("span",{class:"label"},"成员:",-1),Z={class:"filter-item"},ee=n("span",{class:"label"},"日期:",-1),ae={class:"time-target"},le={class:"time-target__item"},te=n("span",null,"开始:",-1),re={class:"tip"},se={class:"time-target__item"},oe=n("span",null,"结束:",-1),ne={class:"tip"};var ie=e({__name:"ChatRecord",props:{visible:{type:Boolean}},setup(e){const ie=e,ue={color:"#fff",textColor:"#666"},{state:ce}=I(),de=a(),ve=a([]),me=a(),pe=a([]),fe=a(),he=a(),ge=E(_e,500),ye={page:0,hasMore:!0,lastSendTime:H(new Date,"yyyy-MM-dd HH:mm:ss")};async function be(){var e;try{if(!ye.hasMore)return;ye.page++;const a=await A({orgId:ce.orgId,keyword:me.value,endTime:je(),startTime:fe.value?fe.value+" 00:00:00":"",lastSendTime:ye.lastSendTime,memberIdSet:pe.value,page:ye.page,recordType:"ALL",receiver:ce.currentSessionItem.receiver,userId:ce.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=D(l))?void 0:e.sendTime,l.forEach((e=>{var a,l,t,r;let s="";switch(e.content.chatMessageType){case w.TEXT:case w.BLEND:s=S(e.content);break;case w.TEMPLATE:s=null==(t=null==(l=null==(a=e.content)?void 0:a.messageTemplate)?void 0:l.setting)?void 0:t.title;break;default:s=null==(r=e.content)?void 0:r.msg}e.__content=s})),ve.value=ye.page>1?ve.value.concat(l):l}catch(e){}}function _e(){Object.assign(ye,{page:0,hasMore:!0,lastSendTime:je()||H(new Date,"yyyy-MM-dd HH:mm:ss")}),be()}function ke(e){return!!he.value&&e>Date.parse(`${he.value} 23:59:59`)}function Te(e){return!!fe.value&&e<Date.parse(fe.value)}function je(){return he.value?he.value+" 23:59:59":""}function Me(e){switch(e){case"member":pe.value=[];break;case"start":fe.value=null;break;case"end":he.value=null}}function xe(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 U(de,(()=>{be()})),l([()=>pe.value,()=>fe.value,()=>he.value],(()=>{ie.visible&&_e()}),{deep:!0}),l((()=>ie.visible),(e=>{e?_e():(me.value="",he.value=null,fe.value=null,pe.value=[],ve.value=[])})),(e,a)=>(t(),r(s(g),{preset:"dialog",title:"","show-icon":!1,"auto-focus":!1,class:"iho-chat-dialog"},{header:o((()=>[n("div",G,[N,n("div",R,[i(s(y),{round:"",size:30,src:s(ce).currentSessionItem.avatar},null,8,["src"]),n("span",null,u(s(ce).currentSessionItem.name),1)])])])),default:o((()=>[n("div",B,[i(s(b),null,{default:o((()=>[(t(),r(c((()=>[i(M,{component:x,size:18,color:"#6666"},null),pe.value.length>0?i(j,{closable:!0,bordered:!1,color:ue,onClose:()=>Me("member")},{default:()=>{var e;return[f("成员:")," ",pe.value.length>1?pe.value.length+"人":null==(e=ce.currentGroupUser.find((e=>e.id===pe.value[0])))?void 0:e.name]}}):null,fe.value?i(j,{closable:!0,bordered:!1,color:ue,onClose:()=>Me("start")},{default:()=>[f("起始时间: "),fe.value]}):null,he.value?i(j,{closable:!0,bordered:!1,color:ue,onClose:()=>Me("end")},{default:()=>[f("结束时间: "),he.value]}):null])))),i(s(_),{placeholder:"搜索",value:me.value,"onUpdate:value":a[0]||(a[0]=e=>me.value=e),valueModifiers:{trim:!0},onInput:s(ge)},null,8,["value","onInput"])])),_:1}),n("div",O,[n("div",{class:"chat-record-box__content",ref_key:"recordRef",ref:de},[ve.value.length>0?(t(!0),d(v,{key:0},m(ve.value,(e=>(t(),d("div",{class:"content-item",key:e.id},[i(s(y),{round:"",size:38,src:e.senderAvatar},null,8,["src"]),n("div",W,[n("div",J,[n("span",null,u(e.senderName),1),n("span",null,u(s(L)(e.sendTime).recordTime),1)]),n("div",P,[e.content.chatMessageType===s(w).IMAGE?(t(),d("img",{key:0,src:e.__content},null,8,X)):e.content.chatMessageType===s(w).EMOJI?(t(),d("img",{key:1,class:"emoji",src:s(z).findEmoji(e.__content)},null,8,$)):(t(),d("p",{key:2,innerHTML:e.__content},null,8,q))])])])))),128)):(t(),d("div",F,"没有找到相关记录"))],512),n("div",K,[Q,n("div",V,[Y,i(s(k),{value:pe.value,"onUpdate:value":a[1]||(a[1]=e=>pe.value=e),multiple:"","max-tag-count":1,"render-label":xe,options:s(ce).currentGroupUser,"value-field":"id"},null,8,["value","options"])]),n("div",Z,[ee,n("div",ae,[i(s(T),{trigger:"click","show-arrow":!1},{trigger:o((()=>[n("div",le,[te,p(i(s(j),{bordered:!1,color:ue,closable:"",onClose:a[2]||(a[2]=()=>Me("start"))},{default:o((()=>[f(u(fe.value),1)])),_:1},512),[[h,fe.value]]),p(n("span",re,"点击选择",512),[[h,!fe.value]])])])),default:o((()=>[i(s(C),{"formatted-value":fe.value,"onUpdate:formatted-value":a[3]||(a[3]=e=>fe.value=e),type:"date",panel:"",clearable:"","is-date-disabled":ke},null,8,["formatted-value"])])),_:1}),i(s(T),{trigger:"click","show-arrow":!1},{trigger:o((()=>[n("div",se,[oe,p(i(s(j),{bordered:!1,color:ue,closable:"",onClose:a[4]||(a[4]=()=>Me("end"))},{default:o((()=>[f(u(he.value),1)])),_:1},512),[[h,he.value]]),p(n("span",ne,"点击选择",512),[[h,!he.value]])])])),default:o((()=>[i(s(C),{"formatted-value":he.value,"onUpdate:formatted-value":a[5]||(a[5]=e=>he.value=e),type:"date",panel:"",clearable:"","is-date-disabled":Te},null,8,["formatted-value"])])),_:1})])])])])])])),_:1}))}});export{ie 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"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 +1 @@
1
- import{defineComponent as e,ref as s,computed as o,watch as a,nextTick as t,openBlock as r,createBlock as l,unref as n,normalizeStyle as i,withCtx as c,createVNode as p,createTextVNode as u,createElementVNode as f,createElementBlock as m,Fragment as d,renderList as v,toDisplayString as h,withDirectives as w,vShow as k}from"vue";import{NPopover as y,NButton as g,NIcon as j,NInput as _,NAvatar as x}from"naive-ui";import{SearchOutline as R}from"@vicons/ionicons5";import{useData as S}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{openSessionApi as U}from"../api/index.js";import"../utils/index.js";import"trtc-sdk-v5";import{useSearchUserList as C}from"../hooks/useSearchUserList.js";import I from"../../../default-page/index.js";const L=["onClick"],b={class:"user-info"};var z=e({__name:"ChatSearch",setup(e){const z=s(),D=s(),N=s(!1),E=s(""),{cssVars:G,state:T,openSession:V}=S(),{userList:$,handleInput:q}=C({wrapperRef:z,keywordRef:E}),A=o((()=>!$.value.length&&!!(E.value||"").replace(/^\s+|\s+$/g,"")));return a((()=>N.value),(async e=>{var s;e&&(await t(),null==(s=D.value)||s.focus())})),(e,s)=>(r(),l(n(y),{raw:"","content-class":"search-content",class:"search-wrapper",style:i(n(G)),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((()=>[p(n(g),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:c((()=>[p(n(j),{component:n(R),color:"#ffffff80"},null,8,["component"])])),default:c((()=>[u(" 搜索联系人 ")])),_:1})])),default:c((()=>[p(n(_),{ref_key:"inputRef",ref:D,size:"small",clearable:"",autofocus:"",value:E.value,"onUpdate:value":[s[0]||(s[0]=e=>E.value=e),n(q)]},{prefix:c((()=>[p(n(j),{color:"#ffffff80",component:n(R)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),f("div",{class:"user-list-wrapper",ref_key:"listRef",ref:z},[(r(!0),m(d,null,v(n($),(e=>(r(),m("div",{class:"user-item",key:e.id,onClick:()=>async function(e){N.value=!1;const s=await U({chatType:"SINGLE",receiver:e,sender:T.userInfo.id});V(s)}(e.id)},[p(n(x),{round:"",size:32,src:e.avatar},null,8,["src"]),f("div",b,[f("span",null,h(e.name),1),f("span",null,h(e.deptName),1),f("span",null,h(e.post),1)])],8,L)))),128)),w(p(n(I),{config:{title:" ",content:"找不到相关的结果"},type:"5"},null,512),[[k,n(A)]])],512)])),_:1},8,["style","show"]))}});export{z as default};
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 +1 @@
1
- import{defineComponent as e,useAttrs as t,ref as n,computed as s,watch as i,openBlock as a,createBlock as o,unref as r,withCtx as l,createVNode as c,createTextVNode as u,createElementBlock as m,Fragment as p,renderList as d,createElementVNode as v,toDisplayString as f,createCommentVNode as g,withKeys as _,nextTick as y}from"vue";import{NDrawer as k,NDrawerContent as h,NButton as b,NIcon as I,NAvatar as w,NUpload as x,NUploadTrigger as C,NInput as S,NSpace as j,NSwitch as z,NPopconfirm as U}from"naive-ui";import{ChevronBackOutline as G,ChevronForwardOutline as P,AddOutline as A,RemoveOutline as D,Pencil as L}from"@vicons/ionicons5";import{useData as R}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{toppingSessionApi as F,groupLeaveApi as B,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";const H={key:0,class:"chat-set-wrapper"},J={class:"item"},M={class:"name"},Q={key:0,class:"item__right",style:{color:"var(--c-primary-color)"}},T={class:"item user-info"},V={class:"name"},W={class:"item item-column"},X=v("span",{class:"label"},"群成员",-1),Y={class:"group-box"},Z={class:"group-box__item"},$={class:"name"},ee={class:"group-box__item"},te=v("span",{class:"name"},"添加",-1),ne={class:"group-box__item"},se=v("span",{class:"name"},"移除",-1),ie=["onClick"],ae=v("span",{class:"label"},"群头像",-1),oe={class:"item"},re=v("span",{class:"label"},"群名称",-1),le={class:"item__right"},ce={class:"txt"},ue={class:"item"},me=v("span",{class:"label"},"置顶聊天",-1),pe={class:"item item--red"},de=v("span",{class:"label"},"退出群聊",-1),ve=v("p",{style:{width:"230px"}},"是否确认退出群聊?",-1),fe={class:"item item--red"},ge=v("span",{class:"label"},"解散该群",-1),_e=v("p",{style:{width:"230px"}},"是否确认解散群聊?",-1);var ye=e({__name:"ChatSet",setup(e){const ye=t(),{state:ke,setCurrentSessionItem:he,isGroupChat:be,isGroupLeader:Ie}=R(),we=n(),xe=n(!1),Ce=n(""),Se=n(!1),je=s((()=>ke.currentGroupUser.map((e=>e.id)))),ze=s((()=>ke.currentGroupUser?Ie.value?ke.currentGroupUser.slice(0,6):ke.currentGroupUser.slice(0,7):[]));async function Ue(e){try{await F({id:ke.currentSessionItem.id,topping:e}),he({topping:e})}catch(e){}}async function Ge(e){await B({dissolution:!!e,groupId:ke.currentSessionItem.receiver,operator:ke.userInfo.id,memberIdSet:e?je.value:[ke.userInfo.id]})}async function Pe(){var e;Ce.value=ke.currentSessionItem.name,xe.value=!0,await y(),null==(e=we.value)||e.select()}async function Ae(e){const t=new FormData,n=Object.assign({id:ke.currentSessionItem.receiver},e);for(const e in n)t.append(e,n[e]);await K(t)}async function De(){xe.value=!1;const e=q(Ce.value);e&&e!==ke.currentSessionItem.name&&(await Ae({name:e}),he({name:e,defaultName:e}))}async function Le(e){const{file:t}=e.file,n=new FileReader;n.onload=function(e){var t;(null==(t=e.target)?void 0:t.result)&&he({avatar:e.target.result})},n.readAsDataURL(e.file.file),await Ae({file:t})}function Re(){E(ye["onUpdate:show"])&&ye["onUpdate:show"](!1)}return i((()=>ke.id),(e=>{Re()})),(e,t)=>(a(),o(r(k),{width:320,"trap-focus":!1,"block-scroll":!1,to:".iho-chat",onAfterLeave:t[7]||(t[7]=e=>Se.value=!1)},{default:l((()=>[c(r(h),null,{header:l((()=>[r(be)&&Se.value?(a(),o(r(b),{key:0,text:"",color:"#666",onClick:t[0]||(t[0]=e=>Se.value=!1),style:{"font-size":"var(--n-title-font-size)"}},{icon:l((()=>[c(r(I),{size:20,component:r(G)},null,8,["component"])])),default:l((()=>[u(" 返回 ")])),_:1})):r(be)?(a(),m(p,{key:1},[u("群设置")],64)):(a(),m(p,{key:2},[u("聊天设置")],64))])),default:l((()=>[r(ke).id?(a(),m("div",H,[r(be)&&Se.value?(a(!0),m(p,{key:0},d(r(ke).currentGroupUser,((e,t)=>(a(),o(N,{key:e.id,"user-id":e.id,placement:"left"},{trigger:l((()=>[v("div",J,[c(r(w),{round:"",size:40,src:e.avatar},null,8,["src"]),v("span",M,f(e.name),1),0===t?(a(),m("span",Q,"群主")):g("v-if",!0)])])),_:2},1032,["user-id"])))),128)):(a(),m(p,{key:1},[c(N,{"user-id":r(ke).currentSessionItem.receiver,onClose:Re,disabled:!!r(be),placement:"bottom-end"},{trigger:l((()=>[v("div",T,[c(r(w),{round:"",size:40,src:r(ke).currentSessionItem.avatar},null,8,["src"]),v("span",V,f(r(ke).currentSessionItem.name),1),r(be)?g("v-if",!0):(a(),o(r(I),{key:0,size:24,component:r(P),class:"item__right"},null,8,["component"]))])])),_:1},8,["user-id","disabled"]),r(be)?(a(),m(p,{key:0},[v("div",W,[X,v("div",Y,[(a(!0),m(p,null,d(r(ze),(e=>(a(),o(N,{key:e.id,"user-id":e.id,placement:"left-start"},{trigger:l((()=>[v("div",Z,[c(r(w),{round:"",size:40,src:e.avatar},null,8,["src"]),v("span",$,f(e.name),1)])])),_:2},1032,["user-id"])))),128)),c(O,{mode:"join",disabledIds:r(je)},{trigger:l((()=>[v("div",ee,[c(r(b),{strong:"",secondary:"",circle:""},{icon:l((()=>[c(r(I),{component:r(A)},null,8,["component"])])),_:1}),te])])),_:1},8,["disabledIds"]),r(Ie)?(a(),o(O,{key:0,title:"移除成员",mode:"remove",options:r(ke).currentGroupUser},{trigger:l((()=>[v("div",ne,[c(r(b),{strong:"",secondary:"",circle:""},{icon:l((()=>[c(r(I),{component:r(D)},null,8,["component"])])),_:1}),se])])),_:1},8,["options"])):g("v-if",!0)]),c(r(b),{text:"","icon-placement":"right",color:"#999",onClick:t[1]||(t[1]=e=>Se.value=!0)},{icon:l((()=>[c(r(I),{component:r(P)},null,8,["component"])])),default:l((()=>[u(" 查看全部群成员 ")])),_:1})]),c(r(x),{abstract:"",multiple:"",accept:"image/*",onChange:Le},{default:l((()=>[c(r(C),{abstract:""},{default:l((({handleClick:e})=>[v("div",{class:"item",onClick:e},[ae,c(r(I),{size:20,component:r(P),class:"item__right"},null,8,["component"])],8,ie)])),_:1})])),_:1}),v("div",oe,[re,v("div",le,[xe.value?(a(),o(r(S),{key:0,ref_key:"inputRef",ref:we,value:Ce.value,"onUpdate:value":t[2]||(t[2]=e=>Ce.value=e),onBlur:De,onKeydown:t[3]||(t[3]=_((e=>e.target.blur()),["enter"]))},null,8,["value"])):(a(),o(r(j),{key:1,"wrap-item":!1,onClick:Pe,align:"center"},{default:l((()=>[v("span",ce,f(r(ke).currentSessionItem.name),1),c(r(b),{text:"",style:{"font-size":"14px","--n-text-color":"#999"}},{default:l((()=>[c(r(I),{component:r(L)},null,8,["component"])])),_:1})])),_:1}))])])],64)):g("v-if",!0),v("div",ue,[me,c(r(z),{value:r(ke).currentSessionItem.topping,"onUpdate:value":[t[4]||(t[4]=e=>r(ke).currentSessionItem.topping=e),Ue],class:"item__right"},null,8,["value"])]),r(be)?(a(),m(p,{key:1},[c(r(U),{onPositiveClick:t[5]||(t[5]=()=>Ge(!1))},{trigger:l((()=>[v("div",pe,[de,c(r(I),{size:20,component:r(P),class:"item__right"},null,8,["component"])])])),default:l((()=>[ve])),_:1}),r(Ie)?(a(),o(r(U),{key:0,onPositiveClick:t[6]||(t[6]=()=>Ge(!0))},{trigger:l((()=>[v("div",fe,[ge,c(r(I),{size:20,component:r(P),class:"item__right"},null,8,["component"])])])),default:l((()=>[_e])),_:1})):g("v-if",!0)],64)):g("v-if",!0)],64))])):g("v-if",!0)])),_:1})])),_:1}))}});export{ye as default};
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,5 +1,9 @@
1
1
  import { PropType, CSSProperties } from 'vue';
2
2
  declare const _default: import("vue").DefineComponent<{
3
+ type: {
4
+ type: StringConstructor;
5
+ default: string;
6
+ };
3
7
  show: {
4
8
  type: BooleanConstructor;
5
9
  default: boolean;
@@ -7,10 +11,14 @@ declare const _default: import("vue").DefineComponent<{
7
11
  position: {
8
12
  type: PropType<CSSProperties>;
9
13
  };
10
- msgId: {
14
+ id: {
11
15
  type: StringConstructor;
12
16
  };
13
17
  }, () => JSX.Element | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "update:show")[], "select" | "update:show", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
18
+ type: {
19
+ type: StringConstructor;
20
+ default: string;
21
+ };
14
22
  show: {
15
23
  type: BooleanConstructor;
16
24
  default: boolean;
@@ -18,13 +26,14 @@ declare const _default: import("vue").DefineComponent<{
18
26
  position: {
19
27
  type: PropType<CSSProperties>;
20
28
  };
21
- msgId: {
29
+ id: {
22
30
  type: StringConstructor;
23
31
  };
24
32
  }>> & {
25
33
  onSelect?: ((...args: any[]) => any) | undefined;
26
34
  "onUpdate:show"?: ((...args: any[]) => any) | undefined;
27
35
  }, {
36
+ type: string;
28
37
  show: boolean;
29
38
  }>;
30
39
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as s,withDirectives as o,createVNode as i,vShow as n,isVNode as r}from"vue";import{NButtonGroup as a,NButton as l,NIcon as c}from"naive-ui";import{CopyOutline as m,OpenOutline as d,ChatbubbleEllipsesOutline as p,ReturnDownBack as u,DownloadOutline as y}from"@vicons/ionicons5";import{onClickOutside as g}from"@vueuse/core";import{useData as f}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{MESSAGE_TYPE as w}from"../constants/index.js";import{recallMessageApi as h}from"../api/index.js";import{isAudioOrVideoMessage as I,$message as v,downloadFile as T}from"../utils/index.js";import"trtc-sdk-v5";import{emojis as j}from"../utils/emoji.js";import{format as M}from"date-fns";var b=e({name:"PopupMenu",inheritAttrs:!1,props:{show:{type:Boolean,default:!1},position:{type:Object},msgId:{type:String}},emits:["update:show","select"],setup(e,{attrs:b,slots:E,emit:k}){const{state:x,setCurrentSessionItem:A}=f(),D=[{icon:m,label:"复制",key:"copy"},{icon:d,label:"转发",key:"relay"},{icon:p,label:"回复",key:"reply"},{icon:u,label:"撤回",key:"withdraw"},{icon:y,label:"下载",key:"download"}],L=t(null),O=s((()=>x.msgList.find((({id:t})=>t===e.msgId)))),S=s((()=>{if(!e.msgId)return[];if(!(null==O?void 0:O.value))return[];const{content:t={},sendTime:s,sender:o}=O.value,{chatMessageType:i}=t,n=[];return(o!==x.userInfo.id||i===w.TEMPLATE||o===x.userInfo.id&&Date.now()-new Date(s).getTime()>2592e5)&&n.push("withdraw"),[w.TEXT,w.EMOJI,w.BLEND].includes(i)?n.push("download"):I(t)?n.push("copy","relay","reply","download"):i===w.FILE?n.push("copy"):[w.FORWARD,w.TEMPLATE].includes(i)&&n.push("copy","download"),n.length?D.filter((e=>!n.includes(e.key))):D}));return g(L,(e=>{k("update:show",!1)})),()=>{let t;return e.msgId&&S.value?o(i("div",{class:"contextmenu-wrapper",ref:L,style:e.position},[i(a,{vertical:!0},(s=t=S.value.map((t=>i(l,{onClick:()=>async function(t){k("update:show",!1);const{content:s={},sendTime:o,sender:i}=O.value||{},{chatMessageType:n}=s;switch(t){case"copy":if(!s.msg)return console.log("复制内容为空!");if(!navigator||!("clipboard"in navigator))return console.log("当前浏览器版本不支持复制!");try{if(n===w.TEXT)await navigator.clipboard.writeText(s.msg);else{let e;if([w.EMOJI,w.IMAGE].includes(n)){const t=n===w.EMOJI?j.findEmoji(s.msg):s.msg;e=`<img data-msg=${s.msg} data-type=${n} class=${n===w.EMOJI?"emoji--min":""} src=${t} />`}else e=s.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}=s;return n===w.IMAGE&&(e=t,t=t.match(/\/([^\/?#]+)$/)[1]),void T(e,t)}case"withdraw":try{const t=x.msgList.findIndex((({id:t})=>t===e.msgId)),s=0===t;if(await h({chatType:x.currentSessionItem.chatType,messageIdSet:[e.msgId],receiver:x.currentSessionItem.receiver,sender:x.userInfo.id,isLastMessage:s}),x.msgList[t].status="WITHDRAWN",s){const e=M(new Date,"yyyy-MM-dd HH:mm:ss");A({lastMessageStatus:"WITHDRAWN",lastMessageSendTime:e,sortTime:e,updatedTime:e})}}catch(e){v.error("撤回失败")}return}k("select",t,O.value)}(t.key),quaternary:!0},{default:()=>t.label,icon:()=>i(c,{component:t.icon},null)}))),"function"==typeof s||"[object Object]"===Object.prototype.toString.call(s)&&!r(s)?t:{default:()=>[t]}))]),[[n,e.show]]):null;var s}}});export{b as default};
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 +1 @@
1
- import{defineComponent as e,ref as o,computed as n,onBeforeUnmount as s,openBlock as t,createElementBlock as i,createElementVNode as l,withDirectives as a,toDisplayString as c,unref as r,vShow as d,createVNode as u,withCtx as m,Fragment as p,renderList as v,createCommentVNode as f,createTextVNode as h,nextTick as g}from"vue";import{NButton as k,NIcon as I}from"naive-ui";import A from"./ChatAdd.vue.js";import{Close as y,Mic as V,MicOff as b,Videocam as w,VideocamOff as _,Call as M,PersonAdd as x}from"@vicons/ionicons5";import{getUserDetailApi as R}from"../api/index.js";import"@vueuse/core";import"../utils/index.js";import{xorBy as C}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 j}from"../hooks/useVideo.js";import S from"trtc-sdk-v5";const L={class:"video-wrapper video-wrapper--multiple"},$={class:"video-header"},H={key:0,class:"video-main"},U={class:"video-main__left"},z=["data-name"],N={class:"video-bottom"},D={class:"btn-group"},O={class:"btn"},P=l("span",{class:"text"},"静音",-1),Y={class:"btn"},q=l("span",{class:"text"},"摄像头",-1),G=l("span",{class:"text"},"结束会诊",-1),B={class:"btn"},F=l("span",{class:"text"},"添加参会人",-1),J={class:"video-main__right"},K=["id","data-name"],Q={class:"user"},W={class:"name"},X={key:0,class:"tip"},Z={key:0,class:"calling-box"},ee={class:"btn-box"},oe={key:1,class:"opt-btn"},ne={class:"btn"},se=l("span",null,"拒接",-1),te={class:"btn"},ie=l("span",null,"接听",-1);var le=e({__name:"MultipleVideo",setup(e){const le=o(),ae=o([]),{state:ce,sendMessage:re,trtc:de,voiceOpen:ue,isAudio:me,isCall:pe,startTimer:ve,resetTimer:fe,toggleAudio:he,messageTypeText:ge,timing:ke,toggleVideo:Ie,videocamOpen:Ae,installEventHandlers:ye,uninstallEventHandlers:Ve}=j(),be=o(!1),we=n((()=>pe.value?ce.userInfo.name:ce.currentAVMsg.sendName)),_e=n((()=>{if(!be.value)return"";const e=pe.value?`(${ae.value.length+1}/${ce.currentAVMsg.checkedIds.length+1})`:"";return`${we.value}发起的${ge.value}会诊${e} ${ke.value}`}));function Me(e){console.log("checkedIds :>> ",e),ce.currentAVMsg.checkedIds.push(...e),xe()}function xe(){var e;(null==(e=ce.currentAVMsg.checkedIds)?void 0:e.length)&&ce.currentAVMsg.checkedIds.forEach((e=>{re({chatType:E.SINGLE,content:{msg:ce.currentAVMsg.chatMessageType+","+ce.currentAVMsg.strRoomId,chatMessageType:T.AV_STATUS},receiver:e})})),be.value||Re()}async function Re(){const e=await S.isSupported();if(!e.result||!e.detail.isH264EncodeSupported||!e.detail.isH264DecodeSupported)return console.log("checkResult :>> ",e),void(ce.showMultipleVideo=!1);try{if(await de.enterRoom({strRoomId:ce.currentAVMsg.strRoomId,sdkAppId:parseInt(ce.userInfo.sdkAppID),userId:ce.userInfo.id,userSig:ce.userInfo.userSig}),be.value=!0,ve(),ye({handleError:$e,handleRemoteUserEnter:je,handleRemoteAudioAvailable:Te,handleRemoteUserExit:Le,handleRemoteVideoAvailable:Ee}),await de.startLocalAudio(),me.value)return;await de.startLocalVideo({view:le.value})}catch(e){console.log("error :>> ",e),ce.showMultipleVideo=!1}}async function Ce(){try{if(ce.showMultipleVideo=!1,Ve({handleError:$e,handleRemoteUserEnter:je,handleRemoteAudioAvailable:Te,handleRemoteUserExit:Le,handleRemoteVideoAvailable:Ee}),await de.exitRoom(),await de.stopLocalAudio(),me.value)return;await de.stopLocalVideo()}catch(e){console.log("error :>> ",e)}}async function Ee(e){const{userId:o,streamType:n}=e;try{n===S.TYPE.STREAM_TYPE_MAIN&&(await g(),await de.startRemoteVideo({userId:o,streamType:n,view:o}))}catch(e){console.log("error :>> ",e)}}async function Te(e){var o;const{userId:n}=e;if(n&&!(null==(o=ae.value.map((e=>e.id)))?void 0:o.includes(n))){const e=await Se(n);ae.value.push({id:n,name:e})}}async function je(e){const{userId:o}=e,n=await Se(o);ae.value.push({id:o,name:n}),ve()}async function Se(e){const o=await R({userId:e});return(null==o?void 0:o.name)||""}function Le(e){console.log("event :>> 退房",e);const{userId:o}=e;ae.value=C(ae.value,[{id:o,name:""}],"id")}function $e(e){console.log("error :>> ",e),ce.showMultipleVideo=!1}return s((()=>{Ce()})),(e,o)=>(t(),i("div",L,[l("div",$,[a(l("span",{class:"title"},c(r(_e)),513),[[d,be.value]]),u(r(k),{quaternary:"",circle:"",color:"#ffffffcc",onClick:Ce},{icon:m((()=>[u(r(I),{component:r(y)},null,8,["component"])])),_:1})]),be.value?(t(),i("div",H,[l("div",U,[l("div",{ref_key:"selfVideoRef",ref:le,class:"video-view","data-name":r(ce).userInfo.name},null,8,z),l("div",N,[l("div",D,[l("div",O,[u(r(k),{text:"",color:r(ue)?"#fff":"#000",onClick:r(he)},{icon:m((()=>[u(r(I),{component:r(ue)?r(V):r(b)},null,8,["component"])])),_:1},8,["color","onClick"]),P]),l("div",Y,[u(r(k),{text:"",color:r(Ae)?"#fff":"#000",disabled:r(me),onClick:r(Ie)},{icon:m((()=>[u(r(I),{component:r(Ae)?r(w):r(_)},null,8,["component"])])),_:1},8,["color","disabled","onClick"]),q]),l("div",{class:"btn",onClick:Ce},[u(r(k),{circle:"",color:"#f17568",class:"btn--rotate"},{icon:m((()=>[u(r(I),{component:r(M)},null,8,["component"])])),_:1}),G]),u(A,{onComfirm:Me},{trigger:m((()=>[l("div",B,[u(r(k),{text:"",color:"#fff"},{icon:m((()=>[u(r(I),{component:r(x)},null,8,["component"])])),_:1}),F])])),_:1})])])]),l("div",J,[(t(!0),i(p,null,v(ae.value,(e=>(t(),i("div",{key:e.id,id:e.id,class:"video-view","data-name":e.name},null,8,K)))),128))])])):(t(),i(p,{key:1},[l("div",Q,[l("span",W,c(r(we))+"发起的"+c(r(ge))+"会议",1),r(pe)?f("v-if",!0):(t(),i("span",X,"邀请你加入"+c(r(ge))+"会议",1))]),r(pe)?(t(),i("div",Z,[u(A,{onComfirm:Me,disabledIds:r(ce).currentAVMsg.checkedIds},{trigger:m((()=>[u(r(k),{size:"large",circle:"",color:"#000"},{icon:m((()=>[u(r(I),{component:r(x)},null,8,["component"])])),_:1})])),_:1},8,["disabledIds"]),l("p",null,"已邀请共"+c(r(ce).currentAVMsg.checkedIds.length)+"人",1),u(r(k),{size:"large",strong:"",round:"",type:"primary",onClick:xe},{default:m((()=>[h("开始会诊")])),_:1}),l("div",ee,[u(r(k),{color:"#000",round:""},{icon:m((()=>[u(r(I),{component:r(V)},null,8,["component"])])),_:1}),u(r(k),{color:"#000",round:""},{icon:m((()=>[u(r(I),{component:r(w)},null,8,["component"])])),_:1})])])):(t(),i("div",oe,[l("div",ne,[u(r(k),{circle:"",color:"#f17568",class:"btn--rotate",onClick:o[0]||(o[0]=()=>r(ce).showMultipleVideo=!1)},{icon:m((()=>[u(r(I),{size:"30",component:r(M)},null,8,["component"])])),_:1}),se]),l("div",te,[u(r(k),{circle:"",color:"#2ac98b",onClick:Re},{icon:m((()=>[u(r(I),{size:"30",component:r(M)},null,8,["component"])])),_:1}),ie])]))],64))]))}});export{le as default};
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 +1 @@
1
- import{defineComponent as t,ref as e,reactive as a,computed as l,openBlock as n,createBlock as o,unref as r,withCtx as s,renderSlot as i,createElementBlock as c,Fragment as u,withDirectives as d,createElementVNode as p,createVNode as m,createCommentVNode as v,toDisplayString as f,createTextVNode as g,renderList as k,vShow as y}from"vue";import{NPopover as b,NAvatar as h,NButton as j,NIcon as w}from"naive-ui";import{ChatbubbleEllipses as C,EyeOffOutline as I,EyeOutline as _,Close as x}from"@vicons/ionicons5";import{useData as z}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as N}from"../constants/index.js";import{openSessionApi as D,getUserDetailApi as S}from"../api/index.js";import"../utils/index.js";import"trtc-sdk-v5";const $={class:"person-profile-main"},E={class:"left"},L={class:"profile"},P={class:"profile__text"},q={class:"right"},B={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}){const U=t,{state:A,openSession:F}=z(),H=e(!1),J=e(!1),K=e(!1),M=a({}),Q=[{label:"机构",value:"",key:"orgName"},{label:"姓名",value:"",key:"name"},{label:"归属科室",value:"",key:"deptName"},{label:"业务科室",value:"",key:"businessDeptNames"},{label:"手机号",value:"",key:"phone"},{label:"岗位",value:"",key:"post"},{label:"工号",value:"",key:"jobId"},{label:"性别",value:"",key:"orgName"}],R=l((()=>(M.id&&Q.forEach((t=>{const{key:e}=t;t.value=M[e]})),Q)));async function V(){H.value=!1;let t=A.sessionList.find((t=>t.receiver===U.userId));if(!t)try{t=await D({chatType:N.SINGLE,receiver:U.userId,sender:A.userInfo.id})}catch(t){console.log("error :>> ",t)}t&&F(t),T("close")}async function W(t){if(!t)return;const e=await S({userId:U.userId});(null==e?void 0:e.id)?Object.assign(M,e):M.id=""}function X(t){const{key:e,value:a}=t;return"phone"!==e||K.value?a:(a||"").replace(/(\d{3})\d{4}(\d{4})/,"$1****$2")}return(e,a)=>(n(),o(r(b),{raw:"",class:"person-profile-wrapper",show:H.value,"onUpdate:show":[a[3]||(a[3]=t=>H.value=t),W],trigger:t.disabled?"manual":"click","show-arrow":!1,to:"body",shift:""},{trigger:s((()=>[i(e.$slots,"trigger")])),default:s((()=>[M.id?(n(),c(u,{key:0},[d(p("div",$,[p("div",E,[p("div",L,[m(r(h),{src:M.avatar,bordered:"",round:"",size:100,onClickCapture:a[0]||(a[0]=t=>J.value=!0)},null,8,["src"]),v(' <n-upload abstract accept="image/*" @change="onChange">\r\n\t\t\t\t\t\t\t<n-upload-trigger #="{ handleClick }" abstract>\r\n\t\t\t\t\t\t\t\t<n-button\r\n\t\t\t\t\t\t\t\t\tcircle\r\n\t\t\t\t\t\t\t\t\tsecondary\r\n\t\t\t\t\t\t\t\t\tclass="edit-avatar"\r\n\t\t\t\t\t\t\t\t\tv-show="userDetail.id === state.userInfo.id"\r\n\t\t\t\t\t\t\t\t\t@click="handleClick"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<template #icon>\r\n\t\t\t\t\t\t\t\t\t\t<n-icon size="16" color="#666666" :component="Camera" />\r\n\t\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t</n-button>\r\n\t\t\t\t\t\t\t</n-upload-trigger>\r\n\t\t\t\t\t\t</n-upload> '),p("div",P,[p("h4",null,f(M.name),1),p("p",null,f(M.orgName),1)]),m(r(j),{strong:"",secondary:"",onClick:V},{default:s((()=>[m(r(w),{size:"13",color:"#666666",component:r(C),style:{"margin-right":"6px"}},null,8,["component"]),g(" 发消息 ")])),_:1})])]),p("div",q,[p("div",B,[(n(!0),c(u,null,k(r(R),((t,e)=>(n(),c("div",{class:"info-item",key:e},[p("span",G,f(t.label),1),p("div",O,[p("span",null,f(X(t)),1),"phone"===t.key&&X(t)?(n(),o(r(w),{key:0,size:"16",color:"#666666",component:K.value?r(I):r(_),style:{"margin-left":"10px"},onClick:a[1]||(a[1]=t=>K.value=!K.value)},null,8,["component"])):v("v-if",!0)])])))),128))])])],512),[[y,!J.value]]),d(p("div",{class:"large-avatar",onClick:a[2]||(a[2]=t=>J.value=!1)},[m(r(j),{circle:"",size:"small",secondary:""},{icon:s((()=>[m(r(w),{size:24,component:r(x),color:"#fff"},null,8,["component"])])),_:1}),m(r(h),{size:310,round:"",src:M.avatar},null,8,["src"])],512),[[y,J.value]])],64)):v("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 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};