cnhis-design-vue 3.3.1-beta.17 → 3.3.1-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -87
- package/es/components/ai-chat/index.d.ts +59 -20
- package/es/components/ai-chat/src/Index.vue.d.ts +59 -20
- package/es/components/ai-chat/src/Index.vue2.js +1 -1
- package/es/components/ai-chat/src/api/index.d.ts +3 -0
- package/es/components/ai-chat/src/api/index.js +1 -1
- package/es/components/ai-chat/src/components/ChatAudio.vue.d.ts +5 -3
- package/es/components/ai-chat/src/components/ChatAudio.vue2.js +1 -1
- package/es/components/ai-chat/src/components/ChatBI.vue.d.ts +2 -2
- package/es/components/ai-chat/src/components/ChatBI.vue2.js +1 -1
- package/es/components/ai-chat/src/components/ChatCard.js +1 -1
- package/es/components/ai-chat/src/components/ChatFooter.vue.d.ts +19 -17
- package/es/components/ai-chat/src/components/ChatFooter.vue2.js +1 -1
- package/es/components/ai-chat/src/components/ChatMain.js +1 -1
- package/es/components/ai-chat/src/components/ChatMainDefault.js +1 -1
- package/es/components/ai-chat/src/components/ChatPatient.vue.d.ts +2 -2
- package/es/components/ai-chat/src/components/ChatPatient.vue2.js +1 -1
- package/es/components/ai-chat/src/components/ChatPrompt.vue.d.ts +2 -2
- package/es/components/ai-chat/src/components/ChatPrompt.vue2.js +1 -1
- package/es/components/ai-chat/src/components/ChatRight.vue.d.ts +4 -2
- package/es/components/ai-chat/src/components/ChatRight.vue2.js +1 -1
- package/es/components/ai-chat/src/components/card/JsonCard.js +1 -1
- package/es/components/ai-chat/src/hooks/index.d.ts +2 -0
- package/es/components/ai-chat/src/hooks/index.js +1 -0
- package/es/components/ai-chat/src/hooks/useData.d.ts +47 -0
- package/es/components/ai-chat/src/hooks/useData.js +1 -0
- package/es/components/ai-chat/src/hooks/useWebsocket.d.ts +2 -1
- package/es/components/ai-chat/src/hooks/useWebsocket.js +1 -1
- package/es/components/ai-chat/src/types/index.d.ts +1 -3
- package/es/components/ai-chat/src/types/index.js +1 -1
- package/es/components/ai-chat/style/index.css +1 -1
- package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
- package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
- package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
- package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
- package/es/components/card-render/src/components/index.d.ts +23 -23
- package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
- package/es/components/form-render/src/hooks/useBusinessBinding.js +1 -1
- package/es/components/iho-chat/index.d.ts +69 -2
- package/es/components/iho-chat/src/Index.vue.d.ts +69 -2
- package/es/components/iho-chat/src/api/index.d.ts +1 -0
- package/es/components/iho-chat/src/api/index.js +1 -1
- package/es/components/iho-chat/src/components/ChatAdd.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/ChatAdd.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatFile.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/ChatFooter.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/ChatHeader.vue.d.ts +57 -0
- package/es/components/iho-chat/src/components/ChatMain.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/ChatRecord.vue.d.ts +54 -0
- package/es/components/iho-chat/src/components/ChatRecord.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSearch.vue.d.ts +8 -2
- package/es/components/iho-chat/src/components/ChatSearch.vue2.js +1 -1
- package/es/components/iho-chat/src/components/ChatSet.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/MultipleVideo.vue.d.ts +1 -0
- package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
- package/es/components/iho-chat/src/hooks/useSearchPatientList.d.ts +11 -0
- package/es/components/iho-chat/src/hooks/useSearchPatientList.js +1 -0
- package/es/components/iho-chat/style/index.css +1 -1
- package/es/components/iho-table/src/plugins/filterRenderPlugin/index.js +1 -1
- package/es/components/index.css +1 -1
- package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
- package/es/env.d.ts +25 -25
- package/es/shared/assets/img/ai__avatar.png.js +1 -1
- package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
- package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
- package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
- package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
- package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
- package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
- package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
- package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
- package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
- package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
- package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
- package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
- package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
- package/es/shared/assets/img/failure.png.js +1 -1
- package/es/shared/assets/img/file-emr.png.js +1 -1
- package/es/shared/assets/img/file.png.js +1 -1
- package/es/shared/assets/img/logo.png.js +1 -1
- package/es/shared/assets/img/no-permission.png.js +1 -1
- package/es/shared/assets/img/nodata.png.js +1 -1
- package/es/shared/assets/img/notfound.png.js +1 -1
- package/es/shared/assets/img/qr.png.js +1 -1
- package/es/shared/assets/img/success.png.js +1 -1
- package/es/shared/assets/img/table_style_2.png.js +1 -1
- package/es/shared/assets/img/use.png.js +1 -1
- package/es/shared/assets/img/video.png.js +1 -1
- package/es/shared/assets/img/video_default_cover.png.js +1 -1
- package/es/shared/assets/img/xb_big.png.js +1 -1
- package/es/shared/assets/img/xb_small.png.js +1 -1
- package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
- package/es/shared/package.json.js +1 -1
- package/es/shared/utils/fabricjs/index.d.ts +6823 -0
- package/es/shared/utils/tapable/index.d.ts +139 -0
- package/package.json +3 -2
@@ -1 +1 @@
|
|
1
|
-
import{createElementVNode as e,defineComponent as l,ref as a,computed as n,watch as o,openBlock as t,createElementBlock as i,Fragment as r,createVNode as u,unref as s,withCtx as d,createCommentVNode as c,createBlock as v,renderList as p,toDisplayString as f,createTextVNode as g,withDirectives as m,isRef as h,vShow as y,normalizeClass as w,withModifiers as k,renderSlot as b,nextTick as I}from"vue";import{NModal as C,NInput as _,NIcon as x,NSpace as L,NButton as j,NBreadcrumb as S,NBreadcrumbItem as B,NCheckbox as U,NCheckboxGroup as R,NAvatar as E,NTag as N,NTooltip as T}from"naive-ui";import{SearchOutline as z,PersonOutline as A,PeopleOutline as D,ChevronBackOutline as G,ChevronForwardOutline as V,AddOutline as $}from"@vicons/ionicons5";import{useData as M}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as O}from"../constants/index.js";import{getOrgUserTreeApi as P,groupUserApi as q,groupLeaveApi as F,groupJoinApi as H,groupCreateApi as J}from"../api/index.js";import{listSort as K,isDoctorRole as Q,getRoleName as W}from"../utils/index.js";import{union as X,unionBy as Y,remove as Z,intersection as ee,last as le,isArray as ae,uniqBy as ne,cloneDeep as oe,trim as te}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as ie}from"../hooks/useSearchUserList.js";var re,ue;const se={class:"iho-chat-dialog__content iho-chat-add-wrapper"},de={key:0,class:"input-box"},ce=e("span",null,(null==(re=window.getLanguageByCode)?void 0:re.call(window,"10010.1.34"))||"群名称:",-1),ve={class:"transfer-box"},pe={class:"transfer-box__left"},fe={key:0,class:"nav-wrapper"},ge={key:0,class:"chat--iconfont chat--icon-map-site"},me={style:{"font-size":"12px"}},he={key:1,class:"header"},ye={class:"user-list-box"},we={key:0,class:"org-list"},ke={class:"seach-box"},be={class:"ellipsis"},Ie={key:0,style:{"font-size":"12px",color:"#666","margin-right":"10px","white-space":"nowrap"}},Ce={key:1,class:"no-data"},_e={class:"transfer-box__right"},xe={class:"checked-tag-box"},Le={class:"seach-box"},je={class:"ellipsis"},Se={key:0,class:"input-wrapper"};var Be=l({__name:"ChatAdd",props:{title:{type:String,default:(null==(ue=window.getLanguageByCode)?void 0:ue.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(l,{emit:re}){const ue=l;let Be=[];const Ue=[{key:"single",label:"按好友选"},{key:"group",label:"按群聊选"},{key:"org",label:"按架构选"}];let Re=[];const{state:Ee,setCurrentSessionItem:Ne}=M(),Te=a(),ze=a(""),Ae=a(!1),De=a([]),Ge=a(""),Ve=a(""),$e=a([]),Me=a([]),Oe=a(),{userList:Pe,handleInput:qe}=ie({wrapperRef:Te,keywordRef:ze,before:()=>{$e.value.length>0||(Pe.value=Be)}}),Fe=n((()=>"relay"===ue.mode?[]:X(ue.disabledIds,[Ee.userInfo.id]))),He=n((()=>{var e;return(null==(e=Ee.sessionList)?void 0:e.length)?K(Ee.sessionList).map((e=>({id:e.receiver,name:e.name,avatar:e.avatar,chatType:e.chatType,roleInfo:e.roleInfo||""}))):[]})),Je=n((()=>He.value.filter((e=>e.chatType===O.SINGLE)))),Ke=n((()=>He.value.filter((e=>e.chatType===O.GROUP)))),Qe=n((()=>De.value.length?De.value.map((e=>e.id)):[])),We=n((()=>"create"===ue.mode?Qe.value.length<3:Qe.value.length<1)),Xe=n({get:()=>Ye.value.filter((e=>!al(e))).length===Pe.value.filter((e=>!al(e.id))).length,set(e){const l=[];if(Pe.value.forEach((e=>{var a;if(1==e.type&&(null==(a=e.children)?void 0:a.length)){const a=il(e.children||[]).filter((e=>!al(e.id)));l.push(...a)}else al(e.id)||l.push(e)})),e)De.value=Y(De.value,l,"id");else{const e=l.map((e=>e.id));Z(De.value,(l=>e.includes(l.id)))}}}),Ye=n({get(){var e,l,a;return null!=(a=null==(l=null==(e=Pe.value)?void 0:e.filter((e=>{var l;if(1==e.type&&(null==(l=e.children)?void 0:l.length)){const l=il(e.children||[]).map((e=>e.id)).filter((e=>!al(e)));return ee(l,Qe.value).length===l.length}return Qe.value.includes(e.id)})))?void 0:l.map((e=>e.id)))?a:[]},set(e){Pe.value.forEach((l=>{var a;const n=[];1==l.type&&(null==(a=l.children)?void 0:a.length)?n.push(...il(l.children||[]).filter((e=>!al(e.id)))):n.push(l),e.includes(l.id)?De.value=Y(De.value,n,"id"):Z(De.value,(e=>n.some((l=>l.id===e.id))))}))}}),Ze=n((()=>{var e;return $e.value.length>0?null==(e=le($e.value))?void 0:e.key:""})),el=n((()=>!("relay"!==ue.mode&&["group","org"].includes(Ze.value)&&1===$e.value.length)));function ll(e){e.forEach((e=>{var l;1==e.type&&(null==(l=e.children)?void 0:l.length)?(e.total=il(e.children).length,ll(e.children)):2==e.type&&(e.total=0)}))}function al(e){var l,a;return"group"===Ze.value?"relay"!==ue.mode&&(1===$e.value.length||(null==(l=Fe.value)?void 0:l.includes(e))):null==(a=Fe.value)?void 0:a.includes(e)}function nl(){$e.value.length>1?"group"===Ze.value?Pe.value=Ke.value:"org"===Ze.value&&(Pe.value=Re.map((e=>({id:e.orgId,name:e.orgName}))),Me.value=[]):Pe.value=Be,$e.value.pop()}function ol(e,l){const{id:a,children:n=[],type:o}=e;if("breadcrumb"!==l||le(Me.value).id!==a)if(o){const l=Me.value.findIndex((e=>e.id===a));l>-1?Me.value=Me.value.slice(0,l+1):Me.value.push(e),Pe.value=n,I((()=>{const e=Oe.value.$el.getElementsByTagName("ul")[0];e&&e.scrollTo(1e7,0)}))}else{const n=Re.find((e=>e.orgId===a));Me.value=[e],Pe.value=n.userList||[],l||$e.value.push({key:Ze.value,label:n.orgName})}}function tl(e){const{children:l=[]}=e;if(!l.length)return!0;const a=il(l).map((e=>e.id)).filter((e=>!Fe.value.includes(e)));return ee(a,Qe.value).length===a.length}function il(e){const l=[];return e.forEach((e=>{var a;1==e.type&&(null==(a=e.children)?void 0:a.length)?l.push(...il(e.children)):2==e.type&&l.push(e)})),l}async function rl(){const e=s(Qe);switch(ue.mode){case"create":await J({creator:Ee.userInfo.id,memberIdSet:e,name:te(Ge.value),orgId:Ee.orgId});break;case"join":if(await H({groupId:Ee.currentSessionItem.receiver,operator:Ee.userInfo.id,memberIdSet:e}),!Ee.currentSessionItem.defaultName){const e=De.value.map((e=>e.name)).join(",");Ne({name:`${Ee.currentSessionItem.name},${e}`})}Ee.currentGroupUser.push(...Pe.value.filter((l=>e.includes(l.id))));break;case"remove":if(await F({dissolution:!1,groupId:Ee.currentSessionItem.receiver,operator:Ee.userInfo.id,memberIdSet:e}),!Ee.currentSessionItem.defaultName){const e=De.value.map((e=>e.name)).join(","),l=new RegExp(e,"g");Ne({name:Ee.currentSessionItem.name.replace(l,"")})}Z(Ee.currentGroupUser,(l=>e.includes(l.id)));break;default:re("comfirm",{checkedIds:e,checkedOptions:De.value,remark:Ve.value})}Ae.value=!1}return async function(){try{const e=await P();Re=ae(e)?e:[],Re.forEach((e=>ll(e.userList||[])))}catch(e){console.log("error ==>",e)}}(),o((()=>Ae.value),(e=>{if(!e)return;ze.value="",Ge.value="",$e.value=[],Me.value=[];const l="relay"===ue.mode?He.value:Je.value,a=ae(ue.options)&&ue.options.length?ue.options:l;Be=ne(a,"id"),Pe.value=Be,De.value=ae(ue.defaultValue)&&ue.defaultValue.length?oe(ue.defaultValue):[]})),(a,n)=>{var o,I;return t(),i(r,null,[u(s(C),{preset:"dialog",title:l.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:Ae.value,"onUpdate:show":n[5]||(n[5]=e=>Ae.value=e),"negative-text":(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.28"))||"取消","positive-text":(null==(I=window.getLanguageByCode)?void 0:I.call(window,"10010.1.27"))||"确定","display-directive":"show","positive-button-props":{disabled:s(We)},onPositiveClick:rl},{default:d((()=>{var a,o,b,I,C,T,$,M,O;return[e("div",se,["create"===l.mode?(t(),i("div",de,[ce,u(s(_),{clearable:"",placeholder:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:Ge.value,"onUpdate:value":n[0]||(n[0]=e=>Ge.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):c("v-if",!0),e("div",ve,[e("div",pe,[u(s(_),{placeholder:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.36"))||"搜索",clearable:"",value:ze.value,"onUpdate:value":[n[1]||(n[1]=e=>ze.value=e),s(qe)],valueModifiers:{trim:!0}},{prefix:d((()=>[u(s(x),{component:s(z)},null,8,["component"])])),_:1},8,["value","onUpdate:value"]),ze.value||"remove"===l.mode?c("v-if",!0):(t(),i("div",fe,[0===$e.value.length?(t(),v(s(L),{key:0,justify:"space-around","wrap-item":!1},{default:d((()=>[(t(),i(r,null,p(Ue,(l=>u(s(L),{vertical:"",align:"center","wrap-item":!1,key:l.key,onClick:()=>function(e){switch(ze.value="",$e.value=[e],e.key){case"single":Pe.value=Je.value;break;case"group":Pe.value=Ke.value;break;case"org":Pe.value=Re.map((e=>({id:e.orgId,name:e.orgName})))}}(l)},{default:d((()=>[u(s(j),{tertiary:""},{icon:d((()=>["org"===l.key?(t(),i("i",ge)):(t(),v(s(x),{key:1,component:"single"===l.key?s(A):s(D)},null,8,["component"]))])),_:2},1024),e("span",me,f(l.label),1)])),_:2},1032,["onClick"]))),64))])),_:1})):c("v-if",!0),$e.value.length>0?(t(),i("div",he,[u(s(j),{text:"",onClick:nl},{icon:d((()=>[u(s(x),{component:s(G)},null,8,["component"])])),_:1}),e("h4",null,f(null==(b=s(le)($e.value))?void 0:b.label),1)])):c("v-if",!0),$e.value.length>0&&"org"===(null==(I=s(le)($e.value))?void 0:I.key)&&Me.value.length>0?(t(),v(s(S),{key:2,ref_key:"breadcrumbRef",ref:Oe,separator:">"},{default:d((()=>[(t(!0),i(r,null,p(Me.value,(e=>(t(),v(s(B),{key:e.id,onClick:l=>ol(e,"breadcrumb")},{default:d((()=>[g(f(e.name),1)])),_:2},1032,["onClick"])))),128))])),_:1},512)):c("v-if",!0)])),e("div",ye,[s(Pe).length>0?(t(),i(r,{key:0},[m(u(s(U),{label:(null==(C=window.getLanguageByCode)?void 0:C.call(window,"10010.1.37"))||"全选",checked:s(Xe),"onUpdate:checked":n[2]||(n[2]=e=>h(Xe)?Xe.value=e:null)},null,8,["checked"]),[[y,s(el)]]),"org"===s(Ze)&&1===$e.value.length?(t(),i("div",we,[(t(!0),i(r,null,p(s(Pe),(l=>(t(),v(s(L),{"wrap-item":!1,align:"center",justify:"space-between",key:l.Id,onClick:e=>ol(l)},{default:d((()=>[e("span",null,f(l.name),1),u(s(x),{size:"16",component:s(V)},null,8,["component"])])),_:2},1032,["onClick"])))),128))])):(t(),v(s(R),{key:1,ref_key:"listRef",ref:Te,value:s(Ye),"onUpdate:value":n[3]||(n[3]=e=>h(Ye)?Ye.value=e:null)},{default:d((()=>[(t(!0),i(r,null,p(s(Pe),(l=>(t(),v(s(U),{key:l.id,value:l.id,disabled:al(l.id),onClick:()=>async function(e){const l=s(Ze);if(l&&"relay"!==ue.mode&&"group"===l&&1===$e.value.length)try{$e.value.push({key:l,label:e.name});const a=await q({id:e.id});Pe.value=ae(a)?a:[]}catch(e){console.log("error ==>",e)}}(l)},{default:d((()=>[u(s(L),{align:"center","wrap-item":!1,wrap:!1},{default:d((()=>[u(s(E),{src:l.avatar,round:"",size:32},null,8,["src"]),e("div",ke,[e("span",be,f(l.name),1),m(e("label",{class:w(["iho-chatRole",s(Q)(l.roleInfo)?"isDoctor":""])},f(s(W)(l.roleInfo)),3),[[y,s(W)(l.roleInfo)]])]),l.total?(t(),i("span",Ie," ("+f(l.total)+"人) ",1)):c("v-if",!0),1==l.type&&l.children.length>0?(t(),v(s(j),{key:1,type:"primary",text:"",disabled:tl(l),style:{"margin-left":"auto"},onClick:k((e=>ol(l)),["stop"])},{default:d((()=>[g(" 下级 ")])),_:2},1032,["disabled","onClick"])):c("v-if",!0)])),_:2},1024)])),_:2},1032,["value","disabled","onClick"])))),128))])),_:1},8,["value"]))],64)):(t(),i("div",Ce,(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.38"))||"找不到相关结果"))])]),e("div",_e,[e("span",null,((null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.39"))||"已选择")+f(s(Qe).length)+((null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.40"))||"人"),1),e("div",xe,[(t(!0),i(r,null,p(De.value,(a=>(t(),v(s(N),{key:a.id,bordered:!1,closable:"relay"===l.mode||a.id!==s(Ee).userInfo.id,disabled:s(Fe).includes(a.id),onClose:()=>{return e=a.id,void Z(De.value,(l=>l.id===e));var e}},{avatar:d((()=>[u(s(E),{round:"",src:a.avatar},null,8,["src"])])),default:d((()=>[e("div",Le,[e("span",je,f(a.name),1),m(e("label",{class:w(["iho-chatRole",s(Q)(a.roleInfo)?"isDoctor":""])},f(s(W)(a.roleInfo)),3),[[y,s(W)(a.roleInfo)]])])])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===l.mode?(t(),i("div",Se,[u(s(_),{clearable:"",value:Ve.value,"onUpdate:value":n[4]||(n[4]=e=>Ve.value=e),type:"textarea",placeholder:(null==(O=window.getLanguageByCode)?void 0:O.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):c("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),e("span",{class:w(["btn-wrapper",{disabled:l.disabled}]),onClick:n[6]||(n[6]=e=>Ae.value=!0)},[b(a.$slots,"trigger",{},(()=>[u(s(T),{"show-arrow":!1,placement:"bottom"},{trigger:d((()=>[u(s(j),{color:"#ffffff4D",class:"add-btn"},{icon:d((()=>[u(s(x),{component:s($),color:"#fff"},null,8,["component"])])),_:1})])),default:d((()=>[g(" "+f(l.title),1)])),_:1})]))],2)],64)}}});export{Be as default};
|
1
|
+
import{createElementVNode as e,defineComponent as l,ref as a,computed as n,watch as o,openBlock as t,createElementBlock as i,Fragment as r,createVNode as u,unref as s,withCtx as d,createCommentVNode as c,createBlock as v,renderList as p,toDisplayString as f,createTextVNode as g,withDirectives as m,isRef as h,vShow as y,normalizeClass as w,withModifiers as k,renderSlot as b,nextTick as I}from"vue";import{NModal as C,NInput as _,NIcon as x,NSpace as L,NButton as j,NBreadcrumb as S,NBreadcrumbItem as B,NCheckbox as U,NCheckboxGroup as R,NAvatar as E,NTag as N,NTooltip as T}from"naive-ui";import{SearchOutline as z,PersonOutline as A,PeopleOutline as D,ChevronBackOutline as G,ChevronForwardOutline as O,AddOutline as V}from"@vicons/ionicons5";import{useData as $}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as M}from"../constants/index.js";import{getOrgUserTreeApi as P,groupUserApi as q,groupLeaveApi as F,groupJoinApi as H,groupCreateApi as J}from"../api/index.js";import{listSort as K,isDoctorRole as Q,getRoleName as W}from"../utils/index.js";import{union as X,unionBy as Y,remove as Z,intersection as ee,last as le,isArray as ae,uniqBy as ne,cloneDeep as oe,trim as te}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as ie}from"../hooks/useSearchUserList.js";var re,ue;const se={class:"iho-chat-dialog__content iho-chat-add-wrapper"},de={key:0,class:"input-box"},ce=e("span",null,(null==(re=window.getLanguageByCode)?void 0:re.call(window,"10010.1.34"))||"群名称:",-1),ve={class:"transfer-box"},pe={class:"transfer-box__left"},fe={key:0,class:"nav-wrapper"},ge={key:0,class:"chat--iconfont chat--icon-map-site"},me={style:{"font-size":"12px"}},he={key:1,class:"header"},ye={class:"user-list-box"},we={key:0,class:"org-list"},ke={class:"seach-box"},be={class:"ellipsis"},Ie={key:0,style:{"font-size":"12px",color:"#666","margin-right":"10px","white-space":"nowrap"}},Ce={key:1,class:"no-data"},_e={class:"transfer-box__right"},xe={class:"checked-tag-box"},Le={class:"seach-box"},je={class:"ellipsis"},Se={key:0,class:"input-wrapper"};var Be=l({__name:"ChatAdd",props:{title:{type:String,default:(null==(ue=window.getLanguageByCode)?void 0:ue.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(l,{emit:re}){const ue=l;let Be=[];const Ue=[{key:"single",label:"按好友选"},{key:"group",label:"按群聊选"},{key:"org",label:"按架构选"}];let Re=[];const{state:Ee,setCurrentSessionItem:Ne}=$(),Te=a(),ze=a(""),Ae=a(!1),De=a([]),Ge=a(""),Oe=a(""),Ve=a([]),$e=a([]),Me=a(),{userList:Pe,handleInput:qe}=ie({wrapperRef:Te,keywordRef:ze,before:()=>{Ve.value.length>0||(Pe.value=Be)}}),Fe=n((()=>"relay"===ue.mode?[]:X(ue.disabledIds,[Ee.userInfo.id]))),He=n((()=>{var e;return(null==(e=Ee.sessionList)?void 0:e.length)?K(Ee.sessionList).map((e=>({id:e.receiver,name:e.name,avatar:e.avatar,chatType:e.chatType,roleInfo:e.roleInfo||""}))):[]})),Je=n((()=>He.value.filter((e=>e.chatType===M.SINGLE)))),Ke=n((()=>He.value.filter((e=>e.chatType===M.GROUP)))),Qe=n((()=>De.value.length?De.value.map((e=>e.id)):[])),We=n((()=>"create"===ue.mode?Qe.value.length<3:Qe.value.length<1)),Xe=n({get:()=>Ye.value.filter((e=>!nl(e))).length===Pe.value.filter((e=>!nl(e.id))).length,set(e){const l=[];if(Pe.value.forEach((e=>{var a;if(1==e.type&&(null==(a=e.children)?void 0:a.length)){const a=rl(e.children||[]).filter((e=>!nl(e.id)));console.log("users",a.length),l.push(...a)}else nl(e.id)||l.push(e)})),e)De.value=Y(De.value,l,"id");else{const e=l.map((e=>e.id));Z(De.value,(l=>e.includes(l.id)))}}}),Ye=n({get(){var e,l,a;return null!=(a=null==(l=null==(e=Pe.value)?void 0:e.filter((e=>{var l;if(1==e.type&&(null==(l=e.children)?void 0:l.length)){const l=rl(e.children||[]).map((e=>e.id)).filter((e=>!nl(e)));return ee(l,Qe.value).length===l.length}return Qe.value.includes(e.id)})))?void 0:l.map((e=>e.id)))?a:[]},set(e){Pe.value.forEach((l=>{var a;const n=[];1==l.type&&(null==(a=l.children)?void 0:a.length)?n.push(...rl(l.children||[]).filter((e=>!nl(e.id)))):n.push(l),e.includes(l.id)?(console.log("currentUsers>>>>",De.value,n.length),De.value=Y(De.value,n,"id"),console.log("checkedOptions>>>>",De.value)):(console.log("checkedOptions2222>>>>",De.value.length,n.length),Z(De.value,(e=>n.some((l=>l.id===e.id)))))}))}}),Ze=n((()=>{var e;return Ve.value.length>0?null==(e=le(Ve.value))?void 0:e.key:""})),el=n((()=>!("relay"!==ue.mode&&["group","org"].includes(Ze.value)&&1===Ve.value.length)));function ll(){"remove"!=ue.mode?qe():Pe.value=Be.filter((e=>e.name.includes(ze.value.trim())))}function al(e){e.forEach((e=>{var l;1==e.type&&(null==(l=e.children)?void 0:l.length)?(e.total=rl(e.children).length,al(e.children)):2==e.type&&(e.total=0)}))}function nl(e){var l,a;return"group"===Ze.value?"relay"!==ue.mode&&(1===Ve.value.length||(null==(l=Fe.value)?void 0:l.includes(e))):null==(a=Fe.value)?void 0:a.includes(e)}function ol(){Ve.value.length>1?"group"===Ze.value?Pe.value=Ke.value:"org"===Ze.value&&(Pe.value=Re.map((e=>({id:e.orgId,name:e.orgName}))),$e.value=[]):Pe.value=Be,Ve.value.pop()}function tl(e,l){const{id:a,children:n=[],type:o}=e;if("breadcrumb"!==l||le($e.value).id!==a)if(o){const l=$e.value.findIndex((e=>e.id===a));l>-1?$e.value=$e.value.slice(0,l+1):$e.value.push(e),Pe.value=n,I((()=>{const e=Me.value.$el.getElementsByTagName("ul")[0];e&&e.scrollTo(1e7,0)}))}else{const n=Re.find((e=>e.orgId===a));$e.value=[e],Pe.value=n.userList||[],l||Ve.value.push({key:Ze.value,label:n.orgName})}}function il(e){const{children:l=[]}=e;if(!l.length)return!0;const a=rl(l).map((e=>e.id)).filter((e=>!Fe.value.includes(e)));return ee(a,Qe.value).length===a.length}function rl(e){const l=[];return e.forEach((e=>{var a;1==e.type&&(null==(a=e.children)?void 0:a.length)?l.push(...rl(e.children)):2==e.type&&l.push(e)})),l}async function ul(){const e=s(Qe);switch(ue.mode){case"create":await J({creator:Ee.userInfo.id,memberIdSet:e,name:te(Ge.value),orgId:Ee.orgId});break;case"join":if(await H({groupId:Ee.currentSessionItem.receiver,operator:Ee.userInfo.id,memberIdSet:e}),!Ee.currentSessionItem.defaultName){const e=De.value.map((e=>e.name)).join(",");Ne({name:`${Ee.currentSessionItem.name},${e}`})}Ee.currentGroupUser.push(...Pe.value.filter((l=>e.includes(l.id))));break;case"remove":if(await F({dissolution:!1,groupId:Ee.currentSessionItem.receiver,operator:Ee.userInfo.id,memberIdSet:e}),!Ee.currentSessionItem.defaultName){const e=De.value.map((e=>e.name)).join(","),l=new RegExp(e,"g");Ne({name:Ee.currentSessionItem.name.replace(l,"")})}Z(Ee.currentGroupUser,(l=>e.includes(l.id)));break;default:re("comfirm",{checkedIds:e,checkedOptions:De.value,remark:Oe.value})}Ae.value=!1}return async function(){try{const e=await P();Re=ae(e)?e:[],Re.forEach((e=>al(e.userList||[])))}catch(e){console.log("error ==>",e)}}(),o((()=>Ae.value),(e=>{if(!e)return;ze.value="",Ge.value="",Ve.value=[],$e.value=[];const l="relay"===ue.mode?He.value:Je.value,a=ae(ue.options)&&ue.options.length?ue.options:l;Be=ne(a,"id"),Pe.value=Be,De.value=ae(ue.defaultValue)&&ue.defaultValue.length?oe(ue.defaultValue):[]})),(a,n)=>{var o,I;return t(),i(r,null,[u(s(C),{preset:"dialog",title:l.title,"show-icon":!1,"auto-focus":!1,"trap-focus":!1,class:"iho-chat-dialog",show:Ae.value,"onUpdate:show":n[5]||(n[5]=e=>Ae.value=e),"negative-text":(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.28"))||"取消","positive-text":(null==(I=window.getLanguageByCode)?void 0:I.call(window,"10010.1.27"))||"确定","display-directive":"show","positive-button-props":{disabled:s(We)},onPositiveClick:ul},{default:d((()=>{var a,o,b,I,C,T,V,$,M;return[e("div",se,["create"===l.mode?(t(),i("div",de,[ce,u(s(_),{clearable:"",placeholder:(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.35"))||"取个群名称方便后续搜索",value:Ge.value,"onUpdate:value":n[0]||(n[0]=e=>Ge.value=e),valueModifiers:{trim:!0}},null,8,["value"])])):c("v-if",!0),e("div",ve,[e("div",pe,[u(s(_),{placeholder:(null==(o=window.getLanguageByCode)?void 0:o.call(window,"10010.1.36"))||"搜索",clearable:"",value:ze.value,"onUpdate:value":[n[1]||(n[1]=e=>ze.value=e),ll],valueModifiers:{trim:!0}},{prefix:d((()=>[u(s(x),{component:s(z)},null,8,["component"])])),_:1},8,["value"]),ze.value||"remove"===l.mode?c("v-if",!0):(t(),i("div",fe,[0===Ve.value.length?(t(),v(s(L),{key:0,justify:"space-around","wrap-item":!1},{default:d((()=>[(t(),i(r,null,p(Ue,(l=>u(s(L),{vertical:"",align:"center","wrap-item":!1,key:l.key,onClick:()=>function(e){switch(ze.value="",Ve.value=[e],e.key){case"single":Pe.value=Je.value;break;case"group":Pe.value=Ke.value;break;case"org":Pe.value=Re.map((e=>({id:e.orgId,name:e.orgName})))}}(l)},{default:d((()=>[u(s(j),{tertiary:""},{icon:d((()=>["org"===l.key?(t(),i("i",ge)):(t(),v(s(x),{key:1,component:"single"===l.key?s(A):s(D)},null,8,["component"]))])),_:2},1024),e("span",me,f(l.label),1)])),_:2},1032,["onClick"]))),64))])),_:1})):c("v-if",!0),Ve.value.length>0?(t(),i("div",he,[u(s(j),{text:"",onClick:ol},{icon:d((()=>[u(s(x),{component:s(G)},null,8,["component"])])),_:1}),e("h4",null,f(null==(b=s(le)(Ve.value))?void 0:b.label),1)])):c("v-if",!0),Ve.value.length>0&&"org"===(null==(I=s(le)(Ve.value))?void 0:I.key)&&$e.value.length>0?(t(),v(s(S),{key:2,ref_key:"breadcrumbRef",ref:Me,separator:">"},{default:d((()=>[(t(!0),i(r,null,p($e.value,(e=>(t(),v(s(B),{key:e.id,onClick:l=>tl(e,"breadcrumb")},{default:d((()=>[g(f(e.name),1)])),_:2},1032,["onClick"])))),128))])),_:1},512)):c("v-if",!0)])),e("div",ye,[s(Pe).length>0?(t(),i(r,{key:0},[m(u(s(U),{label:(null==(C=window.getLanguageByCode)?void 0:C.call(window,"10010.1.37"))||"全选",checked:s(Xe),"onUpdate:checked":n[2]||(n[2]=e=>h(Xe)?Xe.value=e:null)},null,8,["checked"]),[[y,s(el)]]),"org"===s(Ze)&&1===Ve.value.length?(t(),i("div",we,[(t(!0),i(r,null,p(s(Pe),(l=>(t(),v(s(L),{"wrap-item":!1,align:"center",justify:"space-between",key:l.Id,onClick:e=>tl(l)},{default:d((()=>[e("span",null,f(l.name),1),u(s(x),{size:"16",component:s(O)},null,8,["component"])])),_:2},1032,["onClick"])))),128))])):(t(),v(s(R),{key:1,ref_key:"listRef",ref:Te,value:s(Ye),"onUpdate:value":n[3]||(n[3]=e=>h(Ye)?Ye.value=e:null)},{default:d((()=>[(t(!0),i(r,null,p(s(Pe),(l=>(t(),v(s(U),{key:l.id,value:l.id,disabled:nl(l.id),onClick:()=>async function(e){const l=s(Ze);if(l&&"relay"!==ue.mode&&"group"===l&&1===Ve.value.length)try{Ve.value.push({key:l,label:e.name});const a=await q({id:e.id});Pe.value=ae(a)?a:[]}catch(e){console.log("error ==>",e)}}(l)},{default:d((()=>[u(s(L),{align:"center","wrap-item":!1,wrap:!1},{default:d((()=>[u(s(E),{src:l.avatar,round:"",size:32},null,8,["src"]),e("div",ke,[e("span",be,f(l.name),1),m(e("label",{class:w(["iho-chatRole",s(Q)(l.roleInfo)?"isDoctor":""])},f(s(W)(l.roleInfo)),3),[[y,s(W)(l.roleInfo)]])]),l.total?(t(),i("span",Ie," ("+f(l.total)+"人) ",1)):c("v-if",!0),1==l.type&&l.children.length>0?(t(),v(s(j),{key:1,type:"primary",text:"",disabled:il(l),style:{"margin-left":"auto"},onClick:k((e=>tl(l)),["stop"])},{default:d((()=>[g(" 下级 ")])),_:2},1032,["disabled","onClick"])):c("v-if",!0)])),_:2},1024)])),_:2},1032,["value","disabled","onClick"])))),128))])),_:1},8,["value"]))],64)):(t(),i("div",Ce,(null==(T=window.getLanguageByCode)?void 0:T.call(window,"10010.1.38"))||"找不到相关结果"))])]),e("div",_e,[e("span",null,((null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.39"))||"已选择")+f(s(Qe).length)+((null==($=window.getLanguageByCode)?void 0:$.call(window,"10010.1.40"))||"人"),1),e("div",xe,[(t(!0),i(r,null,p(De.value,(a=>(t(),v(s(N),{key:a.id,bordered:!1,closable:"relay"===l.mode||a.id!==s(Ee).userInfo.id,disabled:s(Fe).includes(a.id),onClose:()=>{return e=a.id,void Z(De.value,(l=>l.id===e));var e}},{avatar:d((()=>[u(s(E),{round:"",src:a.avatar},null,8,["src"])])),default:d((()=>[e("div",Le,[e("span",je,f(a.name),1),m(e("label",{class:w(["iho-chatRole",s(Q)(a.roleInfo)?"isDoctor":""])},f(s(W)(a.roleInfo)),3),[[y,s(W)(a.roleInfo)]])])])),_:2},1032,["closable","disabled","onClose"])))),128))]),"relay"===l.mode?(t(),i("div",Se,[u(s(_),{clearable:"",value:Oe.value,"onUpdate:value":n[4]||(n[4]=e=>Oe.value=e),type:"textarea",placeholder:(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.41"))||"留言",autosize:{minRows:2,maxRows:2}},null,8,["value"])])):c("v-if",!0)])])])]})),_:1},8,["title","show","positive-button-props"]),e("span",{class:w(["btn-wrapper",{disabled:l.disabled}]),onClick:n[6]||(n[6]=e=>Ae.value=!0)},[b(a.$slots,"trigger",{},(()=>[u(s(T),{"show-arrow":!1,placement:"bottom"},{trigger:d((()=>[u(s(j),{color:"#ffffff4D",class:"add-btn"},{icon:d((()=>[u(s(x),{component:s(V),color:"#fff"},null,8,["component"])])),_:1})])),default:d((()=>[g(" "+f(l.title),1)])),_:1})]))],2)],64)}}});export{Be as default};
|
@@ -214,6 +214,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
214
214
|
currentTabKey: import("vue").ComputedRef<any>;
|
215
215
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
216
216
|
getOrgList: () => Promise<void>;
|
217
|
+
handleSearchInput: () => void;
|
217
218
|
setUserTotal: (tree: AnyObject[]) => void;
|
218
219
|
getDisabled: (id: string | number) => boolean;
|
219
220
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -205,6 +205,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
205
205
|
currentTabKey: import("vue").ComputedRef<any>;
|
206
206
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
207
207
|
getOrgList: () => Promise<void>;
|
208
|
+
handleSearchInput: () => void;
|
208
209
|
setUserTotal: (tree: AnyObject[]) => void;
|
209
210
|
getDisabled: (id: string | number) => boolean;
|
210
211
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -252,6 +252,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
252
252
|
currentTabKey: import("vue").ComputedRef<any>;
|
253
253
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
254
254
|
getOrgList: () => Promise<void>;
|
255
|
+
handleSearchInput: () => void;
|
255
256
|
setUserTotal: (tree: AnyObject[]) => void;
|
256
257
|
getDisabled: (id: string | number) => boolean;
|
257
258
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -532,6 +533,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
532
533
|
currentTabKey: import("vue").ComputedRef<any>;
|
533
534
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
534
535
|
getOrgList: () => Promise<void>;
|
536
|
+
handleSearchInput: () => void;
|
535
537
|
setUserTotal: (tree: AnyObject[]) => void;
|
536
538
|
getDisabled: (id: string | number) => boolean;
|
537
539
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -820,6 +822,60 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
820
822
|
default: string[][];
|
821
823
|
findEmoji(name: string): any;
|
822
824
|
};
|
825
|
+
MessageEvent: import("vue").DefineComponent<{
|
826
|
+
data: {
|
827
|
+
type: import("vue").PropType<AnyObject>;
|
828
|
+
required: true;
|
829
|
+
};
|
830
|
+
}, {
|
831
|
+
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
832
|
+
data: {
|
833
|
+
type: import("vue").PropType<AnyObject>;
|
834
|
+
required: true;
|
835
|
+
};
|
836
|
+
}>> & {}>>;
|
837
|
+
state: {
|
838
|
+
orgId: string | number;
|
839
|
+
currentSessionItem: AnyObject;
|
840
|
+
id: string;
|
841
|
+
userInfo: AnyObject;
|
842
|
+
msgList: AnyObject[];
|
843
|
+
currentMsg: AnyObject;
|
844
|
+
isAppendMsg: boolean;
|
845
|
+
sessionList: AnyObject[];
|
846
|
+
isChangeSession: boolean;
|
847
|
+
updateSessionItem: AnyObject;
|
848
|
+
isUpdateSession: boolean;
|
849
|
+
currentReferenceMsg: AnyObject | null;
|
850
|
+
currentReEditMsg: AnyObject | null;
|
851
|
+
showVideo: boolean;
|
852
|
+
currentAVMsg: AnyObject;
|
853
|
+
currentGroupUser: AnyObject[];
|
854
|
+
showMultipleVideo: boolean;
|
855
|
+
userDetail: {
|
856
|
+
show: boolean;
|
857
|
+
position: {
|
858
|
+
x: number;
|
859
|
+
y: number;
|
860
|
+
};
|
861
|
+
userId: string;
|
862
|
+
info: AnyObject | null;
|
863
|
+
};
|
864
|
+
isForward: boolean;
|
865
|
+
};
|
866
|
+
setUserDetail: (event: MouseEvent, userDetail: AnyObject) => void;
|
867
|
+
inviter: import("vue").Ref<any>;
|
868
|
+
invitee: import("vue").Ref<any[]>;
|
869
|
+
isValidJSON: (str: string) => boolean;
|
870
|
+
getTask: (_id: string | number, arrRes: AnyObject[]) => () => Promise<unknown>;
|
871
|
+
getEventContent: (data: AnyObject) => Promise<void>;
|
872
|
+
NButton: any;
|
873
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
874
|
+
data: {
|
875
|
+
type: import("vue").PropType<AnyObject>;
|
876
|
+
required: true;
|
877
|
+
};
|
878
|
+
}>>, {}>;
|
823
879
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
824
880
|
visible: {
|
825
881
|
type: BooleanConstructor;
|
@@ -956,6 +1012,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
956
1012
|
currentTabKey: import("vue").ComputedRef<any>;
|
957
1013
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
958
1014
|
getOrgList: () => Promise<void>;
|
1015
|
+
handleSearchInput: () => void;
|
959
1016
|
setUserTotal: (tree: AnyObject[]) => void;
|
960
1017
|
getDisabled: (id: string | number) => boolean;
|
961
1018
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -515,6 +515,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
515
515
|
currentTabKey: import("vue").ComputedRef<any>;
|
516
516
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
517
517
|
getOrgList: () => Promise<void>;
|
518
|
+
handleSearchInput: () => void;
|
518
519
|
setUserTotal: (tree: AnyObject[]) => void;
|
519
520
|
getDisabled: (id: string | number) => boolean;
|
520
521
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -214,6 +214,60 @@ declare const _default: import("vue").DefineComponent<{
|
|
214
214
|
default: string[][];
|
215
215
|
findEmoji(name: string): any;
|
216
216
|
};
|
217
|
+
MessageEvent: import("vue").DefineComponent<{
|
218
|
+
data: {
|
219
|
+
type: PropType<AnyObject>;
|
220
|
+
required: true;
|
221
|
+
};
|
222
|
+
}, {
|
223
|
+
props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
224
|
+
data: {
|
225
|
+
type: PropType<AnyObject>;
|
226
|
+
required: true;
|
227
|
+
};
|
228
|
+
}>> & {}>>;
|
229
|
+
state: {
|
230
|
+
orgId: string | number;
|
231
|
+
currentSessionItem: AnyObject;
|
232
|
+
id: string;
|
233
|
+
userInfo: AnyObject;
|
234
|
+
msgList: AnyObject[];
|
235
|
+
currentMsg: AnyObject;
|
236
|
+
isAppendMsg: boolean;
|
237
|
+
sessionList: AnyObject[];
|
238
|
+
isChangeSession: boolean;
|
239
|
+
updateSessionItem: AnyObject;
|
240
|
+
isUpdateSession: boolean;
|
241
|
+
currentReferenceMsg: AnyObject | null;
|
242
|
+
currentReEditMsg: AnyObject | null;
|
243
|
+
showVideo: boolean;
|
244
|
+
currentAVMsg: AnyObject;
|
245
|
+
currentGroupUser: AnyObject[];
|
246
|
+
showMultipleVideo: boolean;
|
247
|
+
userDetail: {
|
248
|
+
show: boolean;
|
249
|
+
position: {
|
250
|
+
x: number;
|
251
|
+
y: number;
|
252
|
+
};
|
253
|
+
userId: string;
|
254
|
+
info: AnyObject | null;
|
255
|
+
};
|
256
|
+
isForward: boolean;
|
257
|
+
};
|
258
|
+
setUserDetail: (event: MouseEvent, userDetail: AnyObject) => void;
|
259
|
+
inviter: import("vue").Ref<any>;
|
260
|
+
invitee: import("vue").Ref<any[]>;
|
261
|
+
isValidJSON: (str: string) => boolean;
|
262
|
+
getTask: (_id: string | number, arrRes: AnyObject[]) => () => Promise<unknown>;
|
263
|
+
getEventContent: (data: AnyObject) => Promise<void>;
|
264
|
+
NButton: any;
|
265
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
266
|
+
data: {
|
267
|
+
type: PropType<AnyObject>;
|
268
|
+
required: true;
|
269
|
+
};
|
270
|
+
}>>, {}>;
|
217
271
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
218
272
|
visible: {
|
219
273
|
type: BooleanConstructor;
|
@@ -1 +1 @@
|
|
1
|
-
import{createElementVNode as e,defineComponent as a,ref as l,watch as t,openBlock as s,createBlock as n,unref as r,withCtx as o,createVNode as i,toDisplayString as u,normalizeStyle as d,resolveDynamicComponent as c,createElementBlock as v,Fragment as m,renderList as p,createCommentVNode as f,withDirectives as g,normalizeClass as h,vShow as y,createTextVNode as w}from"vue";import{NModal as _,NAvatar as b,NInputGroup as T,NInput as k,NSelect as M,NPopover as I,NTag as
|
1
|
+
import{createElementVNode as e,defineComponent as a,ref as l,watch as t,openBlock as s,createBlock as n,unref as r,withCtx as o,createVNode as i,toDisplayString as u,normalizeStyle as d,resolveDynamicComponent as c,createElementBlock as v,Fragment as m,renderList as p,createCommentVNode as f,withDirectives as g,normalizeClass as h,vShow as y,createTextVNode as w}from"vue";import{NModal as _,NAvatar as b,NInputGroup as T,NInput as k,NSelect as M,NPopover as I,NTag as j,NIcon 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{MESSAGE_TYPE as A}from"../constants/index.js";import{searchChatRecordApi as S}from"../api/index.js";import{transformMessage as E,isDoctorRole as H,getRoleName as D,formatTime as U}from"../utils/index.js";import{last as B}from"lodash-es";import"trtc-sdk-v5";import N from"../../../date-picker/index.js";import{useDebounceFn as z}from"@vueuse/core";import{format as O}from"date-fns";import"../../../../shared/utils/index.js";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import{useScrollLoading as R}from"../../../../shared/hooks/useScrollLoading.js";import{emojis as G}from"../utils/emoji.js";import $ from"./MessageEvent.vue.js";var J,V;const W={class:"iho-chat-dialog__header"},F=e("span",{class:"left"},(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.65"))||"聊天记录",-1),P={class:"center"},q={class:"chat-record-box"},K={class:"msg-box"},Q={class:"name-and-time"},X={class:"seach-box"},Y={class:"ellipsis"},Z={style:{"white-space":"nowrap"}},ee={class:"content"},ae=["src"],le={class:"file-type"},te={class:"text"},se={class:"name"},ne={class:"detail"},re=["src"],oe=["innerHTML"],ie={key:1,class:"no-data"},ue={class:"chat-record-box__filter"},de=e("span",{class:"filter-title"},(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.72"))||"添加筛选条件",-1),ce={class:"filter-item"},ve=e("span",{class:"label"},"成员:",-1),me={class:"filter-item"},pe=e("span",{class:"label"},"日期:",-1),fe={class:"time-target"},ge={class:"time-target__item"},he=e("span",null,"开始:",-1),ye={class:"tip"},we={class:"time-target__item"},_e=e("span",null,"结束:",-1),be={class:"tip"};var Te=a({__name:"ChatRecord",props:{visible:{type:Boolean}},setup(a){const J=a,V={color:"#fff",textColor:"#666"},{state:Te,cssVars:ke}=L(),Me=l(),Ie=l([]),je=l(),xe=l([]),Ce=l(),Le=l(),Ae=z(Be,500),Se={page:0,hasMore:!0,lastSendTime:O(new Date,"yyyy-MM-dd HH:mm:ss")};function Ee(e,a){try{const l=JSON.parse(e);return l?l[a]:""}catch(a){return e||""}}function He(e){const{size:a,sendTime:l,senderName:t}=e;return`${O(new Date(l),"yyyy/MM/dd HH:mm")} ${t}`}function De(e){const a=e.lastIndexOf(".");if(console.log("dotIndex",a),-1!==a){return e.charAt(a+1).toUpperCase()}return"?"}async function Ue(){var e;try{if(!Se.hasMore)return;Se.page++;const a=await S({orgId:Te.orgId,keyword:je.value,endTime:Oe(),startTime:Ce.value?Ce.value+" 00:00:00":"",lastSendTime:Se.lastSendTime,memberIdSet:xe.value,page:Se.page,recordType:"ALL",receiver:Te.currentSessionItem.receiver,userId:Te.userInfo.id});Array.isArray(a)&&0!==a.length&&Array.isArray(a[0].recordList)||(Se.hasMore=!1);let l=a||[];Array.isArray(a)&&a.length>0&&(l=a[0].recordList.filter((e=>"WITHDRAWN"!==e.status))),Se.lastSendTime=null==(e=B(l))?void 0:e.sendTime,l.forEach((e=>{var a,l,t;let s="";if(e.content.chatMessageType===A.TEMPLATE)s=null==(t=null==(l=null==(a=e.content)?void 0:a.messageTemplate)?void 0:l.setting)?void 0:t.title;else s=E(e.content);e.__content=s})),Ie.value=Se.page>1?Ie.value.concat(l):l}catch(e){}}function Be(){Object.assign(Se,{page:0,hasMore:!0,lastSendTime:Oe()||O(new Date,"yyyy-MM-dd HH:mm:ss")}),Ue()}function Ne(e){return!!Le.value&&e>Date.parse(`${Le.value} 23:59:59`)}function ze(e){return!!Ce.value&&e<Date.parse(Ce.value)}function Oe(){return Le.value?Le.value+" 23:59:59":""}function Re(e){switch(e){case"member":xe.value=[];break;case"start":Ce.value=null;break;case"end":Le.value=null}}function Ge(e){return i(m,null,[i("div",{style:"display: flex;align-items: center"},[i(b,{src:e.avatar,round:!0,size:"small"},null),i("span",{style:"margin-left: 10px"},[e.name])])])}return R(Me,(()=>{Ue()})),t([()=>xe.value,()=>Ce.value,()=>Le.value],(()=>{J.visible&&Be()}),{deep:!0}),t((()=>J.visible),(e=>{e?Be():(je.value="",Le.value=null,Ce.value=null,xe.value=[],Ie.value=[])})),(a,l)=>(s(),n(r(_),{preset:"dialog",title:"","show-icon":!1,"auto-focus":!1,class:"iho-chat-dialog"},{header:o((()=>[e("div",W,[F,e("div",P,[i(r(b),{round:"",size:30,src:r(Te).currentSessionItem.avatar},null,8,["src"]),e("span",null,u(r(Te).currentSessionItem.name),1)])])])),default:o((()=>[e("div",{class:"iho-chat-dialog__content iho-chat-record-wrapper",style:d(r(ke))},[i(r(T),null,{default:o((()=>{var e;return[(s(),n(c((()=>[i(x,{component:C,size:18,color:"#6666"},null),xe.value.length>0?i(j,{closable:!0,bordered:!1,color:V,onClose:()=>Re("member")},{default:()=>{var e,a;return[w("成员:")," ",xe.value.length>1?xe.value.length+((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.40"))||"人"):null==(a=Te.currentGroupUser.find((e=>e.id===xe.value[0])))?void 0:a.name]}}):null,Ce.value?i(j,{closable:!0,bordered:!1,color:V,onClose:()=>Re("start")},{default:()=>[w("起始时间: "),Ce.value]}):null,Le.value?i(j,{closable:!0,bordered:!1,color:V,onClose:()=>Re("end")},{default:()=>[w("结束时间: "),Le.value]}):null])))),i(r(k),{placeholder:(null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.36"))||"搜索",value:je.value,"onUpdate:value":l[0]||(l[0]=e=>je.value=e),valueModifiers:{trim:!0},onInput:r(Ae)},null,8,["value","onInput"])]})),_:1}),e("div",q,[e("div",{class:"chat-record-box__content",ref_key:"recordRef",ref:Me},[Ie.value.length>0?(s(!0),v(m,{key:0},p(Ie.value,(a=>(s(),v("div",{class:"content-item",key:a.id},[i(r(b),{round:"",size:38,src:a.senderAvatar},null,8,["src"]),e("div",K,[e("div",Q,[f(" <span>{{ item.senderName }}</span> "),e("div",X,[e("span",Y,u(a.senderName),1),g(e("label",{class:h(["iho-chatRole",r(H)(a.roleInfo)?"isDoctor":""])},u(r(D)(a.roleInfo)),3),[[y,r(D)(a.roleInfo)]])]),e("span",Z,u(r(U)(a.sendTime).recordTime),1)]),e("div",ee,[a.content.chatMessageType===r(A).IMAGE?(s(),v("img",{key:0,src:Ee(a.__content,"fileUrl")},null,8,ae)):a.content.chatMessageType===r(A).FILE?(s(),v(m,{key:1},[e("span",le,u(De(a.__content)),1),e("div",te,[e("span",se,u(Ee(a.__content,"fileName")),1),e("span",ne,u(He(a)),1)])],64)):a.content.chatMessageType===r(A).EMOJI?(s(),v("img",{key:2,class:"emoji",src:r(G).findEmoji(a.__content)},null,8,re)):a.content.chatMessageType===r(A).EVENT?(s(),n($,{key:3,data:a},null,8,["data"])):(s(),v("p",{key:4,innerHTML:a.__content},null,8,oe))])])])))),128)):(s(),v("div",ie,"没有找到相关记录"))],512),e("div",ue,[de,e("div",ce,[ve,i(r(M),{value:xe.value,"onUpdate:value":l[1]||(l[1]=e=>xe.value=e),multiple:"","max-tag-count":1,"render-label":Ge,options:r(Te).currentGroupUser,"value-field":"id"},null,8,["value","options"])]),e("div",me,[pe,e("div",fe,[i(r(I),{trigger:"click","show-arrow":!1},{trigger:o((()=>{var a;return[e("div",ge,[he,g(i(r(j),{bordered:!1,color:V,closable:"",onClose:l[2]||(l[2]=()=>Re("start"))},{default:o((()=>[w(u(Ce.value),1)])),_:1},512),[[y,Ce.value]]),g(e("span",ye,(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.76"))||"点击选择",512),[[y,!Ce.value]])])]})),default:o((()=>[i(r(N),{"formatted-value":Ce.value,"onUpdate:formatted-value":l[3]||(l[3]=e=>Ce.value=e),type:"date",panel:"",clearable:"","is-date-disabled":Ne},null,8,["formatted-value"])])),_:1}),i(r(I),{trigger:"click","show-arrow":!1},{trigger:o((()=>{var a;return[e("div",we,[_e,g(i(r(j),{bordered:!1,color:V,closable:"",onClose:l[4]||(l[4]=()=>Re("end"))},{default:o((()=>[w(u(Le.value),1)])),_:1},512),[[y,Le.value]]),g(e("span",be,(null==(a=window.getLanguageByCode)?void 0:a.call(window,"10010.1.76"))||"点击选择",512),[[y,!Le.value]])])]})),default:o((()=>[i(r(N),{"formatted-value":Le.value,"onUpdate:formatted-value":l[5]||(l[5]=e=>Le.value=e),type:"date",panel:"",clearable:"","is-date-disabled":ze},null,8,["formatted-value"])])),_:1})])])])])],4)])),_:1}))}});export{Te as default};
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { AnyObject } from '../../../../shared/types';
|
2
2
|
declare const _default: import("vue").DefineComponent<{}, {
|
3
|
-
|
3
|
+
userListRef: import("vue").Ref<any>;
|
4
|
+
patientListRef: import("vue").Ref<any>;
|
4
5
|
inputRef: import("vue").Ref<any>;
|
5
6
|
showSearch: import("vue").Ref<boolean>;
|
6
7
|
keyword: import("vue").Ref<string>;
|
@@ -37,14 +38,19 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
37
38
|
openSession: (session: string | AnyObject) => Promise<void>;
|
38
39
|
userList: import("vue").Ref<AnyObject[]>;
|
39
40
|
handleInput: () => void;
|
41
|
+
patientList: import("vue").Ref<AnyObject[]>;
|
42
|
+
handlePatientInput: () => void;
|
40
43
|
currentTabValue: import("vue").Ref<string>;
|
41
44
|
currentIndex: import("vue").Ref<number>;
|
42
45
|
groupList: import("vue").ComputedRef<AnyObject[]>;
|
43
|
-
|
46
|
+
showNoUserData: import("vue").ComputedRef<boolean>;
|
47
|
+
showNoPatientData: import("vue").ComputedRef<boolean>;
|
44
48
|
showAllNoData: import("vue").ComputedRef<boolean>;
|
45
49
|
showGroupNoData: import("vue").ComputedRef<boolean>;
|
50
|
+
userStartIndex: import("vue").ComputedRef<number>;
|
46
51
|
groupStartIndex: import("vue").ComputedRef<number>;
|
47
52
|
currentList: import("vue").ComputedRef<AnyObject[]>;
|
53
|
+
handleSearchInput: () => void;
|
48
54
|
handleKeyDown: (event: KeyboardEvent) => void;
|
49
55
|
addSession: (id: string) => Promise<void>;
|
50
56
|
handleTabChange: () => void;
|
@@ -1 +1 @@
|
|
1
|
-
import{createElementVNode as e,defineComponent as l,ref as
|
1
|
+
import{createElementVNode as e,defineComponent as l,ref as t,computed as n,watch as o,nextTick as a,openBlock as s,createBlock as u,unref as i,normalizeStyle as r,withCtx as v,createVNode as c,createTextVNode as d,withModifiers as p,createCommentVNode as f,createElementBlock as g,Fragment as m,renderList as w,normalizeClass as y,withDirectives as h,vShow as k}from"vue";import{NPopover as C,NButton as L,NIcon as _,NInput as M,NTabs as j,NTabPane as I,NDivider as x}from"naive-ui";import{SearchOutline as B}from"@vicons/ionicons5";import{useData as R}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{openSessionApi as b}from"../api/index.js";import{isGroup as D}from"../utils/index.js";import{trim as U}from"lodash-es";import"trtc-sdk-v5";import{useSearchUserList as S}from"../hooks/useSearchUserList.js";import{useSearchPatientList as z}from"../hooks/useSearchPatientList.js";import A from"../../../default-page/index.js";import E from"./userItemRender.js";var K;const P=e("div",{class:"title"},"联系人(患者)",-1),G=e("div",{class:"title"},"联系人(医护)",-1),N=e("div",{class:"title"},(null==(K=window.getLanguageByCode)?void 0:K.call(window,"10010.1.575"))||"我的群组",-1),T={class:"user-list-wrapper"};var V=l({__name:"ChatSearch",setup(l){const K=t(),V=t(),$=t(),q=t(!1),F=t(""),{cssVars:H,state:J,openSession:O}=R(),{userList:Q,handleInput:W}=S({wrapperRef:K,keywordRef:F}),{patientList:X,handlePatientInput:Y}=z({wrapperRef:V,keywordRef:F}),Z=t("all"),ee=t(0),le=n((()=>(F.value||"").replace(/^\s+|\s+$/g,"")?J.sessionList.filter((e=>D(e)&&(null==e?void 0:e.name.includes(F.value)))):[])),te=n((()=>!Q.value.length&&!!U(F.value||""))),ne=n((()=>!X.value.length&&!!U(F.value||""))),oe=n((()=>!(Q.value.length||X.value.length||le.value.length||!U(F.value||"")))),ae=n((()=>!le.value.length&&!!U(F.value||""))),se=n((()=>X.value.length>3?4:X.value.length)),ue=n((()=>(Q.value.length>3?4:Q.value.length)+se.value)),ie=n((()=>{switch(Z.value){case"patient":return X.value;case"user":return Q.value;case"group":return le.value;default:{const e=[],l=X.value.length,t=Q.value.length,n=le.value.length;return l>0&&(l>3?e.push(...X.value.slice(0,3),{id:"patient"}):e.push(...X.value)),t>0&&(t>3?e.push(...Q.value.slice(0,3),{id:"user"}):e.push(...Q.value)),n>0&&(n>3?e.push(...le.value.slice(0,3),{id:"group"}):e.push(...le.value)),e}}}));function re(){W(),Y()}function ve(e){if(["ArrowUp","ArrowDown"].includes(e.key)){e.preventDefault();const l=i(ee);if("ArrowUp"===e.key){const e=l>0?l-1:ie.value.length-1;ee.value=e}else if("ArrowDown"===e.key){const e=l<ie.value.length-1?l+1:0;ee.value=e}}else if(["Enter"].includes(e.key)){e.preventDefault();const l=ie.value.find(((e,l)=>ee.value===l)).id;["patient","user","group"].includes(l)?Z.value=l:async function(e){q.value=!1;const l=J.sessionList.find((l=>e&&[l.receiver,l.id].includes(e)));let t=l;if(!l){t=await b({chatType:"SINGLE",receiver:e,sender:J.userInfo.id})}O(t)}(l)}}function ce(){$.value.focus(),ee.value=0}function de(){q.value=!1}return o((()=>q.value),(async e=>{var l;e&&(await a(),null==(l=$.value)||l.focus())})),(l,t)=>(s(),u(i(C),{raw:"","content-class":"search-content",class:"search-wrapper",style:r(i(H)),show:q.value,"onUpdate:show":t[8]||(t[8]=e=>q.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:v((()=>[c(i(L),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:v((()=>[c(i(_),{component:i(B),color:"#ffffff80"},null,8,["component"])])),default:v((()=>{var e;return[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.80"))||"搜索联系人")]})),_:1})])),default:v((()=>[c(i(M),{ref_key:"inputRef",ref:$,size:"small",clearable:"",autofocus:"",value:F.value,"onUpdate:value":[t[0]||(t[0]=e=>F.value=e),re],onKeydown:p(ve,["stop"])},{prefix:v((()=>[c(i(_),{color:"#ffffff80",component:i(B)},null,8,["component"])])),_:1},8,["value","onKeydown"]),c(i(j),{type:"line",animated:"",value:Z.value,"onUpdate:value":[t[7]||(t[7]=e=>Z.value=e),ce]},{default:v((()=>{var l,n;return[c(i(I),{name:"all",tab:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.571"))||"综合","display-directive":"show",style:{padding:"0 10px 10px","overflow-y":"auto"}},{default:v((()=>{var e,l;return[f(" 联系人(患者) "),i(X).length>0?(s(),g(m,{key:0},[P,(s(!0),g(m,null,w(i(X),((e,l)=>(s(),g(m,{key:e.id},[l<3?(s(),u(i(E),{key:0,item:e,class:y({last:i(X).length<4?l===i(X).length-1:2===l,selected:ee.value===l}),onItemClick:de,onMouseover:p((()=>ee.value=l),["stop"])},null,8,["item","class","onMouseover"])):f("v-if",!0)],64)))),128)),i(X).length>3?(s(),g("div",{key:0,onClick:t[1]||(t[1]=()=>Z.value="user"),class:y(["user-item",3===ee.value?"selected":""]),onMouseover:t[2]||(t[2]=p((()=>ee.value=3),["stop"]))},[c(i(L),{text:"",type:"primary"},{icon:v((()=>[c(i(_),{component:i(B),size:"16"},null,8,["component"])])),default:v((()=>[d(" 查看更多联系人(患者) ")])),_:1})],34)):f("v-if",!0)],64)):f("v-if",!0),i(X).length&&i(Q).length?(s(),u(i(x),{key:1})):f("v-if",!0),f(" 联系人(医护) "),i(Q).length>0?(s(),g(m,{key:2},[G,(s(!0),g(m,null,w(i(Q),((e,l)=>(s(),g(m,{key:e.id},[l<3?(s(),u(i(E),{key:0,item:e,class:y({last:i(Q).length<4?l===i(Q).length-1:2===l,selected:ee.value===i(se)+l}),onItemClick:de,onMouseover:p((()=>ee.value=i(se)+l),["stop"])},null,8,["item","class","onMouseover"])):f("v-if",!0)],64)))),128)),i(Q).length>3?(s(),g("div",{key:0,onClick:t[3]||(t[3]=()=>Z.value="user"),class:y(["user-item",ee.value===i(se)+3?"selected":""]),onMouseover:t[4]||(t[4]=p((()=>ee.value=i(se)+3),["stop"]))},[c(i(L),{text:"",type:"primary"},{icon:v((()=>[c(i(_),{component:i(B),size:"16"},null,8,["component"])])),default:v((()=>[d(" 查看更多联系人(医护) ")])),_:1})],34)):f("v-if",!0)],64)):f("v-if",!0),i(Q).length&&i(le).length?(s(),u(i(x),{key:3})):f("v-if",!0),f((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.572"))||"群组"),i(le).length>0?(s(),g(m,{key:4},[N,(s(!0),g(m,null,w(i(le),((e,l)=>(s(),g(m,{key:e.id},[l<3?(s(),u(i(E),{key:0,item:e,class:y({last:i(le).length<4?l===i(le).length-1:2===l,selected:ee.value===i(ue)+l}),onItemClick:de,onMouseover:p((()=>ee.value=i(ue)+l),["stop"])},null,8,["item","class","onMouseover"])):f("v-if",!0)],64)))),128)),i(le).length>3?(s(),g("div",{key:0,onClick:t[5]||(t[5]=()=>Z.value="group"),class:y(["user-item",ee.value===i(ue)+3?"selected":""]),onMouseover:t[6]||(t[6]=p((()=>ee.value=i(ue)+3),["stop"]))},[c(i(L),{text:"",type:"primary"},{icon:v((()=>[c(i(_),{component:i(B),size:"16"},null,8,["component"])])),default:v((()=>{var e;return[d((null==(e=window.getLanguageByCode)?void 0:e.call(window,"10010.1.574"))||"查看更多群组")]})),_:1})],34)):f("v-if",!0)],64)):f("v-if",!0),h(c(i(A),{config:{title:" ",content:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,i(oe)]])]})),_:1}),c(i(I),{name:"patient",tab:"联系人(患者)","display-directive":"show"},{default:v((()=>{var l;return[e("div",{class:"user-list-wrapper",ref_key:"patientListRef",ref:V},[(s(!0),g(m,null,w(i(X),((e,l)=>(s(),u(i(E),{key:e.id,item:e,onItemClick:de,class:y({selected:ee.value===l}),onMouseover:p((()=>ee.value=l),["stop"])},null,8,["item","class","onMouseover"])))),128)),h(c(i(A),{config:{title:" ",content:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,i(ne)]])],512)]})),_:1}),c(i(I),{name:"user",tab:"联系人(医护)","display-directive":"show"},{default:v((()=>{var l;return[e("div",{class:"user-list-wrapper",ref_key:"userListRef",ref:K},[(s(!0),g(m,null,w(i(Q),((e,l)=>(s(),u(i(E),{key:e.id,item:e,onItemClick:de,class:y({selected:ee.value===l}),onMouseover:p((()=>ee.value=l),["stop"])},null,8,["item","class","onMouseover"])))),128)),h(c(i(A),{config:{title:" ",content:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,i(te)]])],512)]})),_:1}),c(i(I),{name:"group",tab:(null==(n=window.getLanguageByCode)?void 0:n.call(window,"10010.1.572"))||"群组","display-directive":"show"},{default:v((()=>{var l;return[e("div",T,[(s(!0),g(m,null,w(i(le),((e,l)=>(s(),u(i(E),{key:e.id,item:e,onItemClick:de,class:y({selected:ee.value===l}),onMouseover:p((()=>ee.value=l),["stop"])},null,8,["item","class","onMouseover"])))),128)),h(c(i(A),{config:{title:" ",content:(null==(l=window.getLanguageByCode)?void 0:l.call(window,"10010.1.81"))||"找不到相关的结果"},type:"5"},null,512),[[k,i(ae)]])])]})),_:1})]})),_:1},8,["value"])])),_:1},8,["style","show"]))}});export{V as default};
|
@@ -196,6 +196,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
196
196
|
currentTabKey: import("vue").ComputedRef<any>;
|
197
197
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
198
198
|
getOrgList: () => Promise<void>;
|
199
|
+
handleSearchInput: () => void;
|
199
200
|
setUserTotal: (tree: AnyObject[]) => void;
|
200
201
|
getDisabled: (id: string | number) => boolean;
|
201
202
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -213,6 +213,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
213
213
|
currentTabKey: import("vue").ComputedRef<any>;
|
214
214
|
showAllCheckbox: import("vue").ComputedRef<boolean>;
|
215
215
|
getOrgList: () => Promise<void>;
|
216
|
+
handleSearchInput: () => void;
|
216
217
|
setUserTotal: (tree: AnyObject[]) => void;
|
217
218
|
getDisabled: (id: string | number) => boolean;
|
218
219
|
handleClickCheckbox: (option: AnyObject) => Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
import{defineComponent as t,ref as e,reactive as o,computed as l,watch as n,openBlock as a,createBlock as i,unref as s,withCtx as r,createElementBlock as c,Fragment as u,withDirectives as d,createElementVNode as p,createVNode as v,createCommentVNode as m,toDisplayString as w,normalizeClass as g,vShow as f,createTextVNode as y,renderList as h}from"vue";import{NPopover as k,NAvatar as b,NButton as C,NIcon as D}from"naive-ui";import{ChatbubbleEllipses as I,EyeOffOutline as _,EyeOutline as j,Close as x}from"@vicons/ionicons5";import{useData as L}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as B}from"../constants/index.js";import{openSessionApi as z,getUserDetailApi as N}from"../api/index.js";import{isDoctorRole as E,getRoleName as P}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";const S={class:"person-profile-main"},$={class:"left"},G={class:"profile"},O={class:"profile__text"},R={class:"user__name"},T={class:"right"},q={class:"right__content"},A={class:"label"},F={class:"content"};var H=t({__name:"PersonProfile",setup(t){var H,J,K,M,Q,U,V,W;const{state:X,openSession:Y}=L(),Z=e(!1),tt=e(!1),et=o({}),ot=[{label:(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.115"))||"机构",value:"",key:"orgName"},{label:(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.116"))||"姓名",value:"",key:"name"},{label:(null==(K=window.getLanguageByCode)?void 0:K.call(window,"10010.1.117"))||"归属科室",value:"",key:"deptName"},{label:(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.118"))||"业务科室",value:"",key:"businessDeptNames"},{label:(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.119"))||"手机号",value:"",key:"phone"},{label:(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.120"))||"岗位",value:"",key:"post"},{label:(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.121"))||"工号",value:"",key:"jobId"},{label:(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.122"))||"性别",value:"",key:"orgName"}],lt=l((()=>(et.id&&ot.forEach((t=>{const{key:e}=t;t.value=et[e]})),ot)));async function nt(){var t;X.userDetail.show=!1;const e=X.userDetail.userId||(null==(t=X.userDetail.info)?void 0:t.id);let o=X.sessionList.find((t=>t.receiver===e));if(!o)try{o=await z({chatType:B.SINGLE,receiver:e,sender:X.userInfo.id})}catch(t){console.log("error :>> ",t)}o&&Y(o)}function at(t){const{key:e,value:o}=t;return"phone"!==e||tt.value?o:(o||"").replace(/(\d{3})\d{4}(\d{4})/,"$1****$2")}return n((()=>X.userDetail.show),(t=>{if(!t)return X.userDetail.userId="",void(X.userDetail.info=null);!async function(){const{userId:t,info:e}=X.userDetail;if(!t&&!e)return;let o={};t?o=await N({userId:t}):e&&(o=e),(null==o?void 0:o.id)?Object.assign(et,o):et.id=""}()})),(t,e)=>(a(),i(s(k),{raw:"",class:"person-profile-wrapper",show:s(X).userDetail.show,x:s(X).userDetail.position.x,y:s(X).userDetail.position.y,trigger:"manual","show-arrow":!1,"display-directive":"show",to:"body",shift:"",onClickoutside:e[3]||(e[3]=()=>s(X).userDetail.show=!1)},{default:r((()=>[et.id?(a(),c(u,{key:0},[d(p("div",S,[p("div",$,[p("div",G,[v(s(b),{src:et.avatar,bordered:"",round:"",size:100,onClickCapture:e[0]||(e[0]=t=>Z.value=!0)},null,8,["src"]),m(' <n-upload abstract accept="image/*" @change="onChange">\
|
1
|
+
import{defineComponent as t,ref as e,reactive as o,computed as l,watch as n,openBlock as a,createBlock as i,unref as s,withCtx as r,createElementBlock as c,Fragment as u,withDirectives as d,createElementVNode as p,createVNode as v,createCommentVNode as m,toDisplayString as w,normalizeClass as g,vShow as f,createTextVNode as y,renderList as h}from"vue";import{NPopover as k,NAvatar as b,NButton as C,NIcon as D}from"naive-ui";import{ChatbubbleEllipses as I,EyeOffOutline as _,EyeOutline as j,Close as x}from"@vicons/ionicons5";import{useData as L}from"../hooks/useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import{CHAT_TYPE as B}from"../constants/index.js";import{openSessionApi as z,getUserDetailApi as N}from"../api/index.js";import{isDoctorRole as E,getRoleName as P}from"../utils/index.js";import"lodash-es";import"trtc-sdk-v5";const S={class:"person-profile-main"},$={class:"left"},G={class:"profile"},O={class:"profile__text"},R={class:"user__name"},T={class:"right"},q={class:"right__content"},A={class:"label"},F={class:"content"};var H=t({__name:"PersonProfile",setup(t){var H,J,K,M,Q,U,V,W;const{state:X,openSession:Y}=L(),Z=e(!1),tt=e(!1),et=o({}),ot=[{label:(null==(H=window.getLanguageByCode)?void 0:H.call(window,"10010.1.115"))||"机构",value:"",key:"orgName"},{label:(null==(J=window.getLanguageByCode)?void 0:J.call(window,"10010.1.116"))||"姓名",value:"",key:"name"},{label:(null==(K=window.getLanguageByCode)?void 0:K.call(window,"10010.1.117"))||"归属科室",value:"",key:"deptName"},{label:(null==(M=window.getLanguageByCode)?void 0:M.call(window,"10010.1.118"))||"业务科室",value:"",key:"businessDeptNames"},{label:(null==(Q=window.getLanguageByCode)?void 0:Q.call(window,"10010.1.119"))||"手机号",value:"",key:"phone"},{label:(null==(U=window.getLanguageByCode)?void 0:U.call(window,"10010.1.120"))||"岗位",value:"",key:"post"},{label:(null==(V=window.getLanguageByCode)?void 0:V.call(window,"10010.1.121"))||"工号",value:"",key:"jobId"},{label:(null==(W=window.getLanguageByCode)?void 0:W.call(window,"10010.1.122"))||"性别",value:"",key:"orgName"}],lt=l((()=>(et.id&&ot.forEach((t=>{const{key:e}=t;t.value=et[e]})),ot)));async function nt(){var t;X.userDetail.show=!1;const e=X.userDetail.userId||(null==(t=X.userDetail.info)?void 0:t.id);let o=X.sessionList.find((t=>t.receiver===e));if(!o)try{o=await z({chatType:B.SINGLE,receiver:e,sender:X.userInfo.id})}catch(t){console.log("error :>> ",t)}o&&Y(o)}function at(t){const{key:e,value:o}=t;return"phone"!==e||tt.value?o:(o||"").replace(/(\d{3})\d{4}(\d{4})/,"$1****$2")}return n((()=>X.userDetail.show),(t=>{if(!t)return X.userDetail.userId="",void(X.userDetail.info=null);!async function(){const{userId:t,info:e}=X.userDetail;if(!t&&!e)return;let o={};t?o=await N({userId:t}):e&&(o=e),(null==o?void 0:o.id)?Object.assign(et,o):et.id=""}()})),(t,e)=>(a(),i(s(k),{raw:"",class:"person-profile-wrapper",show:s(X).userDetail.show,x:s(X).userDetail.position.x,y:s(X).userDetail.position.y,trigger:"manual","show-arrow":!1,"display-directive":"show",to:"body",shift:"",onClickoutside:e[3]||(e[3]=()=>s(X).userDetail.show=!1)},{default:r((()=>[et.id?(a(),c(u,{key:0},[d(p("div",S,[p("div",$,[p("div",G,[v(s(b),{src:et.avatar,bordered:"",round:"",size:100,onClickCapture:e[0]||(e[0]=t=>Z.value=!0)},null,8,["src"]),m(' <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",O,[p("h4",null,[p("label",R,w(et.name),1),d(p("label",{class:g(["iho-chatRole",s(E)(et.roleInfo)?"isDoctor":""])},w(s(P)(et.roleInfo)),3),[[f,s(P)(et.roleInfo)]])]),p("p",null,w(et.orgName),1)]),v(s(C),{strong:"",secondary:"",onClick:nt},{default:r((()=>[v(s(D),{size:"13",color:"#666666",component:s(I),style:{"margin-right":"6px"}},null,8,["component"]),y(" 发消息 ")])),_:1})])]),p("div",T,[p("div",q,[(a(!0),c(u,null,h(s(lt),((t,o)=>(a(),c("div",{class:"info-item",key:o},[p("span",A,w(t.label),1),p("div",F,[p("span",null,w(at(t)),1),"phone"===t.key&&at(t)?(a(),i(s(D),{key:0,size:"16",color:"#666666",component:tt.value?s(_):s(j),style:{"margin-left":"10px"},onClick:e[1]||(e[1]=t=>tt.value=!tt.value)},null,8,["component"])):m("v-if",!0)])])))),128))])])],512),[[f,!Z.value]]),d(p("div",{class:"large-avatar",onClick:e[2]||(e[2]=t=>Z.value=!1)},[v(s(C),{circle:"",size:"small",secondary:""},{icon:r((()=>[v(s(D),{size:24,component:s(x),color:"#fff"},null,8,["component"])])),_:1}),v(s(b),{size:310,round:"",src:et.avatar},null,8,["src"])],512),[[f,Z.value]])],64)):m("v-if",!0)])),_:1},8,["show","x","y"]))}});export{H as default};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Ref } from 'vue';
|
2
|
+
import { AnyFn, AnyObject } from '../../../../shared/types';
|
3
|
+
export declare function useSearchPatientList({ wrapperRef, keywordRef, before, after }: {
|
4
|
+
wrapperRef: Ref<HTMLElement>;
|
5
|
+
keywordRef: Ref<string>;
|
6
|
+
before?: AnyFn;
|
7
|
+
after?: AnyFn;
|
8
|
+
}): {
|
9
|
+
patientList: Ref<AnyObject[]>;
|
10
|
+
handlePatientInput: () => void;
|
11
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{ref as e}from"vue";import{isArray as o}from"lodash-es";import{listPatientApi as r}from"../api/index.js";import{useDebounceFn as t}from"@vueuse/core";import"../../../../shared/utils/index.js";import"naive-ui";import"date-fns";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{useScrollLoading as s}from"../../../../shared/hooks/useScrollLoading.js";import{useData as a}from"./useData.js";import"stompjs";import"sockjs-client/dist/sockjs.min.js";import"../utils/index.js";import"trtc-sdk-v5";function i({wrapperRef:i,keywordRef:n,before:p,after:u}){const m={page:0,hasMore:!0},{state:c}=a(),d=e([]),l=t((function(){Object.assign(m,{page:0,hasMore:!0}),f()}),300);async function f(){const e=(n.value||"").replace(/^\s+|\s+$/g,"");if(!e)return void(p?p():d.value=[]);if(!m.hasMore)return;m.page++,1==m.page&&(d.value=[]);const t=await r({orgId:c.orgId,keyword:e,page:m.page,pageSize:15});o(t.records)&&d.value.length<=+t.total&&(d.value=m.page>1?d.value.concat(t.records):t.records,null==u||u(),d.value.length>=+t.total&&(m.hasMore=!1))}return s(i,(()=>{f()})),{patientList:d,handlePatientInput:l}}export{i as useSearchPatientList};
|