数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
2.9 KiB

4 months ago
import{d as U,ba as M,a as _,c as I,b as c,h as d,f as w,e as i,I as g,bb as x,a7 as E,ak as P,bc as F,_ as S,r as f,w as $,q,F as A,bd as N,ac as z,an as C,ao as L}from"./index-e450010e.js";import{_ as k}from"./plus-f2947ec6.js";const R=["src"],j=U({__name:"SingleUpload",props:{modelValue:{type:String,default:""}},emits:["update:modelValue"],setup(v,{emit:r}){const t=M(v,"modelValue",r);async function s(n){const{data:m}=await x(n.file);t.value=m.url}function a(n){return n.size>2*1048*1048?(E.warning("上传图片不能大于2M"),!1):!0}return(n,m)=>{const b=k,y=P,l=F;return _(),I(l,{modelValue:d(t),"onUpdate:modelValue":m[0]||(m[0]=e=>g(t)?t.value=e:null),class:"single-uploader","show-file-list":!1,"list-type":"picture-card","before-upload":a,"http-request":s},{default:c(()=>[d(t)?(_(),w("img",{key:0,src:d(t),class:"single"},null,8,R)):(_(),I(y,{key:1,class:"single-uploader-icon"},{default:c(()=>[i(b)]),_:1}))]),_:1},8,["modelValue"])}}});const D=S(j,[["__scopeId","data-v-941dc519"]]),G=["src"],H=U({__name:"MultiUpload",props:{modelValue:{type:Array,default:[]},limit:{type:Number,default:5}},emits:["update:modelValue"],setup(v,{emit:r}){const p=r,V=v,t=f(""),s=f(!1),a=f([]);$(()=>V.modelValue,l=>{const e=a.value.map(o=>o.url);e.length>0&&e.length===l.length&&e.every(o=>l.some(u=>u===o))&&l.every(o=>e.some(u=>u===o))||(a.value=l.map(o=>({url:o})))},{immediate:!0});async function n(l){const{data:e}=await x(l.file),o=a.value.findIndex(u=>u.uid==l.file.uid);a.value.splice(o,1,{name:e.name,url:e.url}),p("update:modelValue",a.value.map(u=>u.url))}function m(l){const e=l.url;e&&N(e).then(()=>{p("update:modelValue",a.value.map(o=>o.url))})}function b(l){return l.size>2*1048*1048?(E.warning("上传图片不能大于2M"),!1):!0}const y=l=>{t.value=l.url,s.value=!0};return(l,e)=>{const o=k,u=F,B=z;return _(),w(A,null,[i(u,{"file-list":d(a),"onUpdate:fileList":e[0]||(e[0]=h=>g(a)?a.value=h:null),"list-type":"picture-card","before-upload":b,"http-request":n,"on-remove":m,"on-preview":y,limit:V.limit},{default:c(()=>[i(o)]),_:1},8,["file-list","limit"]),i(B,{modelValue:d(s),"onUpdate:modelValue":e[1]||(e[1]=h=>g(s)?s.value=h:null)},{default:c(()=>[q("img",{"w-full":"",src:d(t),alt:"Preview Image"},null,8,G)]),_:1},8,["modelValue"])],64)}}}),J={class:"app-container"},Q=U({__name:"uploader",setup(v){const r=f("https://oss.youlai.tech/default/2022/11/20/18e206dae97b40329661537d1e433639.jpg"),p=f(["https://oss.youlai.tech/default/2022/11/20/8af5567816094545b53e76b38ae9c974.webp","https://oss.youlai.tech/default/2022/11/20/13dbfd7feaf848c2acec2b21675eb9d3.webp"]);return(V,t)=>{const s=C,a=L;return _(),w("div",J,[i(a,null,{default:c(()=>[i(s,{label:"单图上传"},{default:c(()=>[i(D,{modelValue:d(r),"onUpdate:modelValue":t[0]||(t[0]=n=>g(r)?r.value=n:null)},null,8,["modelValue"])]),_:1}),i(s,{label:"多图上传"},{default:c(()=>[i(H,{modelValue:d(p),"onUpdate:modelValue":t[1]||(t[1]=n=>g(p)?p.value=n:null)},null,8,["modelValue"])]),_:1})]),_:1})])}}});export{Q as default};