2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{b5 as e,H as t,r as n,s as o,a6 as s,C as i,o as a,c as l,w as c,O as r,E as u,_ as v,y as d,u as C,a as m,z as h,N as p,b as f,t as g,F as k,q as w,W as I}from"./index-CH9-aFWw.js";import{z as T,i as M,a as x,J as y,K as S,o as E,b as _,c as P,I as b,W as D,R as U,E as L}from"./index.C_XD_DK3.js";import{i as N,f as O,I as R}from"./index.DzsMB11z.js";import"./adapter-vue.FAvEd_HK.js";import H from"./TUIKit-components-TUISearch-index.DuoOvP9h.js";import{D as j,A}from"./index.DHwyKTWe.js";import{C as V,a as z}from"./constant.BaYkq7sJ.js";import{O as F}from"./index.DmqBuDyZ.js";import{_ as Y}from"./_plugin-vue_export-helper.BCo6x5W8.js";import{g as W}from"./uni-app.es.DPi2kvld.js";import"./down-icon.DejhYoTd.js";import"./video-play.DNCOEYvb.js";import"./right-icon.-uAfiCH7.js";import"./enableSampleTaskStatus.DI0Y9wcO.js";const G=Y(e({__name:"index",props:{actionsMenuPosition:{},selectedConversation:{},selectedConversationDomRect:{}},emits:["closeConversationActionMenu"],setup(e,{emit:g}){var k,w;const I=g,E=e,_=(null==(k=t())?void 0:k.proxy)||t(),P=n(),b=n(!0),D=n(!1),U=T.getConversationModel((null==(w=E.selectedConversation)?void 0:w.conversationID)||""),L=n(E.actionsMenuPosition);o((()=>{i((()=>{var e,t;if(M)(null==(e=N)?void 0:e.createSelectorQuery().in(_)).select("#conversation-actions-menu").boundingClientRect((e=>{var t,n;e&&(e.bottom>(null==(n=null==(t=N)?void 0:t.getWindowInfo)?void 0:n.call(t).windowHeight)&&(L.value={...E.actionsMenuPosition,top:E.actionsMenuPosition.top-(E.actionsMenuPosition.conversationHeight||0)-e.height}),L.value.left+e.width+5>N.getWindowInfo().windowWidth&&(L.value.left=N.getWindowInfo().windowWidth-e.width-5)),b.value=!1})).exec();else{const e=null==(t=P.value)?void 0:t.getBoundingClientRect();x&&void 0!==E.actionsMenuPosition.left&&(L.value.left=E.actionsMenuPosition.left),e&&e.bottom>window.innerHeight&&(L.value.top=E.actionsMenuPosition.top-(E.actionsMenuPosition.conversationHeight||0)-e.height),b.value=!1}}))}));const O=s((()=>{var e,t;return(null==(e=E.selectedConversation)?void 0:e.type)===S.TYPES.CONV_C2C?"TUIConversation.删除后,将清空该聊天的消息记录":(null==(t=E.selectedConversation)?void 0:t.type)===S.TYPES.CONV_GROUP?"TUIConversation.删除后,将清空该群聊的消息记录":""}));const R=e=>{const{name:t}=e,n=U;if(t&&n&&n.conversationID){switch(t){case V.DELETE:null==n||n.deleteConversation();break;case V.ISPINNED:case V.DISPINNED:null==n||n.pinConversation();break;case V.MUTE:case V.NOTMUTE:null==n||n.muteConversation()}I("closeConversationActionMenu")}},H=e=>{e||I("closeConversationActionMenu"),D.value=e};return(e,t)=>(a(),l(F,{maskColor:"transparent",onOnOverlayClick:t[6]||(t[6]=()=>I("closeConversationActionMenu"))},{default:c((()=>[r("div",{id:"conversation-actions-menu",ref_key:"actionsMenuDomRef",ref:P,class:u([C(x)&&"actions-menu-pc","actions-menu",!C(b)&&"cancel-hidden"]),style:p({top:`${C(L).top}px`,left:`${C(L).left}px`})},[r("div",{class:u(["actions-menu-item"]),onClick:t[0]||(t[0]=v((e=>{D.value=!0}),["stop"]))},d(C(y).t("TUIConversation.删除会话")),1),E.selectedConversation&&E.selectedConversation.isPinned?h("",!0):(a(),m("div",{key:0,class:u(["actions-menu-item"]),onClick:t[1]||(t[1]=v((e=>R({name:C(V).ISPINNED})),["stop"]))},d(C(y).t("TUIConversation.置顶会话")),1)),E.selectedConversation&&E.selectedConversation.isPinned?(a(),m("div",{key:1,class:u(["actions-menu-item"]),onClick:t[2]||(t[2]=v((e=>R({name:C(V).DISPINNED})),["stop"]))},d(C(y).t("TUIConversation.取消置顶")),1)):h("",!0),E.selectedConversation&&E.selectedConversation.isMuted?h("",!0):(a(),m("div",{key:2,class:u(["actions-menu-item"]),onClick:t[3]||(t[3]=v((e=>R({name:C(V).MUTE})),["stop"]))},d(C(y).t("TUIConversation.消息免打扰")),1)),E.selectedConversation&&E.selectedConversation.isMuted?(a(),m("div",{key:3,class:u(["actions-menu-item"]),onClick:t[4]||(t[4]=v((e=>R({name:C(V).NOTMUTE})),["stop"]))},d(C(y).t("TUIConversation.取消免打扰")),1)):h("",!0)],6),f(j,{show:C(D),center:!0,isHeaderShow:C(x),onSubmit:t[5]||(t[5]=e=>R({name:C(V).DELETE})),"onUpdate:show":H},{default:c((()=>[r("p",{class:"delDialog-title"},d(C(y).t(C(O))),1)])),_:1},8,["show","isHeaderShow"])])),_:1}))}}),[["__scopeId","data-v-bded2c14"]]),B=Y(e({__name:"index",emits:["handleSwitchConversation","getPassingRef"],setup(e,{expose:t,emit:s}){const i=s,v=n(),p=n(),U=n(),L=n(!1),H=n([]),j=n(),V=n(),z=n({top:0,left:void 0,conversationHeight:void 0}),F=n(!1),Y=n();let W=null;o((()=>{T.watch(E.CONV,{currentConversationID:Q,conversationList:K,currentConversation:q}),T.watch(E.USER,{displayOnlineStatus:J,userStatusList:ee}),M||!O||x||function(){if(!V.value)return;R({element:V.value,onLongPress:(e,t)=>{const n=Array.from(V.value.children).indexOf(t);Z(e,H.value[n],n)},options:{eventDelegation:{subSelector:".tui-conversation-content"}}})}()})),g((()=>{T.unwatch(E.CONV,{currentConversationID:Q,conversationList:K,currentConversation:q}),T.unwatch(E.USER,{displayOnlineStatus:J,userStatusList:ee})}));const B=e=>F.value&&e.type===S.TYPES.CONV_C2C,Z=(e,t,n,o)=>{o&&(e.preventDefault(),M)||(v.value=t,W=Date.now(),$(e,n))},X=()=>{W&&Date.now()-W>300&&(v.value=void 0,L.value=!1)},$=(e,t)=>{var n,o;if(M){void 0===j.value&&i("getPassingRef",j);(null==(n=N)?void 0:n.createSelectorQuery().in(j.value)).select(`#convlistitem-${t}`).boundingClientRect((t=>{t&&(z.value={top:t.bottom+(_?44:0),left:e.touches[0].pageX,conversationHeight:t.height},L.value=!0)})).exec()}else{const t=(null==(o=e.currentTarget||e.target)?void 0:o.getBoundingClientRect())||{};t&&(z.value={top:t.bottom,left:x?e.clientX:void 0,conversationHeight:t.height}),L.value=!0}};function q(e){v.value=e}function K(e){H.value=e}function Q(e){p.value=e}function J(e){F.value=e}function ee(e){0!==e.size&&(Y.value=[...e.entries()].reduce(((e,[t,n])=>(e[t]=n,e)),{}))}return t({closeChildren:X}),(e,t)=>{const n=I;return a(),m("div",{ref_key:"conversationListInnerDomRef",ref:V,class:"tui-conversation-list"},[C(L)?(a(),l(G,{key:0,selectedConversation:C(v),actionsMenuPosition:C(z),selectedConversationDomRect:C(U),onCloseConversationActionMenu:X},null,8,["selectedConversation","actionsMenuPosition","selectedConversationDomRect"])):h("",!0),(a(!0),m(k,null,w(C(H),((e,t)=>(a(),m("div",{id:`convlistitem-${t}`,key:t,class:u(["tui-conversation-content",C(P)&&"tui-conversation-content-h5 disable-select"])},[r("div",{class:u([C(x)&&"isPC","tui-conversation-item",C(p)===e.conversationID&&"tui-conversation-item-selected",e.isPinned&&"tui-conversation-item-pinned"]),onClick:t=>{return n=e.conversationID,i("handleSwitchConversation",n),void D.switchConversation(n);var n},onLongpress:n=>Z(n,e,t),onContextmenu:n=>Z(n,e,t,!0)},[r("aside",{class:"left"},[f(A,{useSkeletonAnimation:"",url:e.getAvatar(),size:"30px"},null,8,["url"]),C(Y)&&B(e)?(a(),m("div",{key:0,class:u(["online-status",Object.keys(C(Y)).length>0&&Object.keys(C(Y)).includes(e.userProfile.userID)&&1===C(Y)[e.userProfile.userID].statusType?"online-status-online":"online-status-offline"])},null,2)):h("",!0),e.unreadCount>0&&!e.isMuted?(a(),m("span",{key:1,class:"num"},d(e.unreadCount>99?"99+":e.unreadCount),1)):h("",!0),e.unreadCount>0&&e.isMuted?(a(),m("span",{key:2,class:"num-notify"})):h("",!0)]),r("div",{class:"content"},[r("div",{class:"content-header"},[f(n,{class:"content-header-label"},{default:c((()=>[r("p",{class:"name"},d(e.getShowName()),1)])),_:2},1024),r("div",{class:"middle-box"},[e.draftText&&e.conversationID!==C(p)?(a(),m("span",{key:0,class:"middle-box-draft"},d(C(y).t("TUIChat.[草稿]")),1)):"GROUP"===e.type&&e.groupAtInfoList&&e.groupAtInfoList.length>0?(a(),m("span",{key:1,class:"middle-box-at"},d(e.getGroupAtInfo()),1)):h("",!0),r("div",{class:"middle-box-content"},d(e.getLastMessage("text")),1)])]),r("div",{class:"content-footer"},[r("span",{class:"time"},d(e.getLastMessage("time")),1),e.isMuted?(a(),l(b,{key:0,file:C("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%20class='design-iconfont'%3e%3cg%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20d='M4.13744611,6.61713753%20L20.551,23%20L0,23%20L0,21%20L3,21%20L3,11%20C3,9.40883362%203.41291862,7.91410954%204.13744611,6.61713753%20Z%20M21.481,21%20L24,21%20L24,23%20L23.485,23%20L21.481,21%20Z%20M12,2%20C16.9705627,2%2021,6.02943725%2021,11%20L21,20.52%20L5.36684476,4.91705738%20C7.01203082,3.12402075%209.37475086,2%2012,2%20Z'%20fill='%23CCC'%20transform='translate(4%203)'/%3e%3cpath%20fill='%23CCC'%20fill-rule='nonzero'%20d='M13%200L13%204%2011%204%2011%200z'%20transform='translate(4%203)'/%3e%3cpath%20stroke='%23CCC'%20d='M8.5%2024.5H15.5V25.5H8.5z'%20transform='translate(4%203)'/%3e%3cpath%20stroke='%23CCC'%20stroke-width='2'%20transform='matrix(-1%200%200%201%2031.089472%203)'%20d='M25.4499982%200.1546001L1.63947409%2023.8855564'/%3e%3c/g%3e%3c/svg%3e")},null,8,["file"])):h("",!0)])])],42,["onClick","onLongpress","onContextmenu"])],10,["id"])))),128))],512)}}}),[["__scopeId","data-v-55e2625d"]]);class Z{static getInstance(){return Z.instance||(Z.instance=new Z),Z.instance}getMenu(){const e=this.generateMenuList();return!x&&e.length>0?[{text:y.t("TUIConversation.发起会话"),data:{name:"all",children:e}}]:e}generateMenuList(){return[{icon:"/assets/icon-c2c-BG5qosF5.svg",text:y.t("TUIConversation.发起单聊"),data:{name:z.TYPEC2C},listener:{onClicked:this.createConversation.bind(this)}},{icon:"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%3e%3ccircle%20r='2.61111'%20transform='matrix(1%200%200%20-1%208.55545%203.88889)'%20stroke='%234C5059'%3e%3c/circle%3e%3ccircle%20r='2.61111'%20transform='matrix(1%200%200%20-1%204.66678%203.88889)'%20fill='%23F4F5F9'%20stroke='%234C5059'%3e%3c/circle%3e%3cpath%20d='M5.16675%2011.7778C5.16675%209.84484%206.73375%208.27783%208.66675%208.27783H10.0001C11.9331%208.27783%2013.5001%209.84484%2013.5001%2011.7778V12.7223H5.16675V11.7778Z'%20stroke='%234C5059'%3e%3c/path%3e%3cpath%20d='M0.5%2011.7778C0.5%209.84484%202.067%208.27783%204%208.27783H5.33333C7.26633%208.27783%208.83333%209.84484%208.83333%2011.7778V12.7223H0.5V11.7778Z'%20fill='%23F4F5F9'%20stroke='%234C5059'%3e%3c/path%3e%3c/svg%3e",text:y.t("TUIConversation.发起群聊"),data:{name:z.TYPEGROUP},listener:{onClicked:this.createConversation.bind(this)}}]}createConversation(e){U.callService({serviceName:L.TUIConversation.SERVICE.NAME,method:L.TUIConversation.SERVICE.METHOD.CREATE_CONVERSATION,params:e})}}const X=Y(e({__name:"index",setup(e,{expose:t}){const i=n([]),c=n(),u=s((()=>Z.getInstance().getMenu()));o((()=>{i.value=[]}));const p=e=>{const{data:{children:t},listener:n={onClicked:()=>{}}}=e;t?i.value=i.value.length>0?[]:t:(n.onClicked(e),f())},f=()=>{i.value=[]};return t({closeChildren:f}),(e,t)=>(a(),m("div",{ref:C(c),class:"tui-conversation-header"},[C(u).length>0?(a(),m("ul",{key:0,class:"list"},[(a(!0),m(k,null,w(C(u),((e,t)=>(a(),m("li",{key:t,class:"list-item"},[r("main",{class:"tui-conversation-header-item",onClick:v((t=>p(e)),["stop"])},[e.icon&&!e.data.children?(a(),l(b,{key:0,class:"tui-conversation-header-item-icon",file:e.icon},null,8,["file"])):(a(),m("i",{key:1,class:"plus"})),r("h1",{class:"tui-conversation-header-item-title"},d(e.text),1)],8,["onClick"])])))),128))])):h("",!0),C(i).length>0?(a(),m("ul",{key:1,class:"tui-conversation-header-children list"},[(a(!0),m(k,null,w(C(i),((e,t)=>(a(),m("li",{key:t,class:"list-item"},[r("main",{class:"tui-conversation-header-item",onClick:t=>p(e)},[e.icon?(a(),l(b,{key:0,class:"tui-conversation-header-item-icon",file:e.icon},null,8,["file"])):h("",!0),r("h1",{class:"tui-conversation-header-item-title"},d(e.text),1)],8,["onClick"])])))),128))])):h("",!0)],512))}}),[["__scopeId","data-v-4401d0ac"]]),$=Y(e({__name:"index",setup(e){const t=n(!1);return T.watch(E.USER,{netStateChange:e=>{t.value=e===S.TYPES.NET_STATE_DISCONNECTED}}),(e,n)=>C(t)?(a(),m("div",{key:0,class:"network"},[r("i",{class:"icon icon-error"},"!"),r("p",{class:"network-content"},d(C(y).t("TUIConversation.网络异常,请您检查网络设置")),1)])):h("",!0)}}),[["__scopeId","data-v-c92e96e1"]]),q=Y(e({__name:"index",emits:["handleSwitchConversation"],setup(e,{emit:t}){const o=t,s=n(0),i=n(),c=n(),r=n(0),u=n(0),v=n(!0);T.watch(E.CONV,{totalUnreadCount:e=>{s.value=e}}),T.watch(E.CUSTOM,{isShowConversationHeader:e=>{v.value=!1!==e}});const d=e=>{var t;null==(t=N)||t.navigateTo({url:"/TUIKit/components/TUIChat/index"}),o("handleSwitchConversation",e)},p=()=>{var e,t;null==(e=null==i?void 0:i.value)||e.closeChildren(),null==(t=null==c?void 0:c.value)||t.closeChildren()},g=()=>{p()};W(p);const k=e=>{r.value=e.changedTouches[0].clientX,u.value=e.changedTouches[0].clientY},w=e=>{const t=e.changedTouches[0].clientX,n=e.changedTouches[0].clientY;let o="";t-r.value>50&&Math.abs(n-u.value)<50?o="right":t-r.value<-50&&Math.abs(n-u.value)<50&&(o="left"),n-u.value>50&&Math.abs(t-r.value)<50?o="down":n-u.value<-50&&Math.abs(t-r.value)<50&&(o="up"),"down"!==o&&"up"!==o||p()},I=e=>{e.value=c.value};return(e,t)=>(a(),m("div",{class:"tui-conversation",onClick:g,onTouchstart:k,onTouchend:w},[f(H,{searchType:"global"}),C(v)?(a(),l(X,{key:0,ref_key:"headerRef",ref:i},null,512)):h("",!0),f($),f(B,{ref_key:"conversationListDomRef",ref:c,class:"tui-conversation-list",onHandleSwitchConversation:d,onGetPassingRef:I},null,512)],32))}}),[["__scopeId","data-v-eb168bf4"]]);export{q as default};
|