Files
chuanggao-website/client/dist/assets/MediaSelector-DyRQc9ag.js
2026-05-12 16:53:18 +08:00

2 lines
3.8 KiB
JavaScript

import{d as P,g as r,b as u,e as n,m as a,z as o,j as c,k as z,t as h,s as j,F as H,h as J,i as R,H as q,r as i,J as C,C as m,T as A,_ as G}from"./index-eVF4AHSu.js";import{f as K,u as O,d as Q}from"./upload-C79x1DTb.js";const W={class:"media-selector"},X={class:"selector-row"},Y={key:0,class:"preview-row"},Z=["src"],ee={class:"media-toolbar"},le={class:"media-count"},te={class:"media-grid"},ae=["onClick"],oe=["src","alt"],se={class:"media-info"},ne=["title"],ie={key:0,class:"empty-state"},de={class:"media-pagination"},re=P({__name:"MediaSelector",props:{modelValue:{default:""},usedIn:{default:"other"},fileType:{default:"image"}},emits:["update:modelValue"],setup(v,{emit:N}){const w=v,k=N,p=i(!1),g=i(!1),M=i(!1),U=i([]),S=i(0),_=i(1),x=i(20),f=i("");async function y(){g.value=!0;try{const t=await K({fileType:w.fileType,page:_.value,size:x.value});U.value=t.records,S.value=t.total}catch(t){console.warn("[MediaSelector] fetchMediaList failed:",t)}finally{g.value=!1}}function b(){f.value=w.modelValue||"",_.value=1,y(),p.value=!0}async function L(t){var V;const e=t.target,s=(V=e.files)==null?void 0:V[0];if(s){M.value=!0;try{const d=await O(s,w.usedIn);d.fullUrl&&(f.value=d.fullUrl),C.success("上传成功"),await y()}catch(d){console.error("[MediaSelector] upload failed:",d),C.error("上传失败")}finally{M.value=!1,e.value=""}}}function T(t){f.value=t.fullUrl||""}function D(){k("update:modelValue",f.value),p.value=!1}async function $(t){try{await Q(t.id),C.success("删除成功"),await y()}catch(e){console.error("[MediaSelector] delete failed:",e),C.error("删除失败")}}return(t,e)=>{const s=m("el-button"),V=m("el-input"),d=m("el-upload"),B=m("el-pagination"),E=m("el-dialog"),F=A("loading");return r(),u("div",W,[n("div",X,[a(V,{"model-value":v.modelValue,"onUpdate:modelValue":e[0]||(e[0]=l=>k("update:modelValue",l)),placeholder:"图片URL或点击右侧选择"},{append:o(()=>[a(s,{onClick:b},{default:o(()=>[...e[7]||(e[7]=[c("选择图片",-1)])]),_:1})]),_:1},8,["model-value"])]),v.modelValue?(r(),u("div",Y,[n("img",{src:v.modelValue,alt:"预览",class:"preview-img",onError:e[1]||(e[1]=l=>l.target.style.display="none")},null,40,Z),a(s,{size:"small",type:"danger",text:"",onClick:e[2]||(e[2]=l=>k("update:modelValue",""))},{default:o(()=>[...e[8]||(e[8]=[c("清除",-1)])]),_:1})])):z("",!0),a(E,{modelValue:p.value,"onUpdate:modelValue":e[6]||(e[6]=l=>p.value=l),title:"选择图片",width:"800px","destroy-on-close":""},{footer:o(()=>[a(s,{onClick:e[5]||(e[5]=l=>p.value=!1)},{default:o(()=>[...e[11]||(e[11]=[c("取消",-1)])]),_:1}),a(s,{type:"primary",onClick:D},{default:o(()=>[...e[12]||(e[12]=[c("确定",-1)])]),_:1})]),default:o(()=>[n("div",ee,[a(d,{"show-file-list":!1,"auto-upload":!1,"on-change":L,accept:"image/*"},{default:o(()=>[a(s,{type:"primary",loading:M.value},{default:o(()=>[...e[9]||(e[9]=[c("上传新图片",-1)])]),_:1},8,["loading"])]),_:1}),n("span",le,"共 "+h(S.value)+" 张图片",1)]),j((r(),u("div",te,[(r(!0),u(H,null,J(U.value,l=>(r(),u("div",{key:l.id,class:R(["media-item",{selected:f.value===l.fullUrl}]),onClick:I=>T(l)},[n("img",{src:l.fullUrl,alt:l.fileName,class:"media-thumb"},null,8,oe),n("div",se,[n("span",{class:"media-name",title:l.fileName},h(l.fileName),9,ne),a(s,{size:"small",type:"danger",text:"",onClick:q(I=>$(l),["stop"])},{default:o(()=>[...e[10]||(e[10]=[c("删除",-1)])]),_:1},8,["onClick"])])],10,ae))),128)),!g.value&&U.value.length===0?(r(),u("div",ie,"暂无图片")):z("",!0)])),[[F,g.value]]),n("div",de,[a(B,{"current-page":_.value,"onUpdate:currentPage":e[3]||(e[3]=l=>_.value=l),"page-size":x.value,"onUpdate:pageSize":e[4]||(e[4]=l=>x.value=l),total:S.value,layout:"prev, pager, next",small:"",onCurrentChange:y},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"])])}}}),pe=G(re,[["__scopeId","data-v-74831566"]]);export{pe as M};