mirror of https://github.com/rocboss/paopao-ce
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.
2 lines
26 KiB
2 lines
26 KiB
import{d as W,r,a3 as me,o,c as u,a as m,V as e,a1 as n,e as T,M as z,Q as U,O as i,_ as a,a2 as V,n as ne,a7 as Pe,F as ae,a4 as le,j as ve,W as ye,X as ke,w as Re}from"./@vue-e0e89260.js";import{u as Z}from"./vuex-473b3783.js";import{f as ie}from"./formatTime-cdf4e6f1.js";import{t as Se,d as Le,e as Me,_ as ee,f as Ae,h as De,i as Oe,j as qe,g as Ne,k as je,l as Be,m as Ee,n as Ve,o as He,s as Fe,v as Ye,p as Je,q as Ke,r as Qe,u as ge}from"./index-8b4e1776.js";import{Y as ue,V as G}from"./IEnum-a180d93e.js";import{T as we,e as ce,f as be,g as re,h as $e,I as We,i as Ge,j as Xe,k as Ze,l as et,m as tt,n as st,o as ot}from"./@vicons-d502290a.js";import{j as te,e as se,J as Ce,K as nt,b as at,L as lt,o as fe,M as xe,v as it,w as ut,x as ct,y as rt,z as _t,B as pt,O as dt,P as mt,i as vt,Q as ft,a as Ie,F as ht,I as gt,k as yt,H as kt,f as wt,g as bt}from"./naive-ui-62663ad7.js";import{p as he,_ as Te,a as $t,b as Ct,c as xt}from"./content-c0ce69b7.js";import{u as ze,b as It}from"./vue-router-b8e3382f.js";import{_ as Tt}from"./post-skeleton-627d3fc3.js";import{l as zt}from"./lodash-94eb5868.js";import{a as Ut}from"./copy-to-clipboard-1dd3075d.js";import{_ as Pt}from"./main-nav.vue_vue_type_style_index_0_lang-c955aa6b.js";import{W as Rt}from"./v3-infinite-loading-e5c2e8bf.js";import"./moment-2ab8298d.js";import"./axios-4a70c6fc.js";/* empty css */import"./seemly-76b7b838.js";import"./vueuc-59ca65c3.js";import"./evtd-b614532e.js";import"./@css-render-580d83ec.js";import"./vooks-a50491fd.js";import"./vdirs-b0483831.js";import"./@juggle-41516555.js";import"./css-render-6a5c5852.js";import"./@emotion-8a8e73f6.js";import"./lodash-es-8412e618.js";import"./treemate-25c27bff.js";import"./async-validator-dee29e8b.js";import"./date-fns-975a2d8f.js";import"./paopao-video-player-aa5e8b3f.js";import"./toggle-selection-93f4ad84.js";const St={class:"reply-item"},Lt={class:"header-wrap"},Mt={class:"username"},At={class:"reply-name"},Dt={class:"timestamp"},Ot={class:"base-wrap"},qt={class:"content"},Nt={class:"reply-switch"},jt={class:"time-item"},Bt={class:"actions"},Et={class:"upvote-count"},Vt=["onClick"],Ht={class:"upvote-count"},Ft={key:2,class:"action-item"},Yt=["onClick"],Jt=W({__name:"reply-item",props:{tweetId:{},reply:{}},emits:["focusReply","reload"],setup(D,{emit:q}){const l=D,_=Z(),h=r(l.reply.is_thumbs_up==ue.YES),y=r(l.reply.is_thumbs_down==ue.YES),k=r(l.reply.thumbs_up_count),L=()=>{Se({tweet_id:l.tweetId,comment_id:l.reply.comment_id,reply_id:l.reply.id}).then(v=>{h.value=!h.value,h.value?(k.value++,y.value=!1):k.value--}).catch(v=>{console.log(v)})},c=()=>{Le({tweet_id:l.tweetId,comment_id:l.reply.comment_id,reply_id:l.reply.id}).then(v=>{y.value=!y.value,y.value&&h.value&&(k.value--,h.value=!1)}).catch(v=>{console.log(v)})},R=()=>{q("focusReply",l.reply)},I=()=>{Me({id:l.reply.id}).then(v=>{window.$message.success("删除成功"),setTimeout(()=>{q("reload")},50)}).catch(v=>{console.log(v)})};return(v,b)=>{const t=me("router-link"),f=te,$=se,M=Ce,w=nt;return o(),u("div",St,[m("div",Lt,[m("div",Mt,[e(t,{class:"user-link",to:{name:"user",query:{username:l.reply.user.username}}},{default:n(()=>[T(z(l.reply.user.username),1)]),_:1},8,["to"]),m("span",At,z(l.reply.at_user_id>0?"回复":":"),1),l.reply.at_user_id>0?(o(),U(t,{key:0,class:"user-link",to:{name:"user",query:{username:l.reply.at_user.username}}},{default:n(()=>[T(z(l.reply.at_user.username),1)]),_:1},8,["to"])):i("",!0)]),m("div",Dt,[T(z(l.reply.ip_loc)+" ",1),a(_).state.userInfo.is_admin||a(_).state.userInfo.id===l.reply.user.id?(o(),U(M,{key:0,"negative-text":"取消","positive-text":"确认",onPositiveClick:I},{trigger:n(()=>[e($,{quaternary:"",circle:"",size:"tiny",class:"del-btn"},{icon:n(()=>[e(f,null,{default:n(()=>[e(a(we))]),_:1})]),_:1})]),default:n(()=>[T(" 是否确认删除? ")]),_:1})):i("",!0)])]),m("div",Ot,[m("div",qt,[e(w,{"expand-trigger":"click","line-clamp":"5",tooltip:!1},{default:n(()=>[T(z(l.reply.content),1)]),_:1})]),m("div",Nt,[m("span",jt,z(a(ie)(l.reply.created_on)),1),m("div",Bt,[a(_).state.userLogined?i("",!0):(o(),u("div",{key:0,class:"action-item",onClick:b[0]||(b[0]=V(()=>{},["stop"]))},[e(f,{size:"medium"},{default:n(()=>[e(a(ce))]),_:1}),m("span",Et,z(k.value),1)])),a(_).state.userLogined?(o(),u("div",{key:1,class:"action-item hover",onClick:V(L,["stop"])},[e(f,{size:"medium"},{default:n(()=>[h.value?i("",!0):(o(),U(a(ce),{key:0})),h.value?(o(),U(a(be),{key:1,class:"show"})):i("",!0)]),_:1}),m("span",Ht,z(k.value>0?k.value:"赞"),1)],8,Vt)):i("",!0),a(_).state.userLogined?i("",!0):(o(),u("div",Ft,[e(f,{size:"medium"},{default:n(()=>[e(a(re))]),_:1})])),a(_).state.userLogined?(o(),u("div",{key:3,class:"action-item hover",onClick:V(c,["stop"])},[e(f,{size:"medium"},{default:n(()=>[y.value?i("",!0):(o(),U(a(re),{key:0})),y.value?(o(),U(a($e),{key:1,class:"show"})):i("",!0)]),_:1})],8,Yt)):i("",!0),a(_).state.userLogined?(o(),u("span",{key:4,class:"show opacity-item reply-btn",onClick:R}," 回复 ")):i("",!0)])])])])}}});const Kt=ee(Jt,[["__scopeId","data-v-0fa8b923"]]),Qt={class:"reply-compose-wrap"},Wt={class:"reply-switch"},Gt={class:"time-item"},Xt={class:"actions"},Zt={key:0,class:"action-item"},es={class:"upvote-count"},ts=["onClick"],ss={class:"upvote-count"},os={key:2,class:"action-item"},ns=["onClick"],as={key:0,class:"reply-input-wrap"},ls=W({__name:"compose-reply",props:{comment:{},atUserid:{default:0},atUsername:{default:""}},emits:["reload","reset"],setup(D,{expose:q,emit:l}){const _=D,h=Z(),y=r(),k=r(!1),L=r(""),c=r(!1),R=+"300",I=r(_.comment.is_thumbs_up==ue.YES),v=r(_.comment.is_thumbs_down==ue.YES),b=r(_.comment.thumbs_up_count),t=()=>{Ae({tweet_id:_.comment.post_id,comment_id:_.comment.id}).then(w=>{I.value=!I.value,I.value?(b.value++,v.value=!1):b.value--}).catch(w=>{console.log(w)})},f=()=>{De({tweet_id:_.comment.post_id,comment_id:_.comment.id}).then(w=>{v.value=!v.value,v.value&&I.value&&(b.value--,I.value=!1)}).catch(w=>{console.log(w)})},$=w=>{k.value=w,w?setTimeout(()=>{var A;(A=y.value)==null||A.focus()},10):(c.value=!1,L.value="",l("reset"))},M=()=>{c.value=!0,Oe({comment_id:_.comment.id,at_user_id:_.atUserid,content:L.value}).then(w=>{$(!1),window.$message.success("评论成功"),l("reload")}).catch(w=>{c.value=!1})};return q({switchReply:$}),(w,A)=>{const j=te,B=at,F=se,P=lt;return o(),u("div",Qt,[m("div",Wt,[m("span",Gt,z(a(ie)(w.comment.created_on)),1),m("div",Xt,[a(h).state.userLogined?i("",!0):(o(),u("div",Zt,[e(j,{size:"medium"},{default:n(()=>[e(a(ce))]),_:1}),m("span",es,z(b.value),1)])),a(h).state.userLogined?(o(),u("div",{key:1,class:"action-item hover",onClick:V(t,["stop"])},[e(j,{size:"medium"},{default:n(()=>[I.value?i("",!0):(o(),U(a(ce),{key:0})),I.value?(o(),U(a(be),{key:1,class:"show"})):i("",!0)]),_:1}),m("span",ss,z(b.value>0?b.value:"赞"),1)],8,ts)):i("",!0),a(h).state.userLogined?i("",!0):(o(),u("div",os,[e(j,{size:"medium"},{default:n(()=>[e(a(re))]),_:1})])),a(h).state.userLogined?(o(),u("div",{key:3,class:"action-item hover",onClick:V(f,["stop"])},[e(j,{size:"medium"},{default:n(()=>[v.value?i("",!0):(o(),U(a(re),{key:0})),v.value?(o(),U(a($e),{key:1,class:"show"})):i("",!0)]),_:1})],8,ns)):i("",!0),a(h).state.userLogined&&!k.value?(o(),u("span",{key:4,class:"show reply-btn",onClick:A[0]||(A[0]=S=>$(!0))}," 回复 ")):i("",!0),a(h).state.userLogined&&k.value?(o(),u("span",{key:5,class:"hide reply-btn",onClick:A[1]||(A[1]=S=>$(!1))}," 取消 ")):i("",!0)])]),k.value?(o(),u("div",as,[e(P,null,{default:n(()=>[e(B,{ref_key:"inputInstRef",ref:y,size:"small",placeholder:_.atUsername?"@"+_.atUsername:"请输入回复内容..",maxlength:a(R),value:L.value,"onUpdate:value":A[2]||(A[2]=S=>L.value=S),"show-count":"",clearable:""},null,8,["placeholder","maxlength","value"]),e(F,{type:"primary",size:"small",ghost:"",loading:c.value,onClick:M},{default:n(()=>[T(" 回复 ")]),_:1},8,["loading"])]),_:1})])):i("",!0)])}}});const is=ee(ls,[["__scopeId","data-v-f9af7a93"]]),us={class:"comment-item"},cs={class:"nickname-wrap"},rs={class:"username-wrap"},_s={class:"opt-wrap"},ps={class:"timestamp"},ds=["innerHTML"],ms={class:"reply-wrap"},vs=W({__name:"comment-item",props:{comment:{}},emits:["reload"],setup(D,{emit:q}){const l=D,_=Z(),h=ze(),y=r(0),k=r(""),L=r(),c=ne(()=>{let f=Object.assign({texts:[],imgs:[]},l.comment);return f.contents.map($=>{(+$.type==1||+$.type==2)&&f.texts.push($),+$.type==3&&f.imgs.push($)}),f}),R=(f,$)=>{let M=f.target;if(M.dataset.detail){const w=M.dataset.detail.split(":");w.length===2&&(_.commit("refresh"),w[0]==="tag"?window.$message.warning("评论内的无效话题"):h.push({name:"user",query:{username:w[1]}}))}},I=f=>{var $,M;y.value=f.user_id,k.value=(($=f.user)==null?void 0:$.username)||"",(M=L.value)==null||M.switchReply(!0)},v=()=>{q("reload")},b=()=>{y.value=0,k.value=""},t=()=>{qe({id:c.value.id}).then(f=>{window.$message.success("删除成功"),setTimeout(()=>{v()},50)}).catch(f=>{})};return(f,$)=>{const M=fe,w=me("router-link"),A=te,j=se,B=Ce,F=Te,P=is,S=Kt,J=xe;return o(),u("div",us,[e(J,{"content-indented":""},Pe({avatar:n(()=>[e(M,{round:"",size:30,src:c.value.user.avatar},null,8,["src"])]),header:n(()=>[m("span",cs,[e(w,{onClick:$[0]||($[0]=V(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:c.value.user.username}}},{default:n(()=>[T(z(c.value.user.nickname),1)]),_:1},8,["to"])]),m("span",rs," @"+z(c.value.user.username),1)]),"header-extra":n(()=>[m("div",_s,[m("span",ps,z(c.value.ip_loc),1),a(_).state.userInfo.is_admin||a(_).state.userInfo.id===c.value.user.id?(o(),U(B,{key:0,"negative-text":"取消","positive-text":"确认",onPositiveClick:t},{trigger:n(()=>[e(j,{quaternary:"",circle:"",size:"tiny",class:"del-btn"},{icon:n(()=>[e(A,null,{default:n(()=>[e(a(we))]),_:1})]),_:1})]),default:n(()=>[T(" 是否确认删除? ")]),_:1})):i("",!0)])]),footer:n(()=>[c.value.imgs.length>0?(o(),U(F,{key:0,imgs:c.value.imgs},null,8,["imgs"])):i("",!0),e(P,{ref_key:"replyComposeRef",ref:L,comment:c.value,"at-userid":y.value,"at-username":k.value,onReload:v,onReset:b},null,8,["comment","at-userid","at-username"]),m("div",ms,[(o(!0),u(ae,null,le(c.value.replies,s=>(o(),U(S,{key:s.id,reply:s,"tweet-id":c.value.post_id,onFocusReply:I,onReload:v},null,8,["reply","tweet-id"]))),128))])]),_:2},[c.value.texts.length>0?{name:"description",fn:n(()=>[(o(!0),u(ae,null,le(c.value.texts,s=>(o(),u("span",{key:s.id,class:"comment-text",onClick:$[1]||($[1]=V(d=>R(d,c.value.id),["stop"])),innerHTML:a(he)(s.content).content},null,8,ds))),128))]),key:"0"}:void 0]),1024)])}}});const fs=ee(vs,[["__scopeId","data-v-e5cb084f"]]),hs=D=>(ye("data-v-634e6bfd"),D=D(),ke(),D),gs={key:0,class:"compose-wrap"},ys={class:"compose-line"},ks={class:"compose-user"},ws={class:"compose-line compose-options"},bs={class:"attachment"},$s={class:"submit-wrap"},Cs={class:"attachment-list-wrap"},xs={key:1,class:"compose-wrap"},Is=hs(()=>m("div",{class:"login-wrap"},[m("span",{class:"login-banner"}," 登录后,精彩更多")],-1)),Ts={key:0,class:"login-only-wrap"},zs={key:1,class:"login-wrap"},Us=W({__name:"compose-comment",props:{lock:{default:0},postId:{default:0}},emits:["post-success"],setup(D,{emit:q}){const l=D,_=Z(),h=r([]),y=r(!1),k=r(!1),L=r(!1),c=r(""),R=r(),I=r("public/image"),v=r([]),b=r([]),t=r("true".toLowerCase()==="true"),f=+"300",$="/v1/attachment",M=r(),w=zt.debounce(p=>{Ne({k:p}).then(g=>{let C=[];g.suggest.map(x=>{C.push({label:x,value:x})}),h.value=C,k.value=!1}).catch(g=>{k.value=!1})},200),A=(p,g)=>{k.value||(k.value=!0,g==="@"&&w(p))},j=p=>{p.length>f?c.value=p.substring(0,f):c.value=p},B=p=>{I.value=p},F=p=>{for(let N=0;N<p.length;N++){var g=p[N].name,C=g.split(".").slice(0,-1).join("."),x=g.split(".").pop();C.length>30&&(p[N].name=C.substring(0,18)+"..."+C.substring(C.length-9)+"."+x)}v.value=p},P=async p=>{var g,C;return I.value==="public/image"&&!["image/png","image/jpg","image/jpeg","image/gif"].includes((g=p.file.file)==null?void 0:g.type)?(window.$message.warning("图片仅允许 png/jpg/gif 格式"),!1):I.value==="image"&&((C=p.file.file)==null?void 0:C.size)>10485760?(window.$message.warning("图片大小不能超过10MB"),!1):!0},S=({file:p,event:g})=>{var C;try{let x=JSON.parse((C=g.target)==null?void 0:C.response);x.code===0&&I.value==="public/image"&&b.value.push({id:p.id,content:x.data.content})}catch{window.$message.error("上传失败")}},J=({file:p,event:g})=>{var C;try{let x=JSON.parse((C=g.target)==null?void 0:C.response);if(x.code!==0){let N=x.msg||"上传失败";x.details&&x.details.length>0&&x.details.map(E=>{N+=":"+E}),window.$message.error(N)}}catch{window.$message.error("上传失败")}},s=({file:p})=>{let g=b.value.findIndex(C=>C.id===p.id);g>-1&&b.value.splice(g,1)},d=()=>{y.value=!0},H=()=>{var p;y.value=!1,(p=R.value)==null||p.clear(),v.value=[],c.value="",b.value=[]},K=()=>{if(c.value.trim().length===0){window.$message.warning("请输入内容哦");return}let{users:p}=he(c.value);const g=[];let C=100;g.push({content:c.value,type:2,sort:C}),b.value.map(x=>{C++,g.push({content:x.content,type:3,sort:C})}),L.value=!0,je({contents:g,post_id:l.postId,users:Array.from(new Set(p))}).then(x=>{window.$message.success("发布成功"),L.value=!1,q("post-success"),H()}).catch(x=>{L.value=!1})},Y=p=>{_.commit("triggerAuth",!0),_.commit("triggerAuthKey",p)};return ve(()=>{M.value="Bearer "+localStorage.getItem("PAOPAO_TOKEN")}),(p,g)=>{const C=fe,x=it,N=te,E=se,Q=ut,_e=ct,oe=rt,pe=_t,de=pt;return o(),u("div",null,[a(_).state.userInfo.id>0?(o(),u("div",gs,[m("div",ys,[m("div",ks,[e(C,{round:"",size:30,src:a(_).state.userInfo.avatar},null,8,["src"])]),e(x,{type:"textarea",size:"large",autosize:"",bordered:!1,options:h.value,prefix:["@"],loading:k.value,value:c.value,disabled:l.lock===1,"onUpdate:value":j,onSearch:A,onFocus:d,placeholder:l.lock===1?"泡泡已被锁定,回复功能已关闭":"快来评论两句吧..."},null,8,["options","loading","value","disabled","placeholder"])]),y.value?(o(),U(de,{key:0,ref_key:"uploadRef",ref:R,abstract:"","list-type":"image",multiple:!0,max:9,action:$,headers:{Authorization:M.value},data:{type:I.value},"file-list":v.value,onBeforeUpload:P,onFinish:S,onError:J,onRemove:s,"onUpdate:fileList":F},{default:n(()=>[m("div",ws,[m("div",bs,[e(Q,{abstract:""},{default:n(({handleClick:O})=>[e(E,{disabled:v.value.length>0&&I.value==="public/video"||v.value.length===9,onClick:()=>{B("public/image"),O()},quaternary:"",circle:"",type:"primary"},{icon:n(()=>[e(N,{size:"20",color:"var(--primary-color)"},{default:n(()=>[e(a(We))]),_:1})]),_:2},1032,["disabled","onClick"])]),_:1}),e(oe,{trigger:"hover",placement:"bottom"},{trigger:n(()=>[e(_e,{class:"text-statistic",type:"circle","show-indicator":!1,status:"success","stroke-width":10,percentage:c.value.length/a(f)*100},null,8,["percentage"])]),default:n(()=>[T(" "+z(c.value.length)+" / "+z(a(f)),1)]),_:1})]),m("div",$s,[e(E,{quaternary:"",round:"",type:"tertiary",class:"cancel-btn",size:"small",onClick:H},{default:n(()=>[T(" 取消 ")]),_:1}),e(E,{loading:L.value,onClick:K,type:"primary",secondary:"",size:"small",round:""},{default:n(()=>[T(" 发布 ")]),_:1},8,["loading"])])]),m("div",Cs,[e(pe)])]),_:1},8,["headers","data","file-list"])):i("",!0)])):(o(),u("div",xs,[Is,t.value?i("",!0):(o(),u("div",Ts,[e(E,{strong:"",secondary:"",round:"",type:"primary",onClick:g[0]||(g[0]=O=>Y("signin"))},{default:n(()=>[T(" 登录 ")]),_:1})])),t.value?(o(),u("div",zs,[e(E,{strong:"",secondary:"",round:"",type:"primary",onClick:g[1]||(g[1]=O=>Y("signin"))},{default:n(()=>[T(" 登录 ")]),_:1}),e(E,{strong:"",secondary:"",round:"",type:"info",onClick:g[2]||(g[2]=O=>Y("signup"))},{default:n(()=>[T(" 注册 ")]),_:1})])):i("",!0)]))])}}});const Ps=ee(Us,[["__scopeId","data-v-634e6bfd"]]),Rs={class:"username-wrap"},Ss={key:0,class:"options"},Ls={key:0},Ms=["innerHTML"],As={class:"timestamp"},Ds={key:0},Os={key:1},qs={class:"opts-wrap"},Ns=["onClick"],js={class:"opt-item"},Bs=["onClick"],Es=["onClick"],Vs=W({__name:"post-detail",props:{post:{}},emits:["reload"],setup(D,{emit:q}){const l=D,_=Z(),h=ze(),y=r(!1),k=r(!1),L=r(!1),c=r(!1),R=r(!1),I=r(!1),v=r(!1),b=r(G.PUBLIC),t=ne({get:()=>{let s=Object.assign({texts:[],imgs:[],videos:[],links:[],attachments:[],charge_attachments:[]},l.post);return s.contents.map(d=>{(+d.type==1||+d.type==2)&&s.texts.push(d),+d.type==3&&s.imgs.push(d),+d.type==4&&s.videos.push(d),+d.type==6&&s.links.push(d),+d.type==7&&s.attachments.push(d),+d.type==8&&s.charge_attachments.push(d)}),s},set:s=>{l.post.upvote_count=s.upvote_count,l.post.comment_count=s.comment_count,l.post.collection_count=s.collection_count}}),f=ne(()=>{let s=[{label:"删除",key:"delete"}];return t.value.is_lock===0?s.push({label:"锁定",key:"lock"}):s.push({label:"解锁",key:"unlock"}),_.state.userInfo.is_admin&&(t.value.is_top===0?s.push({label:"置顶",key:"stick"}):s.push({label:"取消置顶",key:"unstick"})),t.value.visibility===G.PUBLIC?s.push({label:"公开",key:"vpublic",children:[{label:"私密",key:"vprivate"},{label:"好友可见",key:"vfriend"}]}):t.value.visibility===G.PRIVATE?s.push({label:"私密",key:"vprivate",children:[{label:"公开",key:"vpublic"},{label:"好友可见",key:"vfriend"}]}):s.push({label:"好友可见",key:"vfriend",children:[{label:"公开",key:"vpublic"},{label:"私密",key:"vprivate"}]}),s}),$=s=>{h.push({name:"post",query:{id:s}})},M=(s,d)=>{if(s.target.dataset.detail){const H=s.target.dataset.detail.split(":");if(H.length===2){_.commit("refresh"),H[0]==="tag"?h.push({name:"home",query:{q:H[1],t:"tag"}}):h.push({name:"user",query:{username:H[1]}});return}}$(d)},w=s=>{switch(s){case"delete":L.value=!0;break;case"lock":case"unlock":c.value=!0;break;case"stick":case"unstick":R.value=!0;break;case"vpublic":b.value=0,I.value=!0;break;case"vprivate":b.value=1,I.value=!0;break;case"vfriend":b.value=2,I.value=!0;break}},A=()=>{Ve({id:t.value.id}).then(s=>{window.$message.success("删除成功"),h.replace("/"),setTimeout(()=>{_.commit("refresh")},50)}).catch(s=>{v.value=!1})},j=()=>{He({id:t.value.id}).then(s=>{q("reload"),s.lock_status===1?window.$message.success("锁定成功"):window.$message.success("解锁成功")}).catch(s=>{v.value=!1})},B=()=>{Fe({id:t.value.id}).then(s=>{q("reload"),s.top_status===1?window.$message.success("置顶成功"):window.$message.success("取消置顶成功")}).catch(s=>{v.value=!1})},F=()=>{Ye({id:t.value.id,visibility:b.value}).then(s=>{q("reload"),window.$message.success("修改可见性成功")}).catch(s=>{v.value=!1})},P=()=>{Je({id:t.value.id}).then(s=>{y.value=s.status,s.status?t.value={...t.value,upvote_count:t.value.upvote_count+1}:t.value={...t.value,upvote_count:t.value.upvote_count-1}}).catch(s=>{console.log(s)})},S=()=>{Ke({id:t.value.id}).then(s=>{k.value=s.status,s.status?t.value={...t.value,collection_count:t.value.collection_count+1}:t.value={...t.value,collection_count:t.value.collection_count-1}}).catch(s=>{console.log(s)})},J=()=>{Ut(`${window.location.origin}/#/post?id=${t.value.id}`),window.$message.success("链接已复制到剪贴板")};return ve(()=>{_.state.userInfo.id>0&&(Be({id:t.value.id}).then(s=>{y.value=s.status}).catch(s=>{console.log(s)}),Ee({id:t.value.id}).then(s=>{k.value=s.status}).catch(s=>{console.log(s)}))}),(s,d)=>{const H=fe,K=me("router-link"),Y=dt,p=te,g=se,C=mt,x=vt,N=$t,E=Te,Q=Ct,_e=xt,oe=ft,pe=Ie,de=xe;return o(),u("div",{class:"detail-item",onClick:d[6]||(d[6]=O=>$(t.value.id))},[e(de,null,{avatar:n(()=>[e(H,{round:"",size:30,src:t.value.user.avatar},null,8,["src"])]),header:n(()=>[e(K,{onClick:d[0]||(d[0]=V(()=>{},["stop"])),class:"username-link",to:{name:"user",query:{username:t.value.user.username}}},{default:n(()=>[T(z(t.value.user.nickname),1)]),_:1},8,["to"]),m("span",Rs," @"+z(t.value.user.username),1),t.value.is_top?(o(),U(Y,{key:0,class:"top-tag",type:"warning",size:"small",round:""},{default:n(()=>[T(" 置顶 ")]),_:1})):i("",!0),t.value.visibility==a(G).PRIVATE?(o(),U(Y,{key:1,class:"top-tag",type:"error",size:"small",round:""},{default:n(()=>[T(" 私密 ")]),_:1})):i("",!0),t.value.visibility==a(G).FRIEND?(o(),U(Y,{key:2,class:"top-tag",type:"info",size:"small",round:""},{default:n(()=>[T(" 好友可见 ")]),_:1})):i("",!0)]),"header-extra":n(()=>[a(_).state.userInfo.is_admin||a(_).state.userInfo.id===t.value.user.id?(o(),u("div",Ss,[e(C,{placement:"bottom-end",trigger:"click",size:"small",options:f.value,onSelect:w},{default:n(()=>[e(g,{quaternary:"",circle:""},{icon:n(()=>[e(p,null,{default:n(()=>[e(a(Ge))]),_:1})]),_:1})]),_:1},8,["options"])])):i("",!0),e(x,{show:L.value,"onUpdate:show":d[1]||(d[1]=O=>L.value=O),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定删除该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:A},null,8,["show"]),e(x,{show:c.value,"onUpdate:show":d[2]||(d[2]=O=>c.value=O),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定"+(t.value.is_lock?"解锁":"锁定")+"该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:j},null,8,["show","content"]),e(x,{show:R.value,"onUpdate:show":d[3]||(d[3]=O=>R.value=O),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定"+(t.value.is_top?"取消置顶":"置顶")+"该泡泡动态吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:B},null,8,["show","content"]),e(x,{show:I.value,"onUpdate:show":d[4]||(d[4]=O=>I.value=O),"mask-closable":!1,preset:"dialog",title:"提示",content:"确定将该泡泡动态可见度修改为"+(b.value==0?"公开":b.value==1?"私密":"好友可见")+"吗?","positive-text":"确认","negative-text":"取消",onPositiveClick:F},null,8,["show","content"])]),footer:n(()=>[e(N,{attachments:t.value.attachments},null,8,["attachments"]),e(N,{attachments:t.value.charge_attachments,price:t.value.attachment_price},null,8,["attachments","price"]),e(E,{imgs:t.value.imgs},null,8,["imgs"]),e(Q,{videos:t.value.videos,full:!0},null,8,["videos"]),e(_e,{links:t.value.links},null,8,["links"]),m("div",As,[T(" 发布于 "+z(a(ie)(t.value.created_on))+" ",1),t.value.ip_loc?(o(),u("span",Ds,[e(oe,{vertical:""}),T(" "+z(t.value.ip_loc),1)])):i("",!0),!a(_).state.collapsedLeft&&t.value.created_on!=t.value.latest_replied_on?(o(),u("span",Os,[e(oe,{vertical:""}),T(" 最后回复 "+z(a(ie)(t.value.latest_replied_on)),1)])):i("",!0)])]),action:n(()=>[m("div",qs,[e(pe,{justify:"space-between"},{default:n(()=>[m("div",{class:"opt-item hover",onClick:V(P,["stop"])},[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[y.value?i("",!0):(o(),U(a(Xe),{key:0})),y.value?(o(),U(a(Ze),{key:1,color:"red"})):i("",!0)]),_:1}),T(" "+z(t.value.upvote_count),1)],8,Ns),m("div",js,[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[e(a(et))]),_:1}),T(" "+z(t.value.comment_count),1)]),m("div",{class:"opt-item hover",onClick:V(S,["stop"])},[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[k.value?i("",!0):(o(),U(a(tt),{key:0})),k.value?(o(),U(a(st),{key:1,color:"#ff7600"})):i("",!0)]),_:1}),T(" "+z(t.value.collection_count),1)],8,Bs),m("div",{class:"opt-item hover",onClick:V(J,["stop"])},[e(p,{size:"20",class:"opt-item-icon"},{default:n(()=>[e(a(ot))]),_:1}),T(" "+z(t.value.share_count),1)],8,Es)]),_:1})])]),default:n(()=>[t.value.texts.length>0?(o(),u("div",Ls,[(o(!0),u(ae,null,le(t.value.texts,O=>(o(),u("span",{key:O.id,class:"post-text",onClick:d[5]||(d[5]=V(Ue=>M(Ue,t.value.id),["stop"])),innerHTML:a(he)(O.content).content},null,8,Ms))),128))])):i("",!0)]),_:1})])}}});const Hs=D=>(ye("data-v-0d01659f"),D=D(),ke(),D),Fs={key:0,class:"detail-wrap"},Ys={key:1,class:"empty-wrap"},Js={key:0,class:"comment-opts-wrap"},Ks=Hs(()=>m("span",{class:"comment-title-item"},"评论",-1)),Qs={key:2},Ws={key:0,class:"skeleton-wrap"},Gs={key:1},Xs={key:0,class:"empty-wrap"},Zs={key:0,class:"load-more-spinner"},eo={key:1,class:"load-more-spinner"},to={key:2,class:"load-more-spinner"},so={key:3,class:"load-more-spinner"},X=20,oo=W({__name:"Post",setup(D){const q=It(),l=r({}),_=r(!1),h=r(!1),y=r([]),k=ne(()=>+q.query.id),L=r("default"),c=r(!0);let R={loading(){},loaded(){},complete(){},error(){}};const I=P=>{L.value=P,P==="default"&&(c.value=!0),B(R)},v=()=>{l.value={id:0},_.value=!0,Qe({id:k.value}).then(P=>{_.value=!1,l.value=P,B(R)}).catch(P=>{_.value=!1})};let b=1;const t=r(!1),f=r([]),$=P=>{t.value||ge({id:l.value.id,sort_strategy:"default",page:b,page_size:X}).then(S=>{P!==null&&(R=P),S.list.length<X?t.value=!0:b++,S.list.length>0&&(b===1?f.value=S.list:f.value.push(...S.list),y.value=f.value),R.loaded(),h.value=!1}).catch(S=>{h.value=!1,R.error()})};let M=1,w=r(!1);const A=r([]),j=P=>{w.value||ge({id:l.value.id,sort_strategy:"newest",page:M,page_size:X}).then(S=>{P!==null&&(R=P),S.list.length<X?w.value=!0:M++,S.list.length>0&&(M===1?A.value=S.list:A.value.push(...S.list),y.value=A.value),R.loaded(),h.value=!1}).catch(S=>{h.value=!1,R.error()})},B=P=>{k.value<1||(y.value.length===0&&(h.value=!0),L.value==="default"?(y.value=f.value,$(P)):(y.value=A.value,j(P)),h.value=!1)},F=()=>{b=1,t.value=!1,f.value=[],M=1,w.value=!1,A.value=[],B(R)};return ve(()=>{v()}),Re(k,()=>{k.value>0&&q.name==="post"&&v()}),(P,S)=>{const J=Pt,s=Vs,d=gt,H=yt,K=kt,Y=wt,p=bt,g=Ps,C=Tt,x=fs,N=Ie,E=ht;return o(),u("div",null,[e(J,{title:"泡泡详情",back:!0}),e(E,{class:"main-content-wrap",bordered:""},{default:n(()=>[e(K,null,{default:n(()=>[e(H,{show:_.value},{default:n(()=>[l.value.id>1?(o(),u("div",Fs,[e(s,{post:l.value,onReload:v},null,8,["post"])])):(o(),u("div",Ys,[e(d,{size:"large",description:"暂无数据"})]))]),_:1},8,["show"])]),_:1}),l.value.id>0?(o(),u("div",Js,[e(p,{type:"bar","justify-content":"end",size:"small",animated:"","onUpdate:value":I},{prefix:n(()=>[Ks]),default:n(()=>[e(Y,{name:"default",tab:"默认"}),e(Y,{name:"newest",tab:"最新"})]),_:1})])):i("",!0),l.value.id>0?(o(),U(K,{key:1},{default:n(()=>[e(g,{lock:l.value.is_lock,"post-id":l.value.id,onPostSuccess:F},null,8,["lock","post-id"])]),_:1})):i("",!0),l.value.id>0?(o(),u("div",Qs,[h.value?(o(),u("div",Ws,[e(C,{num:5})])):(o(),u("div",Gs,[y.value.length===0?(o(),u("div",Xs,[e(d,{size:"large",description:"暂无评论,快来抢沙发"})])):i("",!0),(o(!0),u(ae,null,le(y.value,Q=>(o(),U(K,{key:Q.id},{default:n(()=>[e(x,{comment:Q,onReload:F},null,8,["comment"])]),_:2},1024))),128))]))])):i("",!0),y.value.length>=X?(o(),U(N,{key:3,justify:"center"},{default:n(()=>[e(a(Rt),{class:"load-more",slots:{complete:"没有更多数据了",error:"加载出错"},onInfinite:B},{spinner:n(()=>[c.value&&t.value?(o(),u("span",Zs)):i("",!0),!c.value&&a(w)?(o(),u("span",eo)):i("",!0),c.value&&!t.value?(o(),u("span",to,"加载评论")):i("",!0),!c.value&&!a(w)?(o(),u("span",so,"加载评论")):i("",!0)]),_:1})]),_:1})):i("",!0)]),_:1})])}}});const Oo=ee(oo,[["__scopeId","data-v-0d01659f"]]);export{Oo as default};
|