Files
CoreInject/frontend/dist/assets/DHc4z5Hj.js
QiuChenly 8394c93e6c 性能优化、错误修复
### 后端更新

性能优化
- Redis、数据库索引优化, 复杂联表查询查询速度从10秒降低到500ms

功能增强
- 统一文件上传 API
- 论坛权限管理优化

### 前端更新

问题修复
- 统一错误提示、组件复用、图标本地化、密码加密传输、大文件分片上传

新增功能
- 全局通知系统、WebSocket 实时消息、图标批量同步、IP 封禁管理、应用版本批量查询、头像上传、TypeScript 类型完善、讨论区功能增强

代码优化
- 删除冗余组件、统一 API 错误处理、优化代码结构、统一 UI 风格
2025-11-13 03:02:01 +08:00

12 lines
3.0 KiB
JavaScript

import{d as e,r as a,f as l,w as i,o as n,c as s,g as o,i as t,j as v,k as u,l as r,m as d,t as m,v as c,T as g,e as f,n as p}from"./Cf-ihD4f.js"
import{_ as h,a as k}from"./C_NDl53k.js"
const y={class:"image-container"},b=["src","alt"],w={key:1,class:"loading-state"},I={key:2,class:"error-state"},x={key:2,class:"image-info"},C={class:"image-index"},B={key:0,class:"image-size"},_=k(e({__name:"ImagePreviewModal",props:{visible:{type:Boolean},imageUrl:{default:null},images:{default:()=>[]},imagesInfo:{default:()=>[]},initialIndex:{default:0},showNavigation:{type:Boolean,default:!0},showInfo:{type:Boolean,default:!0}},emits:["close","indexChange"],setup(e,{emit:k}){const _=e,$=k,j=a(_.initialIndex),E=a(null),N=a(!1),U=a(!1),z=l(()=>_.imagesInfo&&_.imagesInfo.length>0?_.imagesInfo.map(e=>e.url):_.images&&_.images.length>0?_.images:_.imageUrl?[_.imageUrl]:[]),A=l(()=>{if(_.imagesInfo&&_.imagesInfo.length>0){const e=_.imagesInfo[j.value]
return null==e?void 0:e.size}}),F=()=>{if(0===z.value.length)return void(E.value=null)
const e=z.value[j.value]
if(!e)return U.value=!0,void(E.value=null)
N.value=!1,U.value=!1,E.value=e},K=()=>{j.value>0&&(j.value--,$("indexChange",j.value))},L=()=>{j.value<z.value.length-1&&(j.value++,$("indexChange",j.value))},M=()=>{$("close")},S=e=>{"Escape"===e.key?M():"ArrowLeft"===e.key?K():"ArrowRight"===e.key&&L()},q=()=>{U.value=!1},P=()=>{U.value=!0,E.value=null}
return i(()=>_.visible,e=>{e?(j.value=_.initialIndex,F(),p(()=>{const e=document.querySelector(".image-preview-modal")
e&&e.focus()})):(E.value=null,N.value=!1,U.value=!1)},{immediate:!0}),i(j,()=>{F()}),i(()=>_.images,()=>{_.visible&&F()}),n(()=>{_.visible&&F()}),(a,l)=>(f(),s(g,{to:"body"},[o(t,{name:"preview-fade"},{default:v(()=>{return[e.visible?(f(),u("div",{key:0,class:"image-preview-modal",onClick:M,onKeydown:S,tabindex:"-1"},[d("div",{class:"preview-content",onClick:l[0]||(l[0]=m(()=>{},["stop"]))},[e.showNavigation&&j.value>0?(f(),u("button",{key:0,class:"nav-btn prev-btn",onClick:m(K,["stop"]),title:"上一张 (←)"},[o(h,{icon:"mdi:chevron-left"})])):r("",!0),d("div",y,[E.value?(f(),u("img",{key:0,src:E.value,alt:`图片 ${j.value+1}`,onLoad:q,onError:P},null,40,b)):N.value?(f(),u("div",w,[...l[1]||(l[1]=[d("div",{class:"spinner"},null,-1),d("p",null,"加载中...",-1)])])):U.value?(f(),u("div",I,[o(h,{icon:"mdi:image-broken"}),l[2]||(l[2]=d("p",null,"图片加载失败",-1))])):r("",!0)]),e.showNavigation&&j.value<z.value.length-1?(f(),u("button",{key:1,class:"nav-btn next-btn",onClick:m(L,["stop"]),title:"下一张 (→)"},[o(h,{icon:"mdi:chevron-right"})])):r("",!0),d("button",{class:"close-preview-btn",onClick:m(M,["stop"]),title:"关闭 (ESC)"},[o(h,{icon:"mdi:close"})]),e.showInfo&&z.value.length>0?(f(),u("div",x,[d("span",C,c(j.value+1)+" / "+c(z.value.length),1),A.value?(f(),u("span",B,c((a=A.value,a?a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`:"")),1)):r("",!0)])):r("",!0)])],32)):r("",!0)]
var a}),_:1})]))}}),[["__scopeId","data-v-a54a074d"]])
export{_ as I}