5 lines
3.4 KiB
Java
5 lines
3.4 KiB
Java
import{bT as E,a1 as L,s as P,bG as h,ai as R,bg as V,d as D,au as F,bV as G,M as K,dQ as Q}from"./index-X7Y8jykP.js";import{e as X,d as q,r as a,c as z,C as H,z as U,f,A as m,K as C,y as $,E as I,G as T,R as W,Q as l}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const j=X({name:"ImportExcelProgress",components:{LoadingOutlined:E},props:{uploadUrl:{type:String,required:!0},btnText:{type:String,default:"导入"},type:{type:String,default:"user"}},emit:["success","register"],setup(s,{emit:t}){const g=a(""),v=a({}),y=a({}),{createMessage:p,createWarningModal:d}=P(),i=a(),u=L(),c=a(!1),o=a(0),n=a(),b=a(),k=u.domainUrl,O=z(()=>k+s.uploadUrl);function M(e){var _;if(e.file.name&&(g.value=e.file.name),e.file.status==="done"){if(e.file.response.success)if(e.file.response&&e.file.response.code===201){let{message:w,result:{msg:x,fileUrl:S,fileName:A}}=e.file.response,B=u.uploadUrl+S;d({title:w,centered:!1,content:`<div>
|
||
<span>${x}</span><br/>
|
||
<span>具体详情请<a href = ${B} download = ${A}> 点击下载 </a> </span>
|
||
</div>`}),o.value=100,t("success")}else p.success("文件导入成功!"),o.value=100,t("success");else p.error(e.file.response.message||`${e.file.name} 导入失败.`);r()}else(e.file.status==="error"||e.file.response&&e.file.response.code===500)&&(r(),p.error(((_=e.file.response)==null?void 0:_.message)||"导入失败,可能原因文件超出上传大小,请查看控制台或服务端日志"))}function r(){clearInterval(i.value)}function N(){o.value=1,y.value={"X-Access-Token":R(),"X-Tenant-Id":h()?h():"0"},b.value=V(16),v.value.fileKey=b.value,c.value=!0,i.value=setInterval(()=>{D.get({url:"/sys/user/getUploadFileProgress",params:{fileKey:b.value,type:s.type}},{isTransformResponse:!1}).then(e=>{e.success&&e.result&&(o.value=Math.round(e.result),e.result==100&&r())}).catch(()=>{r()})},2e3)}return q(()=>{r()}),{fileName:g,uploadData:v,headers:y,onFileChange:M,beforeUpload:N,progressOpen:c,percent:o,uploadAction:O,uploadRef:n}}}),J={style:{display:"flex"}},Y={class:"file-name"},Z={style:{"margin-top":"10px",display:"flex"}};function ee(s,t,g,v,y,p){const d=C("a-button"),i=C("LoadingOutlined"),u=G,c=Q,o=K;return U(),H("div",null,[f(u,{headers:s.headers,action:s.uploadAction,showUploadList:!1,multiple:!1,maxCount:1,data:s.uploadData,accept:".xls,.xlsx",onChange:s.onFileChange,beforeUpload:s.beforeUpload,ref:"uploadRef",style:{width:"100%"}},{default:m(()=>[s.percent===0||s.percent===100?(U(),$(d,{key:0,type:"primary",preIcon:"ant-design:import-outlined"},{default:m(()=>[I(T(s.btnText),1)]),_:1})):(U(),$(d,{key:1,onClick:t[0]||(t[0]=W(n=>s.progressOpen=!0,["prevent","stop"])),type:"primary"},{default:m(()=>[f(i),t[2]||(t[2]=I(" 导入中 ",-1))]),_:1}))]),_:1},8,["headers","action","data","onChange","beforeUpload"]),f(o,{open:s.progressOpen,"onUpdate:open":t[1]||(t[1]=n=>s.progressOpen=n),title:"文件上传","body-style":{padding:"20px"},destroyOnClose:!0,footer:null},{default:m(()=>[l("div",null,[l("div",J,[t[3]||(t[3]=l("div",{class:"label"},"当前上传文件:",-1)),l("div",Y,T(s.fileName),1)]),l("div",Z,[t[4]||(t[4]=l("div",{class:"label"},"当前文件上传进度:",-1)),f(c,{percent:s.percent,style:{width:"300px","margin-left":"10px"},format:n=>`${n}%`},null,8,["percent","format"])])])]),_:1},8,["open"])])}const oe=F(j,[["render",ee],["__scopeId","data-v-4dc7d5f1"]]);export{oe as default};
|