Files
yakpanel-core/YakPanel/static/vite/js/UploadFile-Dg4rg0Qp.js
2026-04-07 02:04:22 +05:30

2 lines
7.9 KiB
JavaScript

import{C as k,l as E,x as H,m as A,as as ue,h as de,c as re}from"./index-BTglIPU2.js?v=1773287522785";import{V as fe,w as pe}from"./FileIcon-eIHDRaxH.js?v=1773287522785";import{k as O,R as q,i as X,r as b,a0 as m,$ as d,a8 as U,a9 as p,_ as a,aa as i,S as s,X as Z,c as D,Z as h,j as S,ak as T,F as V,P as me,H as _e,n as ve}from"./vue-core-DJjvd5ZC.js?v=1773287522785";import{at as he,ai as ge,B as ye,aI as Ce}from"./naive-ui--dJnpVcV.js?v=1773287522785";import"./prismjs-BZPoR7_J.js?v=1773287522785";import"./soft-Cjyfamvm.js?v=1773287522785";import"./copy-D-wIKr0q.js?v=1773287522785";const be={class:"p-20px"},ke={class:"flex items-center gap-10px mb-16px"},we={class:"flex-1 w-0 text-14px"},xe=O({__name:"FileConflict",props:{fileList:{}},emits:["step","confirm"],setup(G,{emit:I}){const{t:r}=q(),l=I,_=X("fileStore"),{fileConflictShow:g}=_,y=b([{title:r("file.uploadModal.conflictFileName"),key:"filename",ellipsis:{tooltip:!0}},{title:r("file.uploadModal.conflictFileDifference"),key:"difference",width:200,render(v){return m("span",null,[k(v.size)+"-->"+k(v.size)])}}]),C=()=>{l("step")},w=()=>{l("confirm")};return(v,u)=>{const c=E,x=he,M=H;return d(),U(M,{show:s(g),"onUpdate:show":u[0]||(u[0]=P=>Z(g)?g.value=P:null),title:s(r)("file.uploadModal.conflictTitle"),width:600,footer:!0,"confirm-text":s(r)("file.uploadModal.conflictOverwrite"),"cancel-text":s(r)("file.uploadModal.conflictSkip"),onCancel:C,onConfirm:w},{default:p(()=>[a("div",be,[a("div",ke,[m(c,{name:"base-warning",class:"text-warning text-30px"}),a("div",we,i(s(r)("file.uploadModal.conflictMessage")),1)]),m(x,{"max-height":400,columns:s(y),data:v.fileList},null,8,["columns","data"])])]),_:1},8,["show","title","confirm-text","cancel-text"])}}}),Me={class:"p-20px"},$e={key:0,class:"flex justify-between items-center mb-16px"},Se={key:1,class:"status-tools-wrapper mb-16px"},Fe={class:"status-tools"},Ue={class:"tools-item"},Ie={class:"item-label"},Pe={class:"value"},ze={class:"tools-item"},Ne={class:"item-label"},Be={class:"value"},Le={class:"tools-item"},Re={class:"item-label"},je={class:"value"},Ae={key:0,class:"tools-item"},De={class:"item-label"},Te={class:"value"},Ve={key:2,class:"files-list-wrapper"},Ee={class:"files-tit"},He={class:"name"},Oe={class:"size"},qe={class:"status"},Xe={class:"operation"},Ze={class:"name"},Ge={class:"size"},Je={class:"status"},Ke={class:"operation"},Qe={key:3,class:"file-empty"},We={class:"flex justify-end gap-16px mt-20px"},Ye=O({__name:"UploadFile",setup(G,{expose:I}){const r=X("fileStore"),{uploadFileList:l,uploadShow:_}=r,{currentPath:g,uploadComplete:y,startUpload:C,fileConflictShow:w}=r,v=b([]),{t:u}=q(),c=b({total:0,done:0,time:0,speed:0,num:0}),x=b(),M=b(),P=b([{key:"file",label:D(()=>u("file.uploadFile"))},{key:"dir",label:D(()=>u("file.uploadFolder"))}]);I({open(){_.value=!0},close(){_.value=!1}});function J(e){e=="file"?B():K()}function B(){x.value.click()}function K(){M.value.click()}function Q(e){const t=e.target.files;if(t){let o=!1;for(let n=0;n<t.length;n++){if(l.value.findIndex(F=>F.file.name==t[n].name)!=-1){o=!0;continue}l.value.push({relativePath:"",file:t[n],status:0,name:t[n].name,size:t[n].size,progress:0})}o&&A.error(u("file.uploadModal.fileAlreadyExists"),{close:!0})}x.value.value=""}function W(e){const t=e.target.files;if(t){let o=!1;for(let n=0;n<t.length;n++){let $=t[n].webkitRelativePath.split("/");if($.pop(),l.value.findIndex(N=>N.file.name==t[n].name)!=-1){o=!0;continue}l.value.push({relativePath:$.join("/"),file:t[n],name:t[n].name,status:0,size:t[n].size,progress:0})}o&&A.error(u("file.uploadModal.fileAlreadyExists"),{close:!0})}M.value.value=""}function Y(){l.value=[]}function ee(e){switch(e){case 0:return u("file.uploadModal.statusNotStarted");case 1:return u("file.uploadModal.statusUploading");case 2:return u("file.uploadModal.statusCompleted");case 3:return u("file.uploadModal.statusFailed")}}async function L(){const e=l.value.map(o=>o.relativePath?g.value+"/"+o.relativePath+"/"+o.file.name:g.value+"/"+o.file.name),t=await ie(e);t.length==0?await z():(v.value=t,w.value=!0)}async function te(){l.value=l.value.filter(e=>v.value.findIndex(t=>t.filename.includes(e.file.name))==-1),l.value.length>0?await z():R()}function le(){w.value=!1,te()}function ae(){w.value=!1,z()}async function z(){c.value.total=l.value.reduce((t,o)=>t+o.file.size,0),C.value=!0;const e=oe();for(let t=0;t<l.value.length;t++){l.value[t].status=1;try{await fe(l.value[t].file,"/files?action=upload",1024*1024*1,g.value+"/"+l.value[t].relativePath,o=>{l.value[t].progress=o},o=>{isNaN(Number(o.message))||(c.value.done=Number(o.message))}),l.value[t].status=2,c.value.num+=1}catch(o){l.value[t].status=3,console.warn(o)}}clearInterval(e),y.value=!0,pe(r),ve(()=>l.value=[])}function se(e){l.value.splice(e,1)}function oe(){let e=0;return setInterval(()=>{e++,c.value.time=e,c.value.speed=c.value.done/c.value.time,console.log(c.value)},1e3)}function R(){y.value=!1,C.value=!1,c.value={total:0,done:0,speed:0,num:0,time:0},l.value=[]}async function ie(e){return(await ue.post("/files?action=upload_files_exists",{files:e.join("\n")})).message.filter(o=>o.exists)}const ne=()=>{if(!y.value&&l.value.length>0)return de({title:u("file.uploadModal.cancelUpload"),content:u("file.uploadModal.cancelUploadConfirm"),onConfirm(){_.value=!1}}),!1},ce=()=>{R()};return(e,t)=>{const o=E,n=ye,$=ge,F=Ce,N=H;return d(),h(V,null,[m(N,{show:s(_),"onUpdate:show":t[0]||(t[0]=f=>Z(_)?_.value=f:null),title:e.$t("file.uploadModal.title"),width:720,onPublicClose:ne,onAfterLeave:ce},{default:p(()=>[a("div",Me,[a("input",{type:"file",style:{display:"none"},ref_key:"fileInputRef",ref:x,onChange:Q,multiple:""},null,544),a("input",{type:"file",style:{display:"none"},ref_key:"dirInputRef",ref:M,onChange:W,webkitdirectory:"",directory:"",multiple:""},null,544),!s(C)||s(l).length==0?(d(),h("div",$e,[m($,{options:s(P),trigger:"hover",onSelect:J},{default:p(()=>[m(n,{type:"primary","icon-placement":"right",onClick:B},{icon:p(()=>[m(o,{name:"base-arrow-bottom",size:"14"})]),default:p(()=>[S(i(e.$t("file.uploadFile"))+" ",1)]),_:1})]),_:1},8,["options"]),m(n,{disabled:s(l).length==0,onClick:Y},{default:p(()=>[S(i(e.$t("Public.Btn.Clear")),1)]),_:1},8,["disabled"])])):(d(),h("div",Se,[a("div",Fe,[a("div",Ue,[a("div",Ie,i(e.$t("file.uploadModal.uploadSize")),1),a("div",Pe,i("".concat(s(k)(s(c).done),"/").concat(s(k)(s(c).total))),1)]),a("div",ze,[a("div",Ne,i(e.$t("file.uploadModal.averageSpeed")),1),a("div",Be,i(s(k)(s(c).speed))+"/s",1)]),a("div",Le,[a("div",Re,i(e.$t("file.uploadModal.uploadSuccess")),1),a("div",je,i(s(l).length)+" / "+i(s(c).num),1)]),s(y)?(d(),h("div",Ae,[a("div",De,i(e.$t("file.uploadModal.totalTime")),1),a("div",Te,i(s(c).time)+"s",1)])):T("",!0)])])),s(l).length>0?(d(),h("div",Ve,[a("div",Ee,[a("span",He,i(e.$t("file.uploadModal.fileName")),1),a("span",Oe,i(e.$t("file.uploadModal.fileSize")),1),a("span",qe,i(e.$t("file.uploadModal.uploadStatus")),1),a("span",Xe,i(e.$t("file.uploadModal.operation")),1)]),m(F,{style:{height:"350px"}},{default:p(()=>[(d(!0),h(V,null,me(s(l),(f,j)=>(d(),h("div",{class:"list-item",key:j},[a("span",Ze,i(f.relativePath?"".concat(f.relativePath,"/").concat(f.file.name):f.file.name),1),a("span",Ge,i(s(k)(f.file.size)),1),a("span",Je,i(ee(f.status)),1),a("span",Ke,[f.status!==2?(d(),U(n,{key:0,text:"",type:"primary",onClick:et=>se(j)},{default:p(()=>[S(i(e.$t("Public.Btn.Cancel")),1)]),_:2},1032,["onClick"])):T("",!0)]),a("div",{class:"progress",style:_e({width:"".concat(f.progress,"%")})},null,4)]))),128))]),_:1})])):(d(),h("div",Qe,[a("span",null,i(e.$t("file.uploadModal.dragFilesHere")),1)])),a("div",We,[s(C)?(d(),U(n,{key:0,type:"primary",disabled:s(l).length==0,onClick:L},{default:p(()=>[S(i(e.$t("file.uploadModal.continueUpload")),1)]),_:1},8,["disabled"])):(d(),U(n,{key:1,type:"primary",disabled:s(l).length==0,onClick:L},{default:p(()=>[S(i(e.$t("file.uploadModal.confirmUpload")),1)]),_:1},8,["disabled"]))])])]),_:1},8,["show","title"]),m(xe,{"file-list":s(v),onStep:le,onConfirm:ae},null,8,["file-list"])],64)}}}),ct=re(Ye,[["__scopeId","data-v-ff54d582"]]);export{ct as default};