import{Z as y,a2 as X,_ as Y,z as ee,r as d,O as L,a3 as le,D as ae,j as i,h as H,o as S,w as t,e as s,c as F,I as te,J as se,f as a,m as O,B as C,i as oe,a4 as P}from"./index-CrAWI0wi.js";function xe(o){return y({url:"/file/info/list",method:"get",params:o})}function Ie(o){return y({url:"/file/info/"+o,method:"delete"})}function Ue({storageType:o,clientName:h,filePath:g}){return y({url:`/file/${o}/${h}/download`,method:"get",params:{filePath:g},responseType:"blob",headers:{Authorization:"Bearer "+X()}})}function ne(){return y({url:"/file/client-list",method:"get"})}function ue(o){return y({url:"/file/initUpload",method:"post",params:{fileName:o.fileName,fileSize:o.fileSize,fileType:o.fileType,bucketName:o.clientName}})}function ie(o,h,g,z){const b=new FormData;return b.append("chunk",z),y({url:"/file/uploadChunk",method:"post",params:{uploadId:o,filePath:h,chunkIndex:g},data:b,headers:{"Content-Type":"multipart/form-data",repeatSubmit:!1}})}function re(o){const{uploadId:h,filePath:g,partETags:z}=o;return y({url:"/file/completeUpload",method:"post",params:{uploadId:h,filePath:g},data:z})}const ce={class:"card-header"},de={class:"file-name"},pe={class:"file-details"},me={class:"detail-item"},fe={class:"detail-value"},_e={class:"detail-item"},ve={class:"detail-value"},he={class:"progress-info"},ge={class:"progress-text"},be={key:0,class:"el-icon-loading progress-icon"},ke={class:"progress-message"},we={class:"progress-text"},Ne={class:"dialog-footer"},Ce={key:0,class:"el-icon-upload2"},ye={key:1,class:"el-icon-loading"},ze={__name:"ChunkUpload",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","upload-success"],setup(o,{emit:h}){const g=o,z=h,b=ee({get(){return g.modelValue},set(l){z("update:modelValue",l)}}),u=d(null),p=L({clientName:""}),c=L({fileName:"",fileSize:0,totalChunks:0}),B=d(10),$=d(0),x=d(""),r=L({currentChunk:0,message:""}),V=d(!1),T=d(""),M=d(""),I=d([]),U=d([]),E=d(!1);async function R(){E.value=!0;try{const l=await ne();l.code===200&&l.data&&(U.value=Object.entries(l.data).flatMap(([e,f])=>f.map(k=>({value:e,label:`${e} - ${k}`,clientName:k}))),U.value.length>0&&(p.clientName=U.value[0].value))}catch(l){console.error("获取存储桶列表失败",l)}finally{E.value=!1}}function K(l){return u.value=l,c.fileName=l.name,c.fileSize=(l.size/(1024*1024)).toFixed(2),q(),!1}function q(){if(!u.value)return;const l=u.value.size,e=B.value*1024*1024;c.totalChunks=Math.ceil(l/e)}async function Q(){if(!u.value){P.warning("请先选择文件");return}if(!p.clientName){P.warning("请选择存储桶");return}try{V.value=!0,x.value="",r.message="开始初始化上传...",I.value=[];const l=B.value*1024*1024,e=[];let f=0;for(;fsetTimeout(j,100))}catch(v){throw console.error("分片上传失败:",v),new Error(`分片 ${n+1} 上传失败: ${v.message}`)}}r.message="正在合并分片...",I.value.sort((n,N)=>n.partNumber-N.partNumber);const{data:D}=await re({uploadId:T.value,filePath:M.value,partETags:I.value,clientName:p.clientName});x.value="success",r.message="上传完成",P.success("文件上传成功"),z("upload-success",D),J()}catch(l){x.value="exception",r.message=`上传失败: ${l.message}`,P.error(`文件上传失败: ${l.message}`),console.error("分片上传失败",l)}finally{V.value=!1}}function A(){u.value=null,c.fileName="",c.fileSize=0,c.totalChunks=0,$.value=0,x.value="",r.currentChunk=0,r.message="",T.value="",M.value="",I.value=[]}function J(){A(),b.value=!1}return le(b,l=>{l?U.value.length===0&&R():A()}),ae(()=>{R()}),(l,e)=>{const f=i("el-option"),k=i("el-select"),_=i("el-form-item"),w=i("el-upload"),D=i("el-input-number"),n=i("el-col"),N=i("el-row"),Z=i("el-card"),v=i("el-progress"),j=i("el-form"),G=i("el-button"),W=i("el-dialog");return S(),H(W,{modelValue:b.value,"onUpdate:modelValue":e[2]||(e[2]=m=>b.value=m),title:"分片上传",width:"600px","append-to-body":"",class:"custom-upload-dialog"},{footer:t(()=>[a("div",Ne,[s(G,{onClick:J,size:"medium",class:"btn-cancel"},{default:t(()=>e[8]||(e[8]=[a("i",{class:"el-icon-close"},null,-1),O(" 取消 ")])),_:1}),s(G,{type:"primary",disabled:!u.value||V.value||!p.clientName,onClick:Q,size:"medium",class:"btn-upload"},{default:t(()=>[V.value?(S(),F("i",ye)):(S(),F("i",Ce)),O(" "+C(V.value?"上传中...":"开始上传"),1)]),_:1},8,["disabled"])])]),default:t(()=>[s(j,{model:p,"label-width":"120px",class:"upload-form"},{default:t(()=>[s(_,{label:"存储桶",prop:"clientName"},{default:t(()=>[s(k,{modelValue:p.clientName,"onUpdate:modelValue":e[0]||(e[0]=m=>p.clientName=m),placeholder:"请选择存储桶",clearable:"",loading:E.value,class:"el-select-custom"},{default:t(()=>[(S(!0),F(te,null,se(U.value,m=>(S(),H(f,{key:m.value,label:m.label,value:m.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),s(_,{label:"选择文件"},{default:t(()=>[s(w,{class:"custom-upload-area",drag:"","show-file-list":!1,"before-upload":K},{default:t(()=>e[3]||(e[3]=[a("div",{class:"upload-content"},[a("i",{class:"el-icon-upload el-icon--primary upload-icon"}),a("div",{class:"upload-text"},[O("将文件拖到此处,或"),a("em",{class:"upload-link"},"点击上传")]),a("div",{class:"upload-tip"},"支持拖拽上传,最大文件500MB")],-1)])),_:1})]),_:1}),s(_,{label:"分片大小"},{default:t(()=>[s(D,{modelValue:B.value,"onUpdate:modelValue":e[1]||(e[1]=m=>B.value=m),min:1,max:100,step:1,size:"small","controls-position":"right",onChange:q,class:"el-input-number-custom"},null,8,["modelValue"]),e[4]||(e[4]=a("span",{class:"unit"},"MB",-1))]),_:1}),s(_,{label:"文件信息"},{default:t(()=>[s(Z,{class:"custom-file-info-card"},{header:t(()=>[a("div",ce,[e[5]||(e[5]=a("i",{class:"el-icon-document file-icon"},null,-1)),a("span",de,C(c.fileName||"未选择文件"),1)])]),default:t(()=>[a("div",pe,[s(N,{gutter:20},{default:t(()=>[s(n,{span:12},{default:t(()=>[a("div",me,[e[6]||(e[6]=a("span",{class:"detail-label"},"文件大小:",-1)),a("span",fe,C(c.fileSize||"0")+" MB",1)])]),_:1}),s(n,{span:12},{default:t(()=>[a("div",_e,[e[7]||(e[7]=a("span",{class:"detail-label"},"总分片数:",-1)),a("span",ve,C(c.totalChunks||"0"),1)])]),_:1})]),_:1})])]),_:1})]),_:1}),s(_,{label:"上传进度"},{default:t(()=>[s(v,{percentage:$.value,status:x.value,"stroke-width":18,"show-text":!1,class:"custom-progress"},null,8,["percentage","status"]),a("div",he,[s(N,{gutter:20},{default:t(()=>[s(n,{span:12},{default:t(()=>[a("div",ge,[V.value?(S(),F("i",be)):oe("",!0),a("span",ke,C(r.message||"等待上传..."),1)])]),_:1}),s(n,{span:12,class:"text-right"},{default:t(()=>[a("div",we,[a("span",null,"分片: "+C(r.currentChunk+1)+" / "+C(c.totalChunks||"0"),1)])]),_:1})]),_:1})])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}},Ve=Y(ze,[["__scopeId","data-v-0569b3d1"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:Ve},Symbol.toStringTag,{value:"Module"}));export{Ve as C,Ue as a,Be as b,Ie as d,ne as g,xe as l};