import{_ as Q,b as g,l as $,c as z,h as u,a as t,k as U,e as a,r as d,g as n,u as V,K as W,t as _,j as y,x as X,J as Y,E as c,o as m}from"./index-BZ-MVW6h.js";const Z={class:"media-upload-container"},ee={class:"upload-config"},te={class:"config-item"},ae={class:"config-item"},le={key:0,class:"upload-queue"},oe={key:1,class:"upload-results"},se={__name:"MediaUpload",setup(ne){const f=g("image"),v=g("temp"),i=g([]),w=g([]),L=g("/api/upload/media"),T=$(()=>({Authorization:"Bearer "+localStorage.getItem("token")||""})),D=$(()=>({media_type:f.value,storage_type:v.value})),S=l=>{if(l===0)return"0 B";const e=1024,s=["B","KB","MB","GB","TB"],p=Math.floor(Math.log(l)/Math.log(e));return parseFloat((l/Math.pow(e,p)).toFixed(2))+" "+s[p]},E=l=>new Date(l).toLocaleString(),I=l=>{switch(l){case"uploading":return"progress";case"success":return"success";case"error":return"exception";default:return"progress"}},F=l=>{switch(l){case"ready":return"info";case"uploading":return"warning";case"success":return"success";case"error":return"danger";default:return"info"}},N=l=>{switch(l){case"ready":return"等待上传";case"uploading":return"上传中";case"success":return"成功";case"error":return"失败";default:return"未知"}},R=(l,e)=>{c.warning(`当前限制单次上传10个文件,本次选择了${l.length}个文件,将自动忽略超出的文件。`)},A=l=>{const e=K();return l.size>e?(c.error(`文件大小不能超过${S(e)}`),!1):!0},K=()=>({image:2097152,video:104857600,voice:2097152,thumb:65536})[f.value]||2*1024*1024,P=(l,e,s)=>{},j=(l,e,s)=>{if(l.code===200){const p={name:e.name,type:f.value,url:l.data.url,media_id:l.data.media_id,storage:v.value,created_at:new Date().toISOString()};w.value.unshift(p),c.success(`文件 "${e.name}" 上传成功`)}else c.error(`文件 "${e.name}" 上传失败:${l.message}`)},q=(l,e,s)=>{c.error(`文件 "${e.name}" 上传失败:${l.message||"网络错误"}`)},G=l=>{const e=i.value.findIndex(s=>s.uid===l.uid);e!==-1&&i.value.splice(e,1)},B=l=>{navigator.clipboard.writeText(l).then(()=>{c.success("链接复制成功!")}).catch(()=>{c.error("链接复制失败,请手动复制")})};return(l,e)=>{const s=d("el-radio-button"),p=d("el-radio-group"),M=d("el-card"),h=d("el-icon"),H=d("el-upload"),r=d("el-table-column"),J=d("el-progress"),k=d("el-tag"),x=d("el-button"),C=d("el-table"),O=d("el-input");return m(),z("div",Z,[e[15]||(e[15]=u("h2",null,"上传媒体",-1)),t(M,{class:"upload-config-card"},{default:a(()=>[u("div",ee,[u("div",te,[e[7]||(e[7]=u("span",{class:"config-label"},"媒体类型:",-1)),t(p,{modelValue:f.value,"onUpdate:modelValue":e[0]||(e[0]=o=>f.value=o),size:"small"},{default:a(()=>[t(s,{label:"image"},{default:a(()=>[...e[3]||(e[3]=[n("图片",-1)])]),_:1}),t(s,{label:"video"},{default:a(()=>[...e[4]||(e[4]=[n("视频",-1)])]),_:1}),t(s,{label:"voice"},{default:a(()=>[...e[5]||(e[5]=[n("音频",-1)])]),_:1}),t(s,{label:"thumb"},{default:a(()=>[...e[6]||(e[6]=[n("缩略图",-1)])]),_:1})]),_:1},8,["modelValue"])]),u("div",ae,[e[10]||(e[10]=u("span",{class:"config-label"},"存储类型:",-1)),t(p,{modelValue:v.value,"onUpdate:modelValue":e[1]||(e[1]=o=>v.value=o),size:"small"},{default:a(()=>[t(s,{label:"temp"},{default:a(()=>[...e[8]||(e[8]=[n("临时媒体 (3天有效期)",-1)])]),_:1}),t(s,{label:"permanent"},{default:a(()=>[...e[9]||(e[9]=[n("永久媒体",-1)])]),_:1})]),_:1},8,["modelValue"])])])]),_:1}),t(M,{class:"upload-card"},{default:a(()=>[t(H,{"file-list":i.value,"onUpdate:fileList":e[2]||(e[2]=o=>i.value=o),action:L.value,headers:T.value,data:D.value,multiple:!0,limit:10,"on-exceed":R,"on-success":j,"on-error":q,"on-progress":P,"before-upload":A,drag:"",accept:"image/*,video/*,audio/*",class:"upload-dragger"},{tip:a(()=>[...e[11]||(e[11]=[u("div",{class:"el-upload__tip"}," 支持上传图片、视频、音频和缩略图文件,单次最多上传10个文件 ",-1)])]),default:a(()=>[t(h,{class:"el-icon--upload"},{default:a(()=>[t(V(W))]),_:1}),e[12]||(e[12]=u("div",{class:"el-upload__text"},[n(" 将文件拖到此处,或 "),u("em",null,"点击上传")],-1))]),_:1},8,["file-list","action","headers","data"])]),_:1}),i.value.length>0?(m(),z("div",le,[u("h3",null,"上传队列 ("+_(i.value.length)+")",1),t(C,{data:i.value,border:"",stripe:"",size:"small"},{default:a(()=>[t(r,{prop:"name",label:"文件名","min-width":"200"}),t(r,{prop:"size",label:"文件大小",width:"120"},{default:a(o=>[n(_(S(o.row.size)),1)]),_:1}),t(r,{prop:"percentage",label:"进度",width:"150"},{default:a(o=>[o.row.status!=="success"?(m(),y(J,{key:0,percentage:o.row.percentage||0,status:I(o.row.status),"stroke-width":"8"},null,8,["percentage","status"])):(m(),y(k,{key:1,type:"success"},{default:a(()=>[...e[13]||(e[13]=[n("上传成功",-1)])]),_:1}))]),_:1}),t(r,{label:"状态",width:"100"},{default:a(o=>[t(k,{type:F(o.row.status)},{default:a(()=>[n(_(N(o.row.status)),1)]),_:2},1032,["type"])]),_:1}),t(r,{label:"操作",width:"100",fixed:"right"},{default:a(o=>[o.row.status!=="success"?(m(),y(x,{key:0,type:"danger",size:"small",onClick:b=>G(o.row)},{default:a(()=>[t(h,null,{default:a(()=>[t(V(X))]),_:1})]),_:1},8,["onClick"])):(m(),y(x,{key:1,type:"primary",size:"small",onClick:b=>B(o.row.response.url)},{default:a(()=>[t(h,null,{default:a(()=>[t(V(Y))]),_:1})]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["data"])])):U("",!0),w.value.length>0?(m(),z("div",oe,[u("h3",null,"上传结果 ("+_(w.value.length)+")",1),t(C,{data:w.value,border:"",stripe:"",size:"small"},{default:a(()=>[t(r,{prop:"name",label:"文件名","min-width":"200"}),t(r,{prop:"type",label:"类型",width:"100"}),t(r,{prop:"url",label:"访问地址","min-width":"300"},{default:a(o=>[t(O,{modelValue:o.row.url,"onUpdate:modelValue":b=>o.row.url=b,readonly:"",size:"small",class:"url-input"},{append:a(()=>[t(x,{type:"primary",size:"small",onClick:b=>B(o.row.url)},{default:a(()=>[...e[14]||(e[14]=[n(" 复制 ",-1)])]),_:1},8,["onClick"])]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:1}),t(r,{prop:"media_id",label:"媒体ID","min-width":"200"}),t(r,{prop:"created_at",label:"上传时间",width:"180"},{default:a(o=>[n(_(E(o.row.created_at)),1)]),_:1}),t(r,{prop:"storage",label:"存储类型",width:"120"},{default:a(o=>[t(k,{type:o.row.storage==="permanent"?"success":"info"},{default:a(()=>[n(_(o.row.storage==="permanent"?"永久":"临时"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])])):U("",!0)])}}},ue=Q(se,[["__scopeId","data-v-67e6f7bf"]]);export{ue as default};