quick-admin-vue3-core
Version:
以快(计算机执行效率、开发效率)为核心的后台管理系统开发模板
2 lines (1 loc) • 3.34 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),c=require("./platform-Dl0zaSyI.cjs"),_=require("./index-D8siRAAk.cjs"),$=require("./_plugin-vue_export-helper-BHFhmbuH.cjs");function v(o){return o.split(",").map(s=>s.split(/[\/.]/)[1]).join(",")}function h(o,i=0){const s=o/1024;return s<1024?`${s.toFixed(i)}kb`:`${(s/1024).toFixed(i)}M`}function z(o){const{accept:i,limitSize:s}=o,r=v(i),p=h(s);return`仅支持${r}格式,且不超过${p}`}function U(o,i){return o.split(",").map(r=>r.split(/[\/.]/)[1]).includes(i.split("/")[1])?"":`仅支持上传${v(o)}格式的文件`}function j(o,i,s=!0){return!s&&i===0?"文件内容不能为空":i<=o?"":`文件大小不能超过 ${h(o)}`}function E(o,i){const{limitSize:s,accept:r,allowEmpty:p}=o,{type:d,size:u}=i;return U(r,d)||j(s,u,p)}var y;const M=t.defineComponent({__name:"BaseUpload",props:t.mergeDefaults({modelValue:{},fit:{},drag:{type:Boolean},circle:{type:Boolean},accept:{},limitSize:{},action:{},listType:{},limit:{},tips:{},disabled:{type:Boolean},showFileList:{type:Boolean},allowEmpty:{type:Boolean},handleSuccessResponse:{type:Function}},{modelValue:"",action:"#",accept:"image/png,image/jpg,image/jpeg",listType:"picture-card",limit:1,limitSize:1024*1024*10,tips:o=>z(o),showFileList:o=>o.limit>1,allowEmpty:!0,...(y=c.config)==null?void 0:y.BaseUpload}),emits:["update:modelValue","success","error"],setup(o,{emit:i}){const s=o,r=i,p=t.inject("openPopup"),d=t.ref(0),{formItem:u}=c.useFormItem(),g=t.computed(()=>c.useFormDisabled().value??s.disabled),w=t.ref(""),m=t.ref([]),F=t.computed({get:()=>s.modelValue,set(e){r("update:modelValue",e),u==null||u.validate("blur")}}),b=e=>{const l=E(s,e);return l?(c.showMessage(l,"error"),!1):!0},B=e=>{const{loaded:l,total:n}=e;d.value=Math.floor(l/n*100)},T=(e,l)=>{const{handleSuccessResponse:n}=s;n==null||n(e,l).then(a=>{F.value=a,r("success",a)}).catch(a=>{c.showMessage(a,"error")})},S=(e,l,n)=>{c.showMessage("文件上传失败","error"),r("error",e),w.value=URL.createObjectURL(l.raw)},L=e=>{p("图片预览",["img",{src:e.url,wFull:!0,alt:"图片预览"}])},V=(e,l)=>{console.log(e,l)};return(e,l)=>{const n=t.resolveComponent("el-icon"),a=t.resolveComponent("BaseImg"),C=t.resolveComponent("el-upload");return t.openBlock(),t.createBlock(C,{class:"base-upload","data-circle":e.circle,"file-list":m.value,"onUpdate:fileList":l[0]||(l[0]=f=>m.value=f),accept:e.accept,"before-upload":b,"on-progress":B,"on-success":T,"on-error":S,"on-preview":L,"on-remove":V,action:e.action,listType:e.listType,limit:e.limit,drag:e.drag,disabled:g.value,"show-file-list":e.showFileList},t.createSlots({default:t.withCtx(()=>[t.createVNode(n,{class:"icon-add"},{default:t.withCtx(()=>[t.createVNode(t.unref(_.plus_default))]),_:1})]),_:2},[e.showFileList?void 0:{name:"file",fn:t.withCtx(({file:f})=>[t.createVNode(a,{class:"img",src:f.url,fit:e.fit,preview:g.value},null,8,["src","fit","preview"])]),key:"0"},e.tips?{name:"tip",fn:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["tips",{"mt-h":!e.showFileList||!m.value.length}])},t.toDisplayString(e.tips),3)]),key:"1"}:void 0]),1032,["data-circle","file-list","accept","action","listType","limit","drag","disabled","show-file-list"])}}}),k=$._export_sfc(M,[["__scopeId","data-v-1e4fb544"]]);exports.default=k;