fast-vue3-ui
Version:
<h1 align="center"> fast-ui </h1>
2 lines (1 loc) • 3.06 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("./style/index.css");const C=require("@element-plus/icons-vue"),a=require("./types.js"),l=require("element-plus"),h={class:"upload-file uploadFile-container"},T={key:0,class:"el-upload__tip"},D={style:{color:"#f56c6c"}},v={style:{color:"#f56c6c"}},V=e.defineComponent({name:"fast-upload-file"}),B=e.defineComponent({...V,props:a.uploadProps,emits:a.uploadEmits,setup(c,{emit:d}){const u=c;let{modelValue:p,title:f,limit:m}=e.toRefs(u);const i=e.ref([]),E=e.computed(()=>u.isShowTip&&(u.fileType||u.fileSize));e.onMounted(()=>{u.modelValue.length>0&&(i.value=p.value)});function F(t){let s=t.name;if(u.fileType.length){let o="";if(s.lastIndexOf(".")>-1&&(o=s.slice(s.lastIndexOf(".")+1)),!u.fileType.some(r=>t.type.indexOf(r)>-1?!0:!!(o&&o.indexOf(r)>-1)))return l.ElMessage({type:"error",message:`\u6587\u4EF6\u683C\u5F0F\u4E0D\u6B63\u786E, \u8BF7\u4E0A\u4F20${u.fileType.join("/")}\u683C\u5F0F\u6587\u4EF6!`}),!1}return u.fileSize&&!(t.size/1024/1024<u.fileSize)?(l.ElMessage({type:"error",message:`\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 ${u.fileSize} MB!`}),!1):!0}function y(){l.ElMessage({type:"error",message:`\u4E0A\u4F20\u6587\u4EF6\u6570\u91CF\u4E0D\u80FD\u8D85\u8FC7 ${u.limit} \u4E2A!`})}function g(t){l.ElMessage({type:"error",message:"\u4E0A\u4F20\u5931\u8D25"})}function _(t,s){if(console.log("\u4E0A\u4F20\u6210\u529F\u56DE\u8C03",t),t.code!=200){u.limit<=1&&(i.value=[]),(t.msg===""||t.msg===void 0)&&(t.msg="\u4E0A\u4F20\u5931\u8D25\uFF01"),l.ElMessage({type:"error",message:t.msg});return}l.ElMessage({type:"success",message:"\u4E0A\u4F20\u6210\u529F"}),i.value.push({name:t.data.filename,url:t.data.url}),d("success")}return(t,s)=>{const o=e.resolveComponent("el-button"),n=e.resolveComponent("el-upload");return e.openBlock(),e.createElementBlock("div",h,[e.createVNode(n,e.mergeProps(t.$attrs,{"before-upload":F,"file-list":i.value,limit:e.unref(m),"on-error":g,"on-exceed":y,"on-success":_,"show-file-list":!0,class:"upload-file-uploader",ref:"upload"}),{default:e.withCtx(()=>[e.createVNode(o,{size:t.buttonSize,class:"filter-item",icon:e.unref(C.UploadFilled),type:t.buttonType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(f)||"\u9009\u53D6\u6587\u4EF6"),1)]),_:1},8,["size","icon","type"]),e.unref(E)?(e.openBlock(),e.createElementBlock("div",T,[e.createTextVNode(" \u8BF7\u4E0A\u4F20 "),t.fileSize?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" \u5927\u5C0F\u4E0D\u8D85\u8FC7 "),e.createElementVNode("b",D,e.toDisplayString(t.fileSize)+"MB",1)],64)):e.createCommentVNode("",!0),t.fileType?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" \u683C\u5F0F\u4E3A "),e.createElementVNode("b",v,e.toDisplayString(t.fileType.join("/")),1)],64)):e.createCommentVNode("",!0),e.createTextVNode(" \u7684\u6587\u4EF6 ")])):e.createCommentVNode("",!0)]),_:1},16,["file-list","limit"])])}}});exports.default=B;