mirror of
https://git-qiuchenly.yltfspace.com/QiuChenly/corepatch
synced 2025-11-25 05:40:27 +08:00
### 后端更新 性能优化 - Redis、数据库索引优化, 复杂联表查询查询速度从10秒降低到500ms 功能增强 - 统一文件上传 API - 论坛权限管理优化 ### 前端更新 问题修复 - 统一错误提示、组件复用、图标本地化、密码加密传输、大文件分片上传 新增功能 - 全局通知系统、WebSocket 实时消息、图标批量同步、IP 封禁管理、应用版本批量查询、头像上传、TypeScript 类型完善、讨论区功能增强 代码优化 - 删除冗余组件、统一 API 错误处理、优化代码结构、统一 UI 风格
12 lines
3.0 KiB
JavaScript
12 lines
3.0 KiB
JavaScript
import{d as e,r as a,f as s,w as l,P as t,c as o,g as i,i as n,j as u,k as r,l as c,m as v,t as d,q as b,v as p,T as m,e as f,n as k}from"./Cf-ihD4f.js"
|
|
import{b as g,_ as y,a as U}from"./C_NDl53k.js"
|
|
const h={class:"avatar-background"},w={class:"background-avatar-blur"},R=["src"],x={class:"card-content"},I={class:"content-layout"},L={class:"avatar-wrapper"},j={class:"user-info"},C={class:"user-name"},_={class:"action-buttons"},N=U(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}},emits:["close","sendMessage","blockUser","mouseEnter"],setup(e,{emit:U}){const N=e,M=U,O=a(null),T=a(null),W=a(""),$=e=>{W.value&&W.value.startsWith("blob:")&&URL.revokeObjectURL(W.value),W.value=URL.createObjectURL(e)},B=s(()=>N.position?T.value?{left:`${T.value.x}px`,top:`${T.value.y}px`}:{left:`${N.position.x}px`,top:`${N.position.y}px`}:{})
|
|
l(()=>[N.visible,N.position],()=>{T.value=null,N.visible&&N.position&&k(()=>{(()=>{if(!N.position||!O.value)return
|
|
const e=O.value.getBoundingClientRect(),a=e.width||260,s=e.height||240,l=16
|
|
let t=N.position.x,o=N.position.y
|
|
const i=window.innerWidth,n=window.innerHeight
|
|
t+a>i-l&&(t=i-a-l),t<l&&(t=l),o+s>n-l&&(o=N.position.y-l>=s?N.position.y-s-8:n-s-l),o<l&&(o=l),T.value={x:t,y:o}})()})},{immediate:!0})
|
|
const E=a(null),P=()=>{E.value&&(clearTimeout(E.value),E.value=null),M("close")},q=()=>{E.value&&(clearTimeout(E.value),E.value=null),M("mouseEnter")},z=()=>{E.value=window.setTimeout(()=>{P()},300)},H=()=>{M("sendMessage",N.userId,N.userName),P()},A=()=>{M("blockUser",N.userId,N.userName),P()}
|
|
return t(()=>{W.value&&W.value.startsWith("blob:")&&URL.revokeObjectURL(W.value)}),l(()=>N.visible,e=>{!e&&W.value&&W.value.startsWith("blob:")&&(URL.revokeObjectURL(W.value),W.value="")}),(a,s)=>(f(),o(m,{to:"body"},[i(n,{name:"card-fade"},{default:u(()=>[e.visible?(f(),r("div",{key:0,class:"card-overlay",onClick:P},[v("div",{ref_key:"cardContainerRef",ref:O,class:"card-container",style:b(B.value),onClick:s[0]||(s[0]=d(()=>{},["stop"])),onMouseenter:q,onMouseleave:z},[v("div",h,[v("div",w,[W.value?(f(),r("img",{key:0,src:W.value,alt:"",class:"background-image"},null,8,R)):c("",!0)]),s[1]||(s[1]=v("div",{class:"background-overlay"},null,-1))]),v("div",x,[v("div",I,[v("div",L,[i(g,{size:"large",userId:e.userId,"user-name":e.userName,"avatar-id":e.avatarId,width:80,height:80,"on-avatar-loaded":$},null,8,["userId","user-name","avatar-id"]),s[2]||(s[2]=v("div",{class:"online-indicator"},null,-1))]),v("div",j,[v("div",C,p(e.userName),1)])]),v("div",_,[v("button",{class:"action-btn message-btn",onClick:H},[i(y,{icon:"fluent-color:comment-multiple-32",class:"btn-icon"}),s[3]||(s[3]=v("span",null,"私信",-1))]),v("button",{class:"action-btn block-btn",onClick:A},[i(y,{icon:"mdi:block-helper",class:"btn-icon"}),s[4]||(s[4]=v("span",null,"拉黑",-1))])])])],36)])):c("",!0)]),_:1})]))}}),[["__scopeId","data-v-2b4c3d26"]])
|
|
export{N as U}
|