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/Post-ZE0DIKFi.js

1 line
29 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,J as o,K as s,M as c,O as l,Q as u,S as d,T as f,W as p,X as m,b as h,h as g,ht as _,lt as v,p as y,w as b,x}from"./@css-render-YsNuQTaE.js";import{r as S}from"./pinia-TbaIYBWH.js";import{i as C,r as w}from"./vue-router-Dw9lfhBK.js";import{$ as T,G as E,H as D,K as O,P as k,R as A,U as j,W as M,at as N,b as P,c as F,f as I,g as L,h as R,i as ee,l as z,n as B,nt as V,ot as H,q as U,r as W,rt as G,s as K,tt as te,x as ne,y as re}from"./naive-ui-Dv03sO69.js";import"./@juggle-BrKhuOcS.js";import{a as ie,c as q,l as ae,r as J,s as oe}from"./sidebar-DRayLsOo.js";import{E as se,F as ce,G as le,H as ue,P as de,U as fe,V as pe,W as me,_ as he,at as ge,b as _e,d as Y,h as X,i as ve,it as ye,k as be,m as xe,n as Se,o as Ce,r as we,rt as Te,t as Ee,tt as De,w as Oe,y as ke,z as Ae}from"./@vicons-CZeOmejd.js";import"./moment-D_9q9veS.js";import{A as je,C as Me,D as Ne,M as Pe,O as Fe,T as Ie,a as Le,b as Re,c as ze,g as Be,h as Ve,k as He,l as Ue,m as We,o as Ge,p as Ke,r as qe,u as Je,w as Ye,x as Xe,y as Ze}from"./index-C6IeTwfo.js";import{t as Qe}from"./main-nav-DUyzQZis.js";import{t as $e}from"./post-skeleton-BwZD6JWX.js";import{t as et}from"./whisper-C0GBvvBh.js";import{a as tt,i as nt,o as rt,r as it,t as at}from"./content-DkpsrrTA.js";import{t as ot}from"./copy-to-clipboard-qdVIK2zo.js";import"./@vue-cLJXtEPP.js";import{t as st}from"./v3-infinite-loading-Dj1QGmV8.js";import{t as ct}from"./lodash-DE5aFZbv.js";import{n as Z,r as Q}from"./IEnum-BmZP-Ozh.js";var lt={class:`reply-item`},ut={class:`header-wrap`},dt={class:`username`},ft={class:`reply-name`},pt={class:`timestamp`},mt={class:`base-wrap`},ht={class:`content`},gt={class:`reply-switch`},_t={class:`time-item`},vt={class:`actions`},yt={class:`upvote-count`},bt={class:`upvote-count`},xt={key:2,class:`action-item`},St=J(t({__name:`reply-item`,props:{tweetId:{},reply:{}},emits:[`focusReply`,`reload`],setup(e,{emit:t}){let a=e;ae();let{userInfo:s,userLogined:c}=S(q()),f=t,m=v(a.reply.is_thumbs_up==Q.YES),h=v(a.reply.is_thumbs_down==Q.YES),g=v(a.reply.thumbs_up_count),C=()=>{je({tweet_id:a.tweetId,comment_id:a.reply.comment_id,reply_id:a.reply.id}).then(e=>{m.value=!m.value,m.value?(g.value++,h.value=!1):g.value--}).catch(e=>{console.log(e)})},w=()=>{Fe({tweet_id:a.tweetId,comment_id:a.reply.comment_id,reply_id:a.reply.id}).then(e=>{h.value=!h.value,h.value&&(m.value&&=(g.value--,!1))}).catch(e=>{console.log(e)})},D=()=>{f(`focusReply`,a.reply)},k=()=>{Ue({id:a.reply.id}).then(e=>{window.$message.success(`删除成功`),setTimeout(()=>{f(`reload`)},50)}).catch(e=>{console.log(e)})};return(e,t)=>{let f=o(`router-link`),v=E,S=T,A=L,j=O;return p(),b(`div`,lt,[x(`div`,ut,[x(`div`,dt,[l(f,{class:`user-link`,to:{name:`user`,query:{s:a.reply.user.username}}},{default:u(()=>[i(n(a.reply.user.username),1)]),_:1},8,[`to`]),x(`span`,ft,n(a.reply.at_user_id>0?`回复`:`:`),1),a.reply.at_user_id>0?(p(),d(f,{key:0,class:`user-link`,to:{name:`user`,query:{s:a.reply.at_user.username}}},{default:u(()=>[i(n(a.reply.at_user.username),1)]),_:1},8,[`to`])):r(``,!0)]),x(`div`,pt,[i(n(a.reply.ip_loc)+` `,1),_(s).is_admin||_(s).id===a.reply.user.id?(p(),d(A,{key:0,"negative-text":`取消`,"positive-text":`确认`,onPositiveClick:k},{trigger:u(()=>[l(S,{quaternary:``,circle:``,size:`tiny`,class:`del-btn`},{icon:u(()=>[l(v,null,{default:u(()=>[l(_(Y))]),_:1})]),_:1})]),default:u(()=>[t[1]||=i(` 是否删除这条回复? `,-1)]),_:1})):r(``,!0)])]),x(`div`,mt,[x(`div`,ht,[l(j,{"expand-trigger":`click`,"line-clamp":`5`,tooltip:!1},{default:u(()=>[i(n(a.reply.content),1)]),_:1})]),x(`div`,gt,[x(`span`,_t,n(_(qe)(a.reply.created_on)),1),x(`div`,vt,[_(c)?r(``,!0):(p(),b(`div`,{key:0,class:`action-item`,onClick:t[0]||=y(()=>{},[`stop`])},[l(v,{size:`medium`},{default:u(()=>[l(_(Se))]),_:1}),x(`span`,yt,n(g.value),1)])),_(c)?(p(),b(`div`,{key:1,class:`action-item hover`,onClick:y(C,[`stop`])},[l(v,{size:`medium`},{default:u(()=>[m.value?r(``,!0):(p(),d(_(Se),{key:0})),m.value?(p(),d(_(Ee),{key:1,class:`show`})):r(``,!0)]),_:1}),x(`span`,bt,n(g.value>0?g.value:``),1)])):r(``,!0),_(c)?r(``,!0):(p(),b(`div`,xt,[l(v,{size:`medium`},{default:u(()=>[l(_(ve))]),_:1})])),_(c)?(p(),b(`div`,{key:3,class:`action-item hover`,onClick:y(w,[`stop`])},[l(v,{size:`medium`},{default:u(()=>[h.value?r(``,!0):(p(),d(_(ve),{key:0})),h.value?(p(),d(_(we),{key:1,class:`show`})):r(``,!0)]),_:1})])):r(``,!0),_(c)?(p(),b(`span`,{key:4,class:`show opacity-item reply-btn`,onClick:D},` 回复 `)):r(``,!0)])])])])}}}),[[`__scopeId`,`data-v-32f1555b`]]),Ct={class:`reply-compose-wrap`},wt={class:`reply-switch`},Tt={class:`time-item`},Et={class:`actions`},Dt={key:0,class:`action-item`},Ot={class:`upvote-count`},kt={class:`upvote-count`},At={key:2,class:`action-item`},jt={key:0,class:`reply-input-wrap`},Mt=J(t({__name:`compose-reply`,props:{comment:{},atUserid:{default:0},atUsername:{default:``}},emits:[`reload`,`reset`],setup(e,{expose:t,emit:a}){let o=e;ae();let{userLogined:s}=S(q()),c=a,f=v(),m=v(!1),h=v(``),g=v(!1),C=v(o.comment.is_thumbs_up==Q.YES),w=v(o.comment.is_thumbs_down==Q.YES),D=v(o.comment.thumbs_up_count),O=()=>{He({tweet_id:o.comment.post_id,comment_id:o.comment.id}).then(e=>{C.value=!C.value,C.value?(D.value++,w.value=!1):D.value--}).catch(e=>{console.log(e)})},k=()=>{Ne({tweet_id:o.comment.post_id,comment_id:o.comment.id}).then(e=>{w.value=!w.value,w.value&&(C.value&&=(D.value--,!1))}).catch(e=>{console.log(e)})},A=e=>{m.value=e,e?setTimeout(()=>{f.value?.focus()},10):(g.value=!1,h.value=``,c(`reset`))},j=()=>{g.value=!0,Ge({comment_id:o.comment.id,at_user_id:o.atUserid,content:h.value}).then(e=>{A(!1),window.$message.success(`评论成功`),c(`reload`)}).catch(e=>{g.value=!1})};return t({switchReply:A}),(t,a)=>{let c=E,v=G,S=T,M=V;return p(),b(`div`,Ct,[x(`div`,wt,[x(`span`,Tt,n(_(qe)(e.comment.created_on)),1),x(`div`,Et,[_(s)?r(``,!0):(p(),b(`div`,Dt,[l(c,{size:`medium`},{default:u(()=>[l(_(Se))]),_:1}),x(`span`,Ot,n(D.value),1)])),_(s)?(p(),b(`div`,{key:1,class:`action-item hover`,onClick:y(O,[`stop`])},[l(c,{size:`medium`},{default:u(()=>[C.value?r(``,!0):(p(),d(_(Se),{key:0})),C.value?(p(),d(_(Ee),{key:1,class:`show`})):r(``,!0)]),_:1}),x(`span`,kt,n(D.value>0?D.value:``),1)])):r(``,!0),_(s)?r(``,!0):(p(),b(`div`,At,[l(c,{size:`medium`},{default:u(()=>[l(_(ve))]),_:1})])),_(s)?(p(),b(`div`,{key:3,class:`action-item hover`,onClick:y(k,[`stop`])},[l(c,{size:`medium`},{default:u(()=>[w.value?r(``,!0):(p(),d(_(ve),{key:0})),w.value?(p(),d(_(we),{key:1,class:`show`})):r(``,!0)]),_:1})])):r(``,!0),_(s)&&!m.value?(p(),b(`span`,{key:4,class:`show reply-btn`,onClick:a[0]||=e=>A(!0)},` 回复 `)):r(``,!0),_(s)&&m.value?(p(),b(`span`,{key:5,class:`hide reply-btn`,onClick:a[1]||=e=>A(!1)},` 取消 `)):r(``,!0)])]),m.value?(p(),b(`div`,jt,[l(M,null,{default:u(()=>[l(v,{ref_key:`inputInstRef`,ref:f,size:`small`,placeholder:o.atUsername?`@`+o.atUsername:`请输入回复内容..`,maxlength:_(300),value:h.value,"onUpdate:value":a[2]||=e=>h.value=e,"show-count":``,clearable:``},null,8,[`placeholder`,`maxlength`,`value`]),l(S,{type:`primary`,size:`small`,ghost:``,loading:g.value,onClick:j},{default:u(()=>[...a[3]||=[i(` 回复 `,-1)]]),_:1},8,[`loading`])]),_:1})])):r(``,!0)])}}}),[[`__scopeId`,`data-v-8eaa77b4`]]),Nt={class:`comment-item`},Pt={class:`nickname-wrap`},Ft={class:`username-wrap`},It={class:`opt-wrap`},Lt={class:`timestamp`},Rt=[`innerHTML`],zt={class:`reply-wrap`},Bt=J(t({__name:`comment-item`,props:{comment:{},postUserId:{}},emits:[`reload`],setup(e,{emit:t}){let a=C(),c=v(0),m=v(``),w=v(),D=ae(),{userInfo:O}=S(q()),k=t,A=e,j=h(()=>{let e=Object.assign({texts:[],imgs:[]},A.comment);return e.contents.map(t=>{(+t.type==1||+t.type==2)&&e.texts.push(t),+t.type==3&&e.imgs.push(t)}),e}),M=(e,t)=>{let n=e.target;if(n.dataset.detail){let e=n.dataset.detail.split(`:`);e.length===2&&(D.doRefresh(),e[0]===`tag`?window.$message.warning(`评论内的无效话题`):a.push({name:`user`,query:{s:e[1]}}))}},P=e=>{c.value=e.user_id,m.value=e.user?.username||``,w.value?.switchReply(!0)},F=()=>{k(`reload`)},I=()=>{c.value=0,m.value=``},R=()=>{ze({id:j.value.id}).then(e=>{window.$message.success(`删除成功`),setTimeout(()=>{F()},50)}).catch(e=>{})},ee=()=>{Ze({id:j.value.id}).then(e=>{j.value.is_essence=e.highlight_status,window.$message.success(`操作成功`),setTimeout(()=>{F()},50)}).catch(e=>{})};return(t,a)=>{let h=te,v=o(`router-link`),S=N,C=E,D=T,k=L,A=nt,z=Mt,B=St,V=K;return p(),b(`div`,Nt,[l(V,{"content-indented":``},f({avatar:u(()=>[l(h,{round:``,size:30,src:j.value.user.avatar},null,8,[`src`])]),header:u(()=>[x(`span`,Pt,[l(v,{onClick:a[0]||=y(()=>{},[`stop`]),class:`username-link`,to:{name:`user`,query:{s:j.value.user.username}}},{default:u(()=>[i(n(j.value.user.nickname),1)]),_:1},8,[`to`])]),x(`span`,Ft,` @`+n(j.value.user.username),1),j.value.is_essence==_(Q).YES?(p(),d(S,{key:0,class:`top-tag`,type:`warning`,size:`small`,round:``},{default:u(()=>[...a[2]||=[i(` 精选 `,-1)]]),_:1})):r(``,!0)]),"header-extra":u(()=>[x(`div`,It,[x(`span`,Lt,n(j.value.ip_loc),1),_(O).id===e.postUserId?(p(),d(k,{key:0,"negative-text":`取消`,"positive-text":`确认`,onPositiveClick:ee},{trigger:u(()=>[l(D,{quaternary:``,circle:``,size:`tiny`,class:`action-btn`},{icon:u(()=>[j.value.is_essence==_(Q).NO?(p(),d(C,{key:0},{default:u(()=>[l(_(xe))]),_:1})):(p(),d(C,{key:1},{default:u(()=>[l(_(X))]),_:1}))]),_:1})]),default:u(()=>[i(` `+n(j.value.is_essence==_(Q).NO?`是否精选这条评论`:`是否取消精选`),1)]),_:1})):r(``,!0),_(O).is_admin||_(O).id===j.value.user.id?(p(),d(k,{key:1,"negative-text":`取消`,"positive-text":`确认`,onPositiveClick:R},{trigger:u(()=>[l(D,{quaternary:``,circle:``,size:`tiny`,class:`action-btn`},{icon:u(()=>[l(C,null,{default:u(()=>[l(_(Y))]),_:1})]),_:1})]),default:u(()=>[a[3]||=i(` 是否删除这条评论? `,-1)]),_:1})):r(``,!0)])]),footer:u(()=>[j.value.imgs.length>0?(p(),d(A,{key:0,imgs:j.value.imgs},null,8,[`imgs`])):r(``,!0),l(z,{ref_key:`replyComposeRef`,ref:w,comment:j.value,"at-userid":c.value,"at-username":m.value,onReload:F,onReset:I},null,8,[`comment`,`at-userid`,`at-username`]),x(`div`,zt,[(p(!0),b(g,null,s(j.value.replies,e=>(p(),d(B,{key:e.id,reply:e,"tweet-id":j.value.post_id,onFocusReply:P,onReload:F},null,8,[`reply`,`tweet-id`]))),128))])]),_:2},[j.value.texts.length>0?{name:`description`,fn:u(()=>[(p(!0),b(g,null,s(j.value.texts,e=>(p(),b(`span`,{key:e.id,class:`comment-text`,onClick:a[1]||=y(e=>M(e,j.value.id),[`stop`]),innerHTML:_(at)(e.content).content},null,8,Rt))),128))]),key:`0`}:void 0]),1024)])}}}),[[`__scopeId`,`data-v-af009e85`]]),Vt=ct(),Ht={key:0,class:`compose-wrap`},Ut={class:`compose-line`},Wt={class:`compose-user`},Gt={class:`compose-line compose-options`},Kt={class:`attachment`},qt={class:`submit-wrap`},Jt={class:`attachment-list-wrap`},Yt={key:1,class:`compose-wrap`},Xt={key:0,class:`login-only-wrap`},Zt={key:1,class:`login-wrap`},Qt=J(t({__name:`compose-comment`,props:{lock:{default:0},postId:{default:0}},emits:[`post-success`],setup(e,{emit:t}){let a=t,o=e,s=ae(),{userInfo:c}=S(q()),f=v([]),m=v(!1),g=v(!1),y=v(!1),C=v(``),w=v(),D=v(`public/image`),O=v([]),k=v([]),A=v(!0),j=h(()=>`Bearer `+localStorage.getItem(oe)),M=(0,Vt.debounce)(e=>{ie.v1.suggest.get.users({k:e}).then(e=>{let t=[];e.suggest.map(e=>{t.push({label:e,value:e})}),f.value=t,g.value=!1}).catch(e=>{g.value=!1})},200),N=(e,t)=>{g.value||(g.value=!0,t===`@`&&M(e))},P=e=>{e.length>300?C.value=e.substring(0,300):C.value=e},F=e=>{D.value=e},I=e=>{for(let i=0;i<e.length;i++){var t=e[i].name,n=t.split(`.`).slice(0,-1).join(`.`),r=t.split(`.`).pop();n.length>30&&(e[i].name=n.substring(0,18)+`...`+n.substring(n.length-9)+`.`+r)}O.value=e},L=async e=>D.value===`public/image`&&![`image/png`,`image/jpg`,`image/jpeg`,`image/gif`].includes(e.file.file?.type)?(window.$message.warning(`图片仅允许 png/jpg/gif 格式`),!1):D.value===`image`&&e.file.file?.size>10485760?(window.$message.warning(`图片大小不能超过10MB`),!1):!0,z=({file:e,event:t})=>{try{let n=JSON.parse(t.target?.response);n.code===0&&D.value===`public/image`&&k.value.push({id:e.id,content:n.data.content})}catch{window.$message.error(`上传失败`)}},V=({file:e,event:t})=>{try{let e=JSON.parse(t.target?.response);if(e.code!==0){let t=e.msg||`上传失败`;e.details&&e.details.length>0&&e.details.map(e=>{t+=`:`+e}),window.$message.error(t)}}catch{window.$message.error(`上传失败`)}},H=({file:e})=>{let t=k.value.findIndex(t=>t.id===e.id);t>-1&&k.value.splice(t,1)},G=()=>{m.value=!0},K=()=>{m.value=!1,w.value?.clear(),O.value=[],C.value=``,k.value=[]},ne=()=>{if(C.value.trim().length===0){window.$message.warning(`请输入内容哦`);return}let{users:e}=at(C.value),t=[],n=100;t.push({content:C.value,type:2,sort:n}),k.value.map(e=>{n++,t.push({content:e.content,type:3,sort:n})}),y.value=!0,Le({contents:t,post_id:o.postId,users:Array.from(new Set(e))}).then(e=>{window.$message.success(`发布成功`),y.value=!1,a(`post-success`),K()}).catch(e=>{y.value=!1})},J=e=>{s.triggerAuth(!0),s.triggerAuthKey(e)};return(e,t)=>{let a=te,s=re,h=E,v=T,S=ee,k=R,M=U,ie=W,q=B;return p(),b(`div`,null,[_(c).id>0?(p(),b(`div`,Ht,[x(`div`,Ut,[x(`div`,Wt,[l(a,{round:``,size:30,src:_(c).avatar},null,8,[`src`])]),l(s,{type:`textarea`,size:`large`,autosize:``,bordered:!1,options:f.value,prefix:[`@`],loading:g.value,value:C.value,disabled:o.lock===1,"onUpdate:value":P,onSearch:N,onFocus:G,placeholder:o.lock===1?`泡泡已被锁定,回复功能已关闭`:`快来评论两句吧...`},null,8,[`options`,`loading`,`value`,`disabled`,`placeholder`])]),m.value?(p(),d(q,{key:0,ref_key:`uploadRef`,ref:w,abstract:``,"list-type":`image`,multiple:!0,max:9,action:`/v1/attachment`,headers:{Authorization:j.value},data:{type:D.value},"file-list":O.value,onBeforeUpload:L,onFinish:z,onError:V,onRemove:H,"onUpdate:fileList":I},{default:u(()=>[x(`div`,Gt,[x(`div`,Kt,[l(S,{abstract:``},{default:u(({handleClick:e})=>[l(v,{disabled:O.value.length>0&&D.value===`public/video`||O.value.length===9,onClick:()=>{F(`public/image`),e()},quaternary:``,circle:``,type:`primary`},{icon:u(()=>[l(h,{size:`20`,color:`var(--primary-color)`},{default:u(()=>[l(_(Ae))]),_:1})]),_:1},8,[`disabled`,`onClick`])]),_:1}),l(M,{trigger:`hover`,placement:`bottom`},{trigger:u(()=>[l(k,{class:`text-statistic`,type:`circle`,"show-indicator":!1,status:`success`,"stroke-width":10,percentage:C.value.length/_(300)*100},null,8,[`percentage`])]),default:u(()=>[i(` `+n(C.value.length)+` / `+n(_(300)),1)]),_:1})]),x(`div`,qt,[l(v,{quaternary:``,round:``,type:`tertiary`,class:`cancel-btn`,size:`small`,onClick:K},{default:u(()=>[...t[3]||=[i(` 取消 `,-1)]]),_:1}),l(v,{loading:y.value,onClick:ne,type:`primary`,secondary:``,size:`small`,round:``},{default:u(()=>[...t[4]||=[i(` 发布 `,-1)]]),_:1},8,[`loading`])])]),x(`div`,Jt,[l(ie)])]),_:1},8,[`headers`,`data`,`file-list`])):r(``,!0)])):(p(),b(`div`,Yt,[t[8]||=x(`div`,{class:`login-wrap`},[x(`span`,{class:`login-banner`},` 登录后,精彩更多`)],-1),A.value?r(``,!0):(p(),b(`div`,Xt,[l(v,{strong:``,secondary:``,round:``,type:`primary`,onClick:t[0]||=e=>J(`signin`)},{default:u(()=>[...t[5]||=[i(` 登录 `,-1)]]),_:1})])),A.value?(p(),b(`div`,Zt,[l(v,{strong:``,secondary:``,round:``,type:`primary`,onClick:t[1]||=e=>J(`signin`)},{default:u(()=>[...t[6]||=[i(` 登录 `,-1)]]),_:1}),l(v,{strong:``,secondary:``,round:``,type:`info`,onClick:t[2]||=e=>J(`signup`)},{default:u(()=>[...t[7]||=[i(` 注册 `,-1)]]),_:1})])):r(``,!0)]))])}}}),[[`__scopeId`,`data-v-16072a96`]]),$t=e(ot()),en={class:`username-wrap`},tn={class:`options`},nn={key:0},rn=[`innerHTML`],an={class:`timestamp`},on={key:0},sn={key:1},cn={class:`opts-wrap`},ln={class:`opt-item`},un=t({__name:`post-detail`,props:{post:{}},emits:[`reload`],setup(e,{emit:t}){let f=ae(),m=q(),{collapsedLeft:w}=S(f),{userInfo:O}=S(m),P=C(),F=j(),I=v(!1),L=v(!1),R=e,ee=v(!1),z=v(!1),B=v(!1),V=v(!1),H=v(!1),U=v(!1),W=v(Z.PUBLIC),G=v(!1),ne=v({id:0,avatar:``,username:``,nickname:``,is_admin:!1,is_friend:!0,is_following:!1,created_on:0,follows:0,followings:0,status:1}),re=e=>{ne.value=e,G.value=!0},J=()=>{G.value=!1},oe=t,Y=h({get:()=>{let e=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},R.post);return e.contents.map(t=>{(+t.type==1||+t.type==2)&&e.texts.push(t),+t.type==3&&e.imgs.push(t),+t.type==4&&e.videos.push(t),+t.type==6&&e.links.push(t),+t.type==7&&e.attachments.push(t),+t.type==8&&e.charge_attachments.push(t)}),e},set:e=>{R.post.upvote_count=e.upvote_count,R.post.comment_count=e.comment_count,R.post.collection_count=e.collection_count,R.post.is_essence=e.is_essence}}),X=e=>()=>c(E,null,{default:()=>c(e)}),ve=h(()=>{let e=[];if(!O.value.is_admin&&O.value.id!=R.post.user.id)return e.push({label:`私信 @`+R.post.user.username,key:`whisper`,icon:X(be)}),R.post.user.is_following?e.push({label:`取消关注 @`+R.post.user.username,key:`unfollow`,icon:X(he)}):e.push({label:`关注 @`+R.post.user.username,key:`follow`,icon:X(ge)}),e;e.push({label:`删除`,key:`delete`,icon:X(ke)}),Y.value.is_lock===0?e.push({label:`锁定`,key:`lock`,icon:X(ce)}):e.push({label:`解锁`,key:`unlock`,icon:X(de)}),O.value.is_admin&&(Y.value.is_top===0?e.push({label:`置顶`,key:`stick`,icon:X(Oe)}):e.push({label:`取消置顶`,key:`unstick`,icon:X(Oe)})),Y.value.is_essence===0?e.push({label:`设为亮点`,key:`highlight`,icon:X(fe)}):e.push({label:`取消亮点`,key:`unhighlight`,icon:X(fe)});let t;return t=Y.value.visibility===Z.PUBLIC?{label:`公开`,key:`vpublic`,icon:X(me),children:[{label:`私密`,key:`vprivate`,icon:X(le)},{label:`关注可见`,key:`vfollowing`,icon:X(ge)}]}:Y.value.visibility===Z.PRIVATE?{label:`私密`,key:`vprivate`,icon:X(le),children:[{label:`公开`,key:`vpublic`,icon:X(me)},{label:`关注可见`,key:`vfollowing`,icon:X(ge)}]}:Y.value.visibility===Z.FRIEND?{label:`好友可见`,key:`vfriend`,icon:X(se),children:[{label:`公开`,key:`vpublic`,icon:X(me)},{label:`私密`,key:`vprivate`,icon:X(le)},{label:`关注可见`,key:`vfollowing`,icon:X(ge)}]}:{label:`关注可见`,key:`vfollowing`,icon:X(ge),children:[{label:`公开`,key:`vpublic`,icon:X(me)},{label:`私密`,key:`vprivate`,icon:X(le)}]},Y.value.visibility!==Z.FRIEND&&t.children?.push({label:`好友可见`,key:`vfriend`,icon:X(se)}),e.push(t),e}),xe=e=>{F.success({title:`提示`,content:`确定`+(e.user.is_following?`取消关注 @`:`关注 @`)+R.post.user.username+` 吗?`,positiveText:`确定`,negativeText:`取消`,onPositiveClick:()=>{e.user.is_following?ie.v1.user.post.unfollow({user_id:e.user.id}).then(t=>{window.$message.success(`操作成功`),e.user.is_following=!1}).catch(e=>{}):ie.v1.user.post.follow({user_id:e.user.id}).then(t=>{window.$message.success(`操作成功`),e.user.is_following=!0}).catch(e=>{})}})},Se=e=>{P.push({name:`post`,query:{id:e}})},we=(e,t)=>{if(e.target.dataset.detail){let t=e.target.dataset.detail.split(`:`);if(t.length===2){f.doRefresh(),t[0]===`tag`?P.push({name:`home`,query:{q:t[1],t:`tag`}}):P.push({name:`user`,query:{s:t[1]}});return}}Se(t)},Ee=e=>{switch(e){case`whisper`:re(R.post.user);break;case`follow`:case`unfollow`:xe(R.post);break;case`delete`:ee.value=!0;break;case`lock`:case`unlock`:z.value=!0;break;case`stick`:case`unstick`:B.value=!0;break;case`highlight`:case`unhighlight`:V.value=!0;break;case`vpublic`:W.value=0,H.value=!0;break;case`vprivate`:W.value=1,H.value=!0;break;case`vfriend`:W.value=2,H.value=!0;break;case`vfollowing`:W.value=3,H.value=!0;break;default:break}},Ae=()=>{Je({id:Y.value.id}).then(e=>{window.$message.success(`删除成功`),P.replace(`/`),setTimeout(()=>{f.doRefresh()},50)}).catch(e=>{U.value=!1})},je=()=>{Xe({id:Y.value.id}).then(e=>{oe(`reload`,Y.value.id),e.lock_status===1?window.$message.success(`锁定成功`):window.$message.success(`解锁成功`)}).catch(e=>{U.value=!1})},Ne=()=>{Ie({id:Y.value.id}).then(e=>{oe(`reload`,Y.value.id),e.top_status===1?window.$message.success(`置顶成功`):window.$message.success(`取消置顶成功`)}).catch(e=>{U.value=!1})},Fe=()=>{Re({id:Y.value.id}).then(e=>{Y.value={...Y.value,is_essence:e.highlight_status},e.highlight_status===1?window.$message.success(`设为亮点成功`):window.$message.success(`取消亮点成功`)}).catch(e=>{U.value=!1})},Le=()=>{Pe({id:Y.value.id,visibility:W.value}).then(e=>{oe(`reload`,Y.value.id),window.$message.success(`修改可见性成功`)}).catch(e=>{U.value=!1})},ze=()=>{Ye({id:Y.value.id}).then(e=>{I.value=e.status,e.status?Y.value={...Y.value,upvote_count:Y.value.upvote_count+1}:Y.value={...Y.value,upvote_count:Y.value.upvote_count-1}}).catch(e=>{console.log(e)})},Ve=()=>{Me({id:Y.value.id}).then(e=>{L.value=e.status,e.status?Y.value={...Y.value,collection_count:Y.value.collection_count+1}:Y.value={...Y.value,collection_count:Y.value.collection_count-1}}).catch(e=>{console.log(e)})},He=()=>{(0,$t.default)(`${window.location.origin}/#/post?id=${Y.value.id}&share=copy_link&t=${new Date().getTime()}`),window.$message.success(`链接已复制到剪贴板`)};return a(()=>{O.value.id>0&&(Be({id:Y.value.id}).then(e=>{I.value=e.status}).catch(e=>{console.log(e)}),We({id:Y.value.id}).then(e=>{L.value=e.status}).catch(e=>{console.log(e)}))}),(e,t)=>{let a=te,c=o(`router-link`),f=N,m=T,h=M,v=D,S=et,C=it,O=nt,j=tt,P=rt,F=A,R=k,U=K;return p(),b(`div`,{class:`detail-item`,onClick:t[7]||=e=>Se(Y.value.id)},[l(U,null,{avatar:u(()=>[l(a,{round:``,size:30,src:Y.value.user.avatar},null,8,[`src`])]),header:u(()=>[l(c,{onClick:t[0]||=y(()=>{},[`stop`]),class:`username-link`,to:{name:`user`,query:{s:Y.value.user.username}}},{default:u(()=>[i(n(Y.value.user.nickname),1)]),_:1},8,[`to`]),x(`span`,en,` @`+n(Y.value.user.username),1),Y.value.is_top?(p(),d(f,{key:0,class:`top-tag`,type:`warning`,size:`small`,round:``},{default:u(()=>[...t[8]||=[i(` 置顶 `,-1)]]),_:1})):r(``,!0),Y.value.visibility==_(Z).PRIVATE?(p(),d(f,{key:1,class:`top-tag`,type:`error`,size:`small`,round:``},{default:u(()=>[...t[9]||=[i(` 私密 `,-1)]]),_:1})):r(``,!0),Y.value.visibility==_(Z).FRIEND?(p(),d(f,{key:2,class:`top-tag`,type:`info`,size:`small`,round:``},{default:u(()=>[...t[10]||=[i(` 好友可见 `,-1)]]),_:1})):r(``,!0)]),"header-extra":u(()=>[x(`div`,tn,[l(h,{placement:`bottom-end`,trigger:`click`,size:`small`,options:ve.value,onSelect:Ee},{default:u(()=>[l(m,{quaternary:``,circle:``},{icon:u(()=>[l(_(E),null,{default:u(()=>[l(_(Ce))]),_:1})]),_:1})]),_:1},8,[`options`])]),l(v,{show:ee.value,"onUpdate:show":t[1]||=e=>ee.value=e,"mask-closable":!1,preset:`dialog`,title:`提示`,content:`确定删除该泡泡动态吗?`,"positive-text":`确认`,"negative-text":`取消`,onPositiveClick:Ae},null,8,[`show`]),l(v,{show:z.value,"onUpdate:show":t[2]||=e=>z.value=e,"mask-closable":!1,preset:`dialog`,title:`提示`,content:`确定`+(Y.value.is_lock?`解锁`:`锁定`)+`该泡泡动态吗?`,"positive-text":`确认`,"negative-text":`取消`,onPositiveClick:je},null,8,[`show`,`content`]),l(v,{show:B.value,"onUpdate:show":t[3]||=e=>B.value=e,"mask-closable":!1,preset:`dialog`,title:`提示`,content:`确定`+(Y.value.is_top?`取消置顶`:`置顶`)+`该泡泡动态吗?`,"positive-text":`确认`,"negative-text":`取消`,onPositiveClick:Ne},null,8,[`show`,`content`]),l(v,{show:V.value,"onUpdate:show":t[4]||=e=>V.value=e,"mask-closable":!1,preset:`dialog`,title:`提示`,content:`确定将该泡泡动态`+(Y.value.is_essence?`取消亮点`:`设为亮点`)+`吗?`,"positive-text":`确认`,"negative-text":`取消`,onPositiveClick:Fe},null,8,[`show`,`content`]),l(v,{show:H.value,"onUpdate:show":t[5]||=e=>H.value=e,"mask-closable":!1,preset:`dialog`,title:`提示`,content:`确定将该泡泡动态可见度修改为`+(W.value==0?`公开`:W.value==1?`私密`:W.value==2?`好友可见`:`关注可见`)+`吗?`,"positive-text":`确认`,"negative-text":`取消`,onPositiveClick:Le},null,8,[`show`,`content`]),l(S,{show:G.value,user:ne.value,onSuccess:J},null,8,[`show`,`user`])]),footer:u(()=>[l(C,{attachments:Y.value.attachments},null,8,[`attachments`]),l(C,{attachments:Y.value.charge_attachments,price:Y.value.attachment_price},null,8,[`attachments`,`price`]),l(O,{imgs:Y.value.imgs},null,8,[`imgs`]),l(j,{videos:Y.value.videos,full:!0},null,8,[`videos`]),l(P,{links:Y.value.links},null,8,[`links`]),x(`div`,an,[i(` 发布于 `+n(_(qe)(Y.value.created_on))+` `,1),Y.value.ip_loc?(p(),b(`span`,on,[l(F,{vertical:``}),i(` `+n(Y.value.ip_loc),1)])):r(``,!0),!_(w)&&Y.value.created_on!=Y.value.latest_replied_on?(p(),b(`span`,sn,[l(F,{vertical:``}),i(` 最后回复 `+n(_(qe)(Y.value.latest_replied_on)),1)])):r(``,!0)])]),action:u(()=>[x(`div`,cn,[l(R,{justify:`space-between`},{default:u(()=>[x(`div`,{class:`opt-item hover`,onClick:y(ze,[`stop`])},[l(_(E),{size:`20`,class:`opt-item-icon`},{default:u(()=>[I.value?r(``,!0):(p(),d(_(pe),{key:0})),I.value?(p(),d(_(ue),{key:1,color:`red`})):r(``,!0)]),_:1}),i(` `+n(Y.value.upvote_count),1)]),x(`div`,ln,[l(_(E),{size:`20`,class:`opt-item-icon`},{default:u(()=>[l(_(De))]),_:1}),i(` `+n(Y.value.comment_count),1)]),x(`div`,{class:`opt-item hover`,onClick:y(Ve,[`stop`])},[l(_(E),{size:`20`,class:`opt-item-icon`},{default:u(()=>[L.value?r(``,!0):(p(),d(_(Te),{key:0})),L.value?(p(),d(_(ye),{key:1,color:`#ff7600`})):r(``,!0)]),_:1}),i(` `+n(Y.value.collection_count),1)]),x(`div`,{class:`opt-item hover`,onClick:y(He,[`stop`])},[l(_(E),{size:`20`,class:`opt-item-icon`},{default:u(()=>[l(_(_e))]),_:1}),i(` `+n(Y.value.share_count),1)])]),_:1})])]),default:u(()=>[Y.value.texts.length>0?(p(),b(`div`,nn,[(p(!0),b(g,null,s(Y.value.texts,e=>(p(),b(`span`,{key:e.id,class:`post-text`,onClick:t[6]||=y(e=>we(e,Y.value.id),[`stop`]),innerHTML:_(at)(e.content).content},null,8,rn))),128))])):r(``,!0)]),_:1})])}}}),dn=e(st()),fn={key:0,class:`detail-wrap`},pn={key:1,class:`empty-wrap`},mn={key:0,class:`comment-opts-wrap`},hn={key:2},gn={key:0,class:`skeleton-wrap`},_n={key:1},vn={key:0,class:`empty-wrap`},yn={key:0,class:`load-more-spinner`},bn={key:1,class:`load-more-spinner`},xn={key:2,class:`load-more-spinner`},Sn={key:3,class:`load-more-spinner`},Cn={key:4,class:`load-more-spinner`},wn={key:5,class:`load-more-spinner`},$=20,Tn=J(t({__name:`Post`,setup(e){let t=w(),n=v({}),i=v(!1),o=v(!1),c=v([]),f=h(()=>+t.query.id),y=v(`default`),S=v(!0),C={loading(){},loaded(){},complete(){},error(){}},T=e=>{y.value=e,e===`default`&&(S.value=!0),G(C)},E=e=>{Ke({id:e}).then(e=>{n.value=e}).catch(e=>{})},D=()=>{n.value={id:0},i.value=!0,Ke({id:f.value}).then(e=>{i.value=!1,n.value=e,G(C)}).catch(e=>{i.value=!1})},O=1,A=v(!1),j=v([]),M=e=>{A.value||Ve({id:n.value.id,style:`default`,page:O,page_size:$}).then(t=>{e!==null&&(C=e),t.list.length<$?A.value=!0:O++,t.list.length>0&&(O===1?j.value=t.list:j.value.push(...t.list),c.value=j.value),C.loaded(),o.value=!1}).catch(e=>{o.value=!1,C.error()})},N=1,L=v(!1),R=v([]),ee=e=>{L.value||Ve({id:n.value.id,style:`hots`,page:N,page_size:$}).then(t=>{e!==null&&(C=e),t.list.length<$?L.value=!0:N++,t.list.length>0&&(N===1?R.value=t.list:R.value.push(...t.list),c.value=R.value),C.loaded(),o.value=!1}).catch(e=>{o.value=!1,C.error()})},B=1,V=v(!1),U=v([]),W=e=>{V.value||Ve({id:n.value.id,style:`newest`,page:B,page_size:$}).then(t=>{e!==null&&(C=e),t.list.length<$?V.value=!0:B++,t.list.length>0&&(B===1?U.value=t.list:U.value.push(...t.list),c.value=U.value),C.loaded(),o.value=!1}).catch(e=>{o.value=!1,C.error()})},G=e=>{f.value<1||(c.value.length===0&&(o.value=!0),y.value===`default`?(c.value=j.value,M(e)):y.value===`hots`?(c.value=R.value,ee(e)):(c.value=U.value,W(e)),o.value=!1)},K=()=>{O=1,A.value=!1,j.value=[],N=1,L.value=!1,R.value=[],B=1,V.value=!1,U.value=[],G(C)};return a(()=>{D()}),m(f,()=>{f.value>0&&t.name===`post`&&D()}),(e,t)=>{let a=Qe,f=un,m=H,h=I,v=P,y=z,C=F,w=Qt,D=$e,O=Bt,j=k,M=ne;return p(),b(`div`,null,[l(a,{title:`泡泡详情`,back:!0}),l(M,{class:`main-content-wrap`,bordered:``},{default:u(()=>[l(v,null,{default:u(()=>[l(h,{show:i.value},{default:u(()=>[n.value.id>0?(p(),b(`div`,fn,[l(f,{post:n.value,onReload:E},null,8,[`post`])])):(p(),b(`div`,pn,[l(m,{size:`large`,description:`暂无数据`})]))]),_:1},8,[`show`])]),_:1}),n.value.id>0?(p(),b(`div`,mn,[l(C,{type:`bar`,"justify-content":`end`,size:`small`,"tab-style":`margin-left: -24px;`,animated:``,"onUpdate:value":T},{prefix:u(()=>[...t[0]||=[x(`span`,{class:`comment-title-item`},`评论`,-1)]]),default:u(()=>[l(y,{name:`default`,tab:`推荐`}),l(y,{name:`hots`,tab:`热门`}),l(y,{name:`newest`,tab:`最新`})]),_:1})])):r(``,!0),n.value.id>0?(p(),d(v,{key:1},{default:u(()=>[l(w,{lock:n.value.is_lock,"post-id":n.value.id,onPostSuccess:K},null,8,[`lock`,`post-id`])]),_:1})):r(``,!0),n.value.id>0?(p(),b(`div`,hn,[o.value?(p(),b(`div`,gn,[l(D,{num:5})])):(p(),b(`div`,_n,[c.value.length===0?(p(),b(`div`,vn,[l(m,{size:`large`,description:`暂无评论,快来抢沙发`})])):r(``,!0),(p(!0),b(g,null,s(c.value,e=>(p(),d(v,{key:e.id},{default:u(()=>[l(O,{comment:e,postUserId:n.value.user_id,onReload:K},null,8,[`comment`,`postUserId`])]),_:2},1024))),128))]))])):r(``,!0),c.value.length>=$?(p(),d(j,{key:3,justify:`center`},{default:u(()=>[l(_(dn.default),{class:`load-more`,slots:{complete:`没有更多数据了`,error:`加载出错`},onInfinite:G},{spinner:u(()=>[S.value&&A.value?(p(),b(`span`,yn)):r(``,!0),!S.value&&_(L)?(p(),b(`span`,bn)):r(``,!0),!S.value&&_(V)?(p(),b(`span`,xn)):r(``,!0),S.value&&!A.value?(p(),b(`span`,Sn,`加载评论`)):r(``,!0),!S.value&&!_(L)?(p(),b(`span`,Cn,`加载评论`)):r(``,!0),!S.value&&!_(V)?(p(),b(`span`,wn,`加载评论`)):r(``,!0)]),_:1})]),_:1})):r(``,!0)]),_:1})])}}}),[[`__scopeId`,`data-v-1d30990d`]]);export{Tn as default};