2 lines
4.3 KiB
JavaScript
2 lines
4.3 KiB
JavaScript
import{P as I}from"./index-Dn-pwuas.js";import{s as T}from"./element-plus-CFxTwCZ2.js";import{_ as F,a as A,F as M}from"./index-CHkSemYM.js";import{u as q,d as E,b as J}from"./index-DqzX0p3J.js";import{_ as K}from"./index-DrGLRjBU.js";import{D as O}from"./vuedraggable-C3E4D3Yv.js";import{f as j,w as G,am as V,A as _,n as H,ar as U,ak as Q,I as W,a as s,M as X,aN as p,J as i,O as Y,aP as Z,aq as x}from"./@vue/runtime-core-C0pg79pw.js";import{K as ee,o as n}from"./@vue/reactivity-BIbyPIZJ.js";import{h as le}from"./@vueuse/shared-D8934tfB.js";import{s as $,q as te}from"./@vue/runtime-dom-iFk_KP8y.js";import{o as k,p as ae}from"./@vue/shared-mAAVTE9n.js";const oe=j({components:{Popup:I,Draggable:O,FileItem:M,Material:A,Preview:F},props:{modelValue:{type:[String,Array],default:()=>[]},type:{type:String,default:"image"},size:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},disabled:{type:Boolean,default:!1},hiddenUpload:{type:Boolean,default:!1},uploadClass:{type:String,default:""},excludeDomain:{type:Boolean,default:!1}},emits:["change","update:modelValue"],setup(e,{emit:t}){const h=n(),g=n(),w=n(""),y=n(!1),a=n([]),m=n([]),r=n(!0),f=n(-1),{disabled:C,limit:d,modelValue:b}=ee(e),{getImageUrl:S}=q(),o=_(()=>{switch(e.type){case"image":return"图片";case"video":return"视频";default:return""}}),v=_(()=>e.limit-a.value.length>0),c=_(()=>r.value?d.value==-1?null:d.value-a.value.length:1),B=le(()=>{const l=m.value.map(u=>e.excludeDomain?u.uri:u.url);r.value?a.value=[...a.value,...l]:a.value.splice(f.value,1,l.shift()),z()},1e3,!1),D=l=>{var u;C.value||(l>=0?(r.value=!1,f.value=l):r.value=!0,(u=h.value)==null||u.open())},L=l=>{m.value=l},z=()=>{const l=d.value!=1?a.value:a.value[0]||"";t("update:modelValue",l),t("change",l),P()},N=l=>{a.value.splice(l,1),z()},R=l=>{w.value=l,y.value=!0},P=()=>{H(()=>{var l;e.hiddenUpload&&(a.value=[]),(l=g.value)==null||l.clearSelect()})};return G(b,l=>{a.value=Array.isArray(l)?l:l==""?[]:[l]},{immediate:!0}),V("limit",e.limit),V("hiddenUpload",e.hiddenUpload),{popupRef:h,materialRef:g,fileList:a,tipsText:o,handleConfirm:B,meterialLimit:c,showUpload:v,showPopup:D,selectChange:L,deleteImg:N,previewUrl:w,showPreview:y,handlePreview:R,handleClose:P,getImageUrl:S}}}),ie={class:"material-select"},se=["onClick"],ne={class:"operation-btns text-xs text-center"},re=["onClick"],de={class:"material-wrap"};function ue(e,t,h,g,w,y){const a=U("file-item"),m=K,r=U("draggable"),f=J,C=A,d=T,b=I,S=U("preview");return Q(),W("div",ie,[s(b,{ref:"popupRef",width:"1050px","custom-class":"body-padding",title:`选择${e.tipsText}`,onConfirm:e.handleConfirm,onClose:e.handleClose},X({default:p(()=>[s(d,null,{default:p(()=>[i("div",de,[s(C,{ref:"materialRef",type:e.type,"file-size":e.fileSize,limit:e.meterialLimit,onChange:e.selectChange},null,8,["type","file-size","limit","onChange"])])]),_:1})]),_:2},[e.hiddenUpload?void 0:{name:"trigger",fn:p(()=>[i("div",{class:"material-select__trigger clearfix",onClick:t[2]||(t[2]=$(()=>{},["stop"]))},[s(r,{class:"draggable",modelValue:e.fileList,"onUpdate:modelValue":t[0]||(t[0]=o=>e.fileList=o),animation:"300","item-key":"id"},{item:p(({element:o,index:v})=>[i("div",{class:k(["material-preview",{"is-disabled":e.disabled,"is-one":e.limit==1}]),onClick:c=>e.showPopup(v)},[s(m,{onClose:c=>e.deleteImg(v)},{default:p(()=>[s(a,{uri:e.excludeDomain?e.getImageUrl(o):o,"file-size":e.size,width:e.width,height:e.height,type:e.type},null,8,["uri","file-size","width","height","type"])]),_:2},1032,["onClose"]),i("div",ne,[t[4]||(t[4]=i("span",null,"修改",-1)),t[5]||(t[5]=Y(" | ",-1)),i("span",{onClick:$(c=>e.handlePreview(o),["stop"])},"查看",8,re)])],10,se)]),_:1},8,["modelValue"]),Z(i("div",{class:k(["material-upload",{"is-disabled":e.disabled,"is-one":e.limit==1,[e.uploadClass]:!0}]),onClick:t[1]||(t[1]=o=>e.showPopup(-1))},[x(e.$slots,"upload",{},()=>[i("div",{class:"upload-btn",style:ae({width:e.width||e.size,height:e.height||e.size})},[s(f,{size:25,name:"el-icon-Plus"}),t[6]||(t[6]=i("span",null,"添加",-1))],4)],!0)],2),[[te,e.showUpload]])])]),key:"0"}]),1032,["title","onConfirm","onClose"]),s(S,{modelValue:e.showPreview,"onUpdate:modelValue":t[3]||(t[3]=o=>e.showPreview=o),url:e.previewUrl,type:e.type},null,8,["modelValue","url","type"])])}const Se=E(oe,[["render",ue],["__scopeId","data-v-5802b9cb"]]);export{Se as _};
|