ll-package
Version:
2 lines (1 loc) • 3.49 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),_=require("../../../hooks/useDesign.js"),k=require("../../../utils/base64Conver.js"),w=require("../../../../node_modules/ant-design-vue/es/image/index.js"),N=require("../../../../node_modules/ant-design-vue/es/image/PreviewGroup.js"),u=require("../../../../node_modules/ant-design-vue/es/message/index.js"),b=require("../../../../node_modules/ant-design-vue/es/upload/index.js"),y={class:"perview-box"},V={class:"preview-mask"},B={style:{display:"none"}},x={class:"tip"},j=e.defineComponent({name:"LlUploadImage"}),q=e.defineComponent({...j,props:{value:{default:()=>[]},options:{},accept:{default:".jpg,.png,.jpeg"},imgSize:{default:2*1024*1024},maxCount:{default:1},tip:{default:"请上传2M,jpg、png格式"},multiple:{type:Boolean,default:!1},iconName:{default:"icon-product"}},setup(d,{emit:m}){const p=e.ref([]),l=d,i=e.toRef(l,"value"),{prefixCls:f}=_.useDesign("upload-image"),s=e.ref(!1),r=m,v=async t=>{const o=await k.FileToBase64(t.file);i.value.push(o);try{r("custom-request",t)}catch{i.value.splice(i.value.length-1,1),u.default.error("上传失败")}},g=async t=>{const o=t.type.toLowerCase().replace("image/",""),n=l.accept.includes(o),c=t.size<=l.imgSize;return n?c?!0:(u.default.error(`${t.name} 文件过大`),!1):(u.default.error(`${t.name} 需要为png/jpg/jpeg格式`),!1)},C=async()=>{const t=i.value[l.value.length-1];r("update:value",i.value.filter(o=>o!==t)),r("change",i.value.filter(o=>o!==t))};return(t,o)=>{const n=e.resolveComponent("ll-icon"),c=e.resolveComponent("a-image"),h=e.resolveComponent("ll-button");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(f))},[e.createElementVNode("div",y,[t.value.length>0?(e.openBlock(),e.createBlock(e.unref(w.default),{key:0,preview:{visible:!1},width:100,height:100,src:t.value[t.value.length-1],style:{objectFit:"contain"}},{previewMask:e.withCtx(()=>[e.createElementVNode("div",V,[e.createElementVNode("a",{href:"javascript:;",onClick:o[0]||(o[0]=e.withModifiers(a=>s.value=!0,["stop"]))},[e.createVNode(n,{"icon-name":"icon-pwd-look","class-name":"icon-pwd-look",color:"rgba(255,255,255,75%)"},null,8,["color"])]),e.createElementVNode("a",{href:"javascript:;",onClick:e.withModifiers(C,["stop"])},[e.createVNode(n,{"icon-name":"icon-delete","class-name":"icon-delete",color:"rgba(255,255,255,75%)"},null,8,["color"])])])]),_:1},8,["src"])):(e.openBlock(),e.createBlock(n,{key:1,iconName:l.iconName,color:"#CDCDCD","class-name":"custom"},null,8,["iconName"]))]),e.createElementVNode("div",B,[e.createVNode(e.unref(N.default),{preview:{visible:s.value,onVisibleChange:a=>s.value=a}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,a=>(e.openBlock(),e.createBlock(c,{key:a,src:a},null,8,["src"]))),128))]),_:1},8,["preview"])]),e.createVNode(e.unref(b.default),e.mergeProps({fileList:p.value,"onUpdate:fileList":o[1]||(o[1]=a=>p.value=a),accept:l.accept,showUploadList:!1},t.options,{maxCount:l.maxCount,multiple:l.multiple,"before-upload":g,customRequest:v}),{default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createVNode(h,{class:"upload-btn"},{default:e.withCtx(()=>[e.createVNode(n,{iconName:"icon-upload"}),e.createTextVNode(" 上传文件 ")]),_:1}),e.createElementVNode("p",x,e.toDisplayString(l.tip),1)])]),_:1},16,["fileList","accept","maxCount","multiple"])],2)}}});exports.default=q;
;