Files
CoreInject/frontend/dist/assets/Dwaf2c4D.js
2025-11-13 18:28:21 +08:00

19 lines
3.9 KiB
JavaScript

import{d as e,r as a,f as s,w as l,Q as u,c as t,g as n,i,j as o,k as r,l as v,m as c,t as d,q as m,b,x as p,T as f,e as k,n as y}from"./PkdM_Em6.js"
import{b as g,_ as I,A as U,a as h}from"./iUIDG-9P.js"
import{u as w}from"./Do10fZI7.js"
const x={key:0,class:"background-avatar-blur"},R=["src"],j={class:"card-content"},L={class:"content-layout"},C={class:"avatar-wrapper"},_={class:"user-info"},O={class:"user-name-row"},N={class:"user-name"},M={class:"user-username"},T={class:"action-buttons"},W=h(e({__name:"UserProfileCard",props:{visible:{type:Boolean,default:!1},userId:{default:""},userName:{default:""},position:{default:void 0},avatarUrl:{default:void 0},avatarId:{default:void 0},username:{default:void 0}},emits:["close","sendMessage","blockUser","mouseEnter"],setup(e,{emit:h}){const W=e,$=h,q=a(null),B=a(null),E=a(""),z=a(!1),{isUserOnline:A,queryUsersOnlineStatus:H}=w(),P=s(()=>A(W.userId)),Q=s(()=>z.value&&""!==E.value),S=a(""),D=s(()=>S.value||W.userId||"未知用户"),F=s(()=>!0===P.value?"在线":!1===P.value?"离线":"未知")
l(()=>[W.visible,W.userId,W.username],()=>{W.visible&&W.userId&&((async()=>{if(W.username)S.value=W.username
else if(W.userId)try{const e=await U.getUserInfo(W.userId)
e&&e.username&&(S.value=e.username)}catch(e){}})(),H([W.userId]))},{immediate:!0})
const G=e=>{z.value=!0,E.value&&E.value.startsWith("blob:")&&URL.revokeObjectURL(E.value),E.value=URL.createObjectURL(e)}
l(()=>W.visible,e=>{e?z.value=!1:(z.value=!1,E.value&&E.value.startsWith("blob:")&&(URL.revokeObjectURL(E.value),E.value=""))})
const J=s(()=>W.position?B.value?{left:`${B.value.x}px`,top:`${B.value.y}px`}:{left:`${W.position.x}px`,top:`${W.position.y}px`}:{})
l(()=>[W.visible,W.position],()=>{B.value=null,W.visible&&W.position&&y(()=>{(()=>{if(!W.position||!q.value)return
const e=q.value.getBoundingClientRect(),a=e.width||260,s=e.height||240,l=16
let u=W.position.x,t=W.position.y
const n=window.innerWidth,i=window.innerHeight
u+a>n-l&&(u=n-a-l),u<l&&(u=l),t+s>i-l&&(t=W.position.y-l>=s?W.position.y-s-8:i-s-l),t<l&&(t=l),B.value={x:u,y:t}})()})},{immediate:!0})
const K=a(null),V=()=>{K.value&&(clearTimeout(K.value),K.value=null),$("close")},X=()=>{K.value&&(clearTimeout(K.value),K.value=null),$("mouseEnter")},Y=()=>{K.value=window.setTimeout(()=>{V()},300)},Z=()=>{$("sendMessage",W.userId,W.userName),V()},ee=()=>{$("blockUser",W.userId,W.userName),V()}
return u(()=>{E.value&&E.value.startsWith("blob:")&&URL.revokeObjectURL(E.value)}),(a,s)=>(k(),t(f,{to:"body"},[n(i,{name:"card-fade"},{default:o(()=>[e.visible?(k(),r("div",{key:0,class:"card-overlay",onClick:V},[c("div",{ref_key:"cardContainerRef",ref:q,class:"card-container",style:m(J.value),onClick:s[0]||(s[0]=d(()=>{},["stop"])),onMouseenter:X,onMouseleave:Y},[c("div",{class:b(["avatar-background",{"has-avatar":Q.value}])},[Q.value?(k(),r("div",x,[E.value?(k(),r("img",{key:0,src:E.value,alt:"",class:"background-image"},null,8,R)):v("",!0)])):v("",!0),s[1]||(s[1]=c("div",{class:"background-overlay"},null,-1))],2),c("div",j,[c("div",L,[c("div",C,[n(g,{size:"large",userId:e.userId,"user-name":e.userName,"avatar-id":e.avatarId,width:80,height:80,"on-avatar-loaded":G},null,8,["userId","user-name","avatar-id"]),c("div",{class:b(["online-indicator",{online:P.value,offline:!1===P.value}])},null,2)]),c("div",_,[c("div",O,[c("div",N,p(e.userName),1),c("span",{class:b(["user-status",{online:P.value,offline:!1===P.value}])},[s[2]||(s[2]=c("span",{class:"status-dot"},null,-1)),c("span",null,p(F.value),1)],2)]),c("div",M,"@"+p(D.value),1),s[3]||(s[3]=c("div",{class:"user-info-backdrop"},null,-1))])]),c("div",T,[c("button",{class:"action-btn message-btn",onClick:Z},[n(I,{icon:"fluent-color:comment-multiple-32",class:"btn-icon"}),s[4]||(s[4]=c("span",null,"私信",-1))]),c("button",{class:"action-btn block-btn",onClick:ee},[n(I,{icon:"mdi:block-helper",class:"btn-icon"}),s[5]||(s[5]=c("span",null,"拉黑",-1))])])])],36)])):v("",!0)]),_:1})]))}}),[["__scopeId","data-v-379de16d"]])
export{W as U}