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-B1j4N-Nn.js

1 line
11 KiB

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