You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
paopao-ce/web/dist/assets/Messages-NsdrNaPp.js

1 line
11 KiB

import{o as e}from"./rolldown-runtime-Bhmf7a9N.js";import{A as t,Bt as n,C as r,D as i,H as a,It as o,J as s,K as c,M as l,O as u,Q as d,S as f,W as p,b as m,h,ht as g,lt as _,p as v,w as y,x as b}from"./@css-render-YsNuQTaE.js";import{r as x}from"./pinia-TbaIYBWH.js";import{i as S,r as C}from"./vue-router-Dw9lfhBK.js";import{$ as w,G as T,P as E,R as D,U as O,W as ee,at as k,b as A,et as j,f as te,it as M,ot as N,p as P,s as F,tt as I,x as L}from"./naive-ui-Dv03sO69.js";import"./@juggle-BrKhuOcS.js";import{a as R,c as z,l as B,r as V}from"./sidebar-DRayLsOo.js";import{A as ne,D as H,Q as U,R as W,X as G,Y as K,Z as q,_ as J,at as re,et as Y,k as X,o as ie,st as Z,x as ae}from"./@vicons-CZeOmejd.js";import"./moment-D_9q9veS.js";import{i as oe}from"./index-C6IeTwfo.js";import{t as Q}from"./main-nav-DUyzQZis.js";import{t as se}from"./whisper-C0GBvvBh.js";import"./@vue-cLJXtEPP.js";import{t as $}from"./v3-infinite-loading-Dj1QGmV8.js";var ce={class:`sender-wrap`},le={key:0,class:`nickname`},ue={key:0,class:`username`},de={key:1,class:`nickname`},fe={key:0,class:`username`},pe={key:2,class:`nickname`},me={class:`timestamp`},he={class:`timestamp-txt`},ge={key:0,class:`brief-content`},_e={key:1,class:`whisper-content-wrap`},ve={key:2,class:`requesting-friend-wrap`},ye={key:2,class:`status-info`},be={key:3,class:`status-info`},xe=`https://assets.paopao.info/public/avatar/default/admin.png`,Se=V(t({__name:`message-item`,props:{message:{}},emits:[`send-whisper`,`reload`],setup(e,{emit:t}){let a=S(),c=B(),h=z(),{desktopModelShow:_}=x(c),{userInfo:C}=x(h),E=O(),D=e,A=e=>()=>l(T,null,{default:()=>l(e)}),te=m(()=>{let e=D.message.type==4&&D.message.sender_user_id==C.value.id?D.message.receiver_user:D.message.sender_user,t=[{label:`私信 @`+e.username,key:`whisper`,icon:A(X)}];return C.value.id!=e.id&&(e.is_following?t.push({label:`取消关注 @`+e.username,key:`unfollow`,icon:A(J)}):t.push({label:`关注 @`+e.username,key:`follow`,icon:A(re)})),t}),N=t,P=e=>{let t=e.type==4&&e.sender_user_id==C.value.id?e.receiver_user:e.sender_user;E.success({title:`提示`,content:`确定`+(t.is_following?`取消关注 @`:`关注 @`)+t.username+` 吗?`,positiveText:`确定`,negativeText:`取消`,onPositiveClick:()=>{t.is_following?R.v1.user.post.unfollow({user_id:t.id}).then(e=>{window.$message.success(`操作成功`),t.is_following=!1,setTimeout(()=>{N(`reload`)},50)}).catch(e=>{}):R.v1.user.post.follow({user_id:t.id}).then(e=>{window.$message.success(`关注成功`),t.is_following=!0,setTimeout(()=>{N(`reload`)},50)}).catch(e=>{})}})},L=e=>{switch(e){case`whisper`:let e=D.message;e.type!=99&&N(`send-whisper`,e.type==4&&e.sender_user_id==C.value.id?e.receiver_user:e.sender_user);break;case`follow`:case`unfollow`:P(D.message);break;default:break}},V=m(()=>D.message.type!==4||D.message.sender_user_id!==C.value.id),ne=m(()=>D.message.type==4&&D.message.receiver_user_id==C.value.id),H=m(()=>D.message.type==4&&D.message.sender_user_id==C.value.id),W=e=>{Q(e),(e.type===1||e.type===2||e.type===3)&&(e.post&&e.post.id>0?a.push({name:`post`,query:{id:e.post_id}}):window.$message.error(`该动态已被删除`))},Y=e=>{Q(e),R.v1.friend.post.add({user_id:e.sender_user_id}).then(t=>{e.reply_id=2,window.$message.success(`已同意添加好友`)}).catch(e=>{console.log(e)})},Z=e=>{Q(e),R.v1.friend.post.reject({user_id:e.sender_user_id}).then(t=>{e.reply_id=3,window.$message.success(`已拒绝添加好友`)}).catch(e=>{console.log(e)})},Q=e=>{D.message.receiver_user_id==C.value.id&&e.is_read===0&&R.v1.user.message.post.read({id:e.id}).then(t=>{e.is_read=1}).catch(e=>{console.log(e)})};return(t,a)=>{let c=I,l=s(`router-link`),m=k,h=j,x=w,S=ee,E=M,D=F;return p(),y(`div`,{class:o([`message-item`,{unread:V.value&&e.message.is_read===0}]),onClick:a[5]||=t=>Q(e.message)},[u(D,{"content-indented":``},{avatar:d(()=>[u(c,{round:``,size:30,src:e.message.type==4&&e.message.sender_user_id==g(C).id?e.message.receiver_user.avatar:e.message.sender_user.id>0?e.message.sender_user.avatar:xe},null,8,[`src`])]),header:d(()=>[b(`div`,ce,[e.message.type!=4&&e.message.sender_user.id>0||ne.value?(p(),y(`span`,le,[u(l,{onClick:a[0]||=v(()=>{},[`stop`]),class:`username-link`,to:{name:`user`,query:{s:e.message.sender_user.username}}},{default:d(()=>[i(n(e.message.sender_user.nickname),1)]),_:1},8,[`to`]),g(_)?(p(),y(`span`,ue,` @`+n(e.message.sender_user.username),1)):r(``,!0)])):H.value?(p(),y(`span`,de,[u(l,{onClick:a[1]||=v(()=>{},[`stop`]),class:`username-link`,to:{name:`user`,query:{s:e.message.receiver_user.username}}},{default:d(()=>[i(n(e.message.receiver_user.nickname),1)]),_:1},8,[`to`]),g(_)?(p(),y(`span`,fe,` @`+n(e.message.receiver_user.username),1)):r(``,!0)])):(p(),y(`span`,pe,` 系统 `)),H.value?(p(),f(m,{key:3,class:`top-tag`,type:`info`,size:`small`,round:``},{icon:d(()=>[u(g(T),{component:g(U)},null,8,[`component`])]),default:d(()=>[a[6]||=i(` 私信已发送 `,-1)]),_:1})):r(``,!0),e.message.type==4&&e.message.receiver_user_id==g(C).id?(p(),f(m,{key:4,class:`top-tag`,type:`warning`,size:`small`,round:``},{icon:d(()=>[u(g(T),{component:g(U)},null,8,[`component`])]),default:d(()=>[a[7]||=i(` 私信已接收 `,-1)]),_:1})):r(``,!0)])]),"header-extra":d(()=>[b(`span`,me,[V.value&&e.message.is_read===0?(p(),f(h,{key:0,dot:``,processing:``})):r(``,!0),b(`span`,he,n(g(oe)(e.message.created_on)),1),u(S,{placement:`bottom-end`,trigger:`click`,size:`small`,options:te.value,onSelect:L},{default:d(()=>[u(x,{quaternary:``,circle:``},{icon:d(()=>[u(g(T),null,{default:d(()=>[u(g(ie))]),_:1})]),_:1})]),_:1},8,[`options`])])]),description:d(()=>[u(E,{"show-icon":!1,class:`brief-wrap`,type:!V.value||e.message.is_read>0?`default`:`success`},{default:d(()=>[e.message.type==4?r(``,!0):(p(),y(`div`,ge,[i(n(e.message.brief)+` `,1),e.message.type===1||e.message.type===2||e.message.type===3?(p(),y(`span`,{key:0,onClick:a[2]||=v(t=>W(e.message),[`stop`]),class:`hash-link view-link`},[u(g(T),null,{default:d(()=>[u(g(ae))]),_:1}),a[8]||=i(` 查看详情 `,-1)])):r(``,!0)])),e.message.type===4?(p(),y(`div`,_e,n(e.message.content),1)):r(``,!0),e.message.type===5?(p(),y(`div`,ve,[i(n(e.message.content)+` `,1),e.message.reply_id===1?(p(),y(`span`,{key:0,onClick:a[3]||=v(t=>Y(e.message),[`stop`]),class:`hash-link view-link`},[u(g(T),null,{default:d(()=>[u(g(G))]),_:1}),a[9]||=i(` 同意 `,-1)])):r(``,!0),e.message.reply_id===1?(p(),y(`span`,{key:1,onClick:a[4]||=v(t=>Z(e.message),[`stop`]),class:`hash-link view-link`},[u(g(T),null,{default:d(()=>[u(g(K))]),_:1}),a[10]||=i(` 拒绝 `,-1)])):r(``,!0),e.message.reply_id===2?(p(),y(`span`,ye,[u(g(T),null,{default:d(()=>[u(g(q))]),_:1}),a[11]||=i(` 已同意 `,-1)])):r(``,!0),e.message.reply_id===3?(p(),y(`span`,be,[u(g(T),null,{default:d(()=>[u(g(K))]),_:1}),a[12]||=i(` 已拒绝 `,-1)])):r(``,!0)])):r(``,!0)]),_:1},8,[`type`])]),_:1})],2)}}}),[[`__scopeId`,`data-v-5471364e`]]),Ce={class:`content`},we=V(t({__name:`message-skeleton`,props:{num:{default:1}},setup(e){return(t,n)=>{let r=P;return p(!0),y(h,null,c(Array(e.num),e=>(p(),y(`div`,{class:`skeleton-item`,key:e},[b(`div`,Ce,[u(r,{text:``,repeat:2}),u(r,{text:``,style:{width:`60%`}})])]))),128)}}}),[[`__scopeId`,`data-v-e6390d54`]]),Te=e($()),Ee={class:`title title-action`},De={class:`title title-filter`},Oe={key:0,class:`skeleton-wrap`},ke={key:1},Ae={key:0,class:`empty-wrap`},je={key:1},Me={class:`load-more-wrap`},Ne={class:`load-more-spinner`},Pe=V(t({__name:`Messages`,setup(e){let t=B();z();let{unreadMsgCount:o}=x(t),s=C(),v=_(!1),S=_(!1),O=_(+s.query.p||1),k=_(20),j=_(0),M=_([]),P=_(`所有消息`),F=_(`all`),I=_(!1),V=_({id:0,avatar:``,username:``,nickname:``,is_admin:!1,is_friend:!0,is_following:!1,created_on:0,follows:0,followings:0,status:1}),U=()=>{S.value=!1,O.value=1,j.value=0,M.value=[]},G=e=>()=>l(T,null,{default:()=>l(e)}),K=m(()=>{let e;switch(P.value){case`所有消息`:e=[{label:`系统消息`,key:`system`,icon:G(Z)},{label:`我的私信`,key:`whisper`,icon:G(X)},{label:`好友申请`,key:`requesting`,icon:G(H)},{label:`未读消息`,key:`unread`,icon:G(Y)}];break;case`系统消息`:e=[{label:`所有消息`,key:`all`,icon:G(W)},{label:`我的私信`,key:`whisper`,icon:G(X)},{label:`好友申请`,key:`requesting`,icon:G(H)},{label:`未读消息`,key:`unread`,icon:G(Y)}];break;case`我的私信`:e=[{label:`所有消息`,key:`all`,icon:G(W)},{label:`系统消息`,key:`system`,icon:G(Z)},{label:`好友申请`,key:`requesting`,icon:G(H)},{label:`未读消息`,key:`unread`,icon:G(Y)}];break;case`好友申请`:e=[{label:`所有消息`,key:`all`,icon:G(W)},{label:`系统消息`,key:`system`,icon:G(Z)},{label:`我的私信`,key:`whisper`,icon:G(X)},{label:`未读消息`,key:`unread`,icon:G(Y)}];break;case`未读消息`:e=[{label:`所有消息`,key:`all`,icon:G(W)},{label:`系统消息`,key:`system`,icon:G(Z)},{label:`我的私信`,key:`whisper`,icon:G(X)},{label:`好友申请`,key:`requesting`,icon:G(H)}];break;default:e=[];break}return e}),q=e=>{switch(e){case`all`:P.value=`所有消息`;break;case`system`:P.value=`系统消息`;break;case`whisper`:P.value=`我的私信`;break;case`requesting`:P.value=`好友申请`;break;case`unread`:P.value=`未读消息`;break}F.value=e,U(),$()},J=()=>{q(`unread`)},re=()=>{o.value>0&&M.value.length>0&&R.v1.user.message.post.readall().then(e=>{if(F.value!=`unread`)for(let e in M.value)M.value[e].is_read=1;else M.value=[];t.updateUnreadMsgCount(0)}).catch(e=>{console.log(e)})},ie=e=>{V.value=e,I.value=!0},ae=()=>{I.value=!1},oe=()=>{U(),$()},$=()=>{v.value=!0,R.v1.user.get.messages({style:F.value,page:O.value,page_size:k.value}).then(e=>{v.value=!1,e.list.length===0&&(S.value=!0),O.value>1?M.value=M.value.concat(e.list):(M.value=e.list,window.scrollTo(0,0)),j.value=Math.ceil(e.pager.total_rows/k.value)}).catch(e=>{v.value=!1,O.value>1&&O.value--})},ce=()=>{O.value<j.value||j.value==0?(S.value=!1,O.value++,$()):S.value=!0};return a(()=>{$()}),(e,t)=>{let a=Q,s=se,l=w,m=D,_=ee,x=E,C=we,O=N,F=Se,R=A,z=L,B=te;return p(),y(`div`,null,[u(a,{title:`消息`}),u(z,{class:`main-content-wrap messages-wrap`,bordered:``},{default:d(()=>[u(s,{show:I.value,user:V.value,onSuccess:ae},null,8,[`show`,`user`]),u(x,{justify:`space-between`},{default:d(()=>[b(`div`,Ee,[u(l,{text:``,size:`small`,focusable:!1,onClick:J},{icon:d(()=>[u(g(T),null,{default:d(()=>[u(g(Y))]),_:1})]),default:d(()=>[i(` `+n(g(o))+` 条未读 `,1)]),_:1}),u(m,{vertical:``}),u(l,{text:``,size:`small`,focusable:!1,onClick:re},{default:d(()=>[...t[0]||=[i(`全标已读`,-1)]]),_:1})]),b(`div`,De,[u(_,{placement:`bottom-end`,trigger:`click`,size:`small`,options:K.value,onSelect:q},{default:d(()=>[u(l,{text:``},{icon:d(()=>[u(g(T),null,{default:d(()=>[u(g(ne))]),_:1})]),default:d(()=>[i(` `+n(P.value),1)]),_:1})]),_:1},8,[`options`])])]),_:1}),v.value&&M.value.length===0?(p(),y(`div`,Oe,[u(C,{num:k.value},null,8,[`num`])])):(p(),y(`div`,ke,[M.value.length===0?(p(),y(`div`,Ae,[u(O,{size:`large`,description:`暂无数据`})])):(p(),y(`div`,je,[(p(!0),y(h,null,c(M.value,e=>(p(),f(R,{key:e.id},{default:d(()=>[u(F,{message:e,onSendWhisper:ie,onReload:oe},null,8,[`message`])]),_:2},1024))),128))]))]))]),_:1}),j.value>0?(p(),f(x,{key:0,justify:`center`},{default:d(()=>[u(g(Te.default),{class:`load-more`,slots:{complete:`没有更多消息了`,error:`加载出错`},onInfinite:ce},{spinner:d(()=>[b(`div`,Me,[S.value?r(``,!0):(p(),f(B,{key:0,size:14})),b(`span`,Ne,n(S.value?`没有更多消息了`:`加载更多`),1)])]),_:1})]),_:1})):r(``,!0)])}}}),[[`__scopeId`,`data-v-9de52d01`]]);export{Pe as default};