execl-upload.b7ac7feb.js 1.5 KB

1
  1. import{_ as F,d as C,w as _,o as i,G as R,C as U,a as p,c as b,u as N,bA as S,bB as A,aY as D}from"./index.88f7d256.js";import{r as L,u as c}from"./xlsx.ed122d16.js";const M={key:0,class:"el-upload__text"},K=C({__name:"execl-upload",emits:["onSuccess"],setup(j,{expose:f,emit:m}){const v=_(null),l=_(null),x=e=>{const a=e.raw;!a||g(a)},g=e=>{u(e)&&h(e)},h=async e=>{const a=A.service({lock:!0,text:"Loading",background:"rgba(0, 0, 0, 0.7)"});return new Promise(s=>{const o=new FileReader;o.onload=n=>{const t=n.target.result,r=L(t,{type:"array"}),B=r.SheetNames[0],d=r.Sheets[B],E=k(d),w=c.sheet_to_json(d,{defval:""});m("onSuccess",{header:E,results:w}),a.close(),s({isok:!0})},o.readAsArrayBuffer(e)})},k=e=>{const a=[],s=c.decode_range(e["!ref"]);let o;const n=s.s.r;for(o=s.s.c;o<=s.e.c;++o){const t=e[c.encode_cell({c:o,r:n})];let r="UNKNOWN "+o;t&&t.t&&(r=c.format_cell(t)),a.push(r)}return a},u=async e=>e.size/1024<500?!0:(D.warning("\u8BF7\u4E0D\u8981\u4E0A\u4F20\u5927\u4E8E500KB\u7684\u6587\u4EF6"),!1),y=()=>l.value=null;return f({onDisplay:()=>l.value=null}),(e,a)=>(i(),R(N(S),{ref_key:"uploadRef",ref:v,action:"#",accept:".xls,.xlsx",drag:"",class:"upload","auto-upload":!1,onChange:x,onRemove:y,onBeforeUpload:u,multiple:""},{default:U(()=>[p(' class="execl-uploader" '),l.value?p("v-if",!0):(i(),b("div",M,"\u70B9\u51FB\u6B64\u5904,\u4E0A\u4F20\u6587\u4EF6"))]),_:1},512))}});var H=F(K,[["__scopeId","data-v-dec4647e"],["__file","D:/work/accout-vue3-ui2/settle-vue3/src/components/execlUpload/src/execl-upload.vue"]]);export{H as e};