1 |
- import{a as me,r as y,w as Oe,q as ze,aj as r,c as f,o as s,M as u,J as m,G as ee,Q as G,O as qe,ab as fe,ac as ve,S as o,Y as Je,K as n,aC as We,_ as Te,E,F as w,R as Y,a9 as de,L as F,b as v,T as H,a8 as Ke,P as $,u as x,t as Ve}from"./vue.YrNK8sx4.js";import{F as P,G as De,d as Qe,B as Ye,x as X,H as pe,I as ce}from"./index.CbDucVWP.js";import{_ as Ie}from"./_plugin-vue_export-helper.DlAUqK2U.js";const T={IMAGE:8,VIDEO:4,AUDIO:2,OTHER:1,ALL:15},Xe=["title"],Ze=me({__name:"fileItem",props:{fileData:{type:Object,required:!0},api:{type:Object,required:!0},showTitle:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0}},emits:["onDelFile"],setup(q,{expose:te,emit:le}){const C=q,R=me({template:"<el-icon><Files /></el-icon>"}),I=[{tag:"img",attr:{src:P(C.fileData.url),draggable:!1}},{tag:"video",attr:{src:P(C.fileData.url),controls:!1,autoplay:!0,muted:!0,loop:!0}},{tag:"audio",attr:{src:P(C.fileData.url),controls:!0,autoplay:!1,muted:!1,loop:!1,volume:0}},{tag:R,attr:{style:{fontSize:"2rem"}}}],h=y(!1),ae=y(),t=y(null),_=()=>C.api.DelObj(C.fileData.id).then(()=>{De("删除成功"),d("onDelFile")});Oe(C.fileData,A=>t.value=A,{immediate:!0,deep:!0});const d=le;return te({}),ze(()=>{}),(A,k)=>{const p=r("CircleClose"),V=r("el-icon");return s(),f("div",{ref_key:"itemRef",ref:ae,class:"file-item",title:t.value.name,onMouseenter:k[0]||(k[0]=J=>h.value=!0),onMouseleave:k[1]||(k[1]=J=>h.value=!1)},[q.showTitle?(s(),f("div",{key:0,class:ee(["file-name",{show:h.value}])},G(t.value.name),3)):u("",!0),(s(),m(qe(I[t.value.file_type].tag),fe(ve(I[t.value.file_type].attr)),null,16)),C.showClose?(s(),f("div",{key:1,class:ee(["file-del",{show:h.value}])},[o(V,{size:24,color:"white",onClick:Je(_,["stop"]),style:{cursor:"pointer"}},{default:n(()=>[o(p,{style:{"mix-blend-mode":"difference"}})]),_:1})],2)):u("",!0)],40,Xe)}}}),et=Ie(Ze,[["__scopeId","data-v-06b0ae37"]]),tt={style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",display:"flex","justify-content":"center","align-items":"center"}},lt=["src"],at={style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",display:"flex","justify-content":"center","align-items":"center"}},ot=["src","controls"],st={style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",display:"flex","justify-content":"center","align-items":"center"}},nt={style:{padding:"4px"}},it={style:{width:"100%",display:"flex","justify-content":"space-between",gap:"12px"}},ut={key:0},rt=["data-id"],dt={class:"listPaginator"},Z="/api/system/file/",pt=me({__name:"index",props:{modelValue:{},class:{type:Object,default:""},inputClass:{type:Object,default:""},style:{type:Object,default:{}},inputStyle:{type:Object,default:{}},disabled:{type:Boolean,default:!1},tabsType:{type:Object,default:""},itemSize:{type:Number,default:100},tabsShow:{type:Number,default:T.ALL},multiple:{type:Boolean,default:!1},selectable:{type:Boolean,default:!0},showInput:{type:Boolean,default:!0},inputType:{type:Object,default:"selector"},inputSize:{type:Number,default:100},valueKey:{type:String,default:"url"},showUploadButton:{type:Boolean,default:!0},showNetButton:{type:Boolean,default:!0}},emits:["update:modelValue","onSave","onClose","onClosed"],setup(q,{expose:te,emit:le}){const C=We(Qe()).userInfos,R=!!(pe&&pe.length&&pe.indexOf("dvadmin3-tenants-web")>=0),I=C.value.schema_name==="public",h=["图片","视频","音频","文件"],ae=["image/*","video/*","audio/*",""],t=q,_=y(!1),d=y([3,2,1,0][t.tabsShow&t.tabsShow-1?3:Math.log2(t.tabsShow)]),A={GetList:l=>X({url:Z,method:"get",params:l}),AddObj:l=>X({url:Z,method:"post",data:l}),DelObj:l=>X({url:Z+l+"/",method:"delete",data:{id:l}}),GetAll:()=>X({url:Z+"get_all/"})},k=Te({name:""}),p=Te({page:1,limit:10,total:0}),V=y([]),J=y([]),O=async()=>{let l=await A.GetList({page:p.page,limit:p.limit,file_type:R?d.value%4:d.value,system:d.value>3,upload_method:1,...k});V.value=[],await Ve(),V.value=l.data.map(e=>({...e,url:P(e.url)})),p.total=l.total,p.page=l.page,p.limit=l.limit,ie()},oe=l=>l.target.style.setProperty("--fileselector-close-display","block"),se=l=>l.target.style.setProperty("--fileselector-close-display","none"),W=async()=>{if(t.inputType!=="selector")return;let l=await A.GetAll();J.value=l.data},ye=l=>{p.page=1,O()},je=(l,e)=>{p.page=l,p.limit=e,O()},ne=y(),Le=async l=>{var B;if(!t.selectable)return;let e=l.target,c=0;for(;!e.dataset.id;)e=e.parentElement;let g=e.dataset.id;if(t.multiple){if(e.classList.contains("active")?(e.classList.remove("active"),c=-1):(e.classList.add("active"),c=1),i.value.length){let b=JSON.parse(JSON.stringify(i.value));c===1?b.push(g):b.splice(b.indexOf(g),1),i.value=b}else i.value=[g];i.value=Array.from(new Set(i.value)).sort()}else{for(let b of(B=ne.value)==null?void 0:B.children)b.classList.remove("active");e.classList.add("active"),i.value=g}},ie=async()=>{var l,e;if(t.selectable){await Ve();for(let c of((l=ne.value)==null?void 0:l.children)||[]){c.classList.remove("active");let g=c.dataset.id;t.multiple?(e=i.value)!=null&&e.includes(g)&&c.classList.add("active"):g===i.value&&c.classList.add("active")}}},ge=y(),Ue=()=>{re(i.value),Q("onSave",i.value),_.value=!1},be=()=>{i.value=t.modelValue,Q("onClose"),_.value=!1},$e=()=>{he(),Q("onClosed")},he=()=>{k.name="",p.page=1,p.limit=10,p.total=0,V.value=[]},K=()=>{i.value=null,re(null)},S=y(!1),M=y(!1),j=y(""),ue=y("HTTP://"),Ae=()=>{let l=j.value.trim();(l.toUpperCase().startsWith("HTTP://")||l.toUpperCase().startsWith("HTTPS://"))&&(l=l.split("://")[1]),l.startsWith("/")&&(l=l.substring(1)),j.value=l},Be=()=>{if(!j.value)return;S.value=!0;let l=new AbortController,e=setTimeout(()=>{l.abort()},10*1e3);fetch(ue.value+j.value,{signal:l.signal}).then(async c=>{clearTimeout(e),c.ok||ce(`网络${h[d.value%4]}获取失败!`);const g=c.url.split("?")[0].split("/");let B=g[g.length-1],b=await c.blob(),z=new File([b],B,{type:b.type}),L=new FormData;L.append("file",z),L.append("upload_method","1"),fetch(P()+"api/system/file/",{method:"post",body:L}).then(()=>De("网络文件上传成功!")).then(()=>{M.value=!1,O(),W()}).catch(()=>ce("网络文件上传失败!")).then(()=>S.value=!1)}).catch(c=>{console.log(c),clearTimeout(e),ce(`网络${h[d.value%4]}获取失败!`),S.value=!1})},i=y(null),Q=le;Oe(()=>t.modelValue,l=>i.value=t.multiple?JSON.parse(JSON.stringify(l)):l,{immediate:!0});const{ui:Fe}=Ye(),_e=Fe.formItem.injectFormItemContext(),re=l=>{Q("update:modelValue",l),_e.onChange(),_e.onBlur()};return te({data:i,onDataChange:re,selectVisiable:_,clearState:he,clear:K}),ze(()=>{if(t.multiple&&t.inputType!=="selector")throw new Error("FileSelector组件属性multiple为true时inputType必须为selector");W(),console.log("fileselector tenentmdoe",R),console.log("fileselector supertenent",I)}),(l,e)=>{const c=r("el-option"),g=r("el-select"),B=r("el-image"),b=r("Plus"),z=r("el-icon"),L=r("Close"),He=r("el-divider"),D=r("el-tab-pane"),we=r("el-tabs"),Ce=r("el-input"),Pe=r("el-tag"),ke=r("el-col"),U=r("el-button"),Re=r("el-upload"),Me=r("el-row"),Ne=r("el-empty"),Ee=r("el-pagination"),Ge=r("el-form-item"),Se=r("el-dialog");return s(),f("div",{style:w([{width:"100%"},t.style]),class:ee(t.class)},[E(l.$slots,"input",fe(ve({})),()=>[t.showInput?(s(),f("div",{key:0,style:w([{width:"100%"},t.inputStyle]),class:ee(t.inputClass)},[t.inputType==="selector"?(s(),m(g,{key:0,modelValue:i.value,"onUpdate:modelValue":e[0]||(e[0]=a=>i.value=a),"suffix-icon":"arrow-down",clearable:"",multiple:t.multiple,placeholder:"请选择文件",onClick:e[1]||(e[1]=a=>_.value=!t.disabled),disabled:t.disabled,onClear:ie,onRemoveTag:ie},{default:n(()=>[(s(!0),f(Y,null,de(J.value,(a,N)=>(s(),m(c,{key:N,value:String(a[t.valueKey]),label:a.name},null,8,["value","label"]))),128))]),_:1},8,["modelValue","multiple","disabled"])):u("",!0),t.inputType==="image"?(s(),f("div",{key:1,style:w([{position:"relative"},{width:t.inputSize+"px",height:t.inputSize+"px"}]),class:"form-display",onMouseenter:oe,onMouseleave:se},[o(B,{src:i.value,fit:"scale-down",style:w({width:t.inputSize+"px",aspectRatio:"1 / 1"})},{error:n(()=>e[20]||(e[20]=[v("div",null,null,-1)])),_:1},8,["src","style"]),F(v("div",tt,[o(z,{size:24},{default:n(()=>[o(b)]),_:1})],512),[[H,!i.value]]),v("div",{onClick:e[2]||(e[2]=a=>_.value=!t.disabled),class:"addControllorHover",style:w({cursor:t.disabled?"not-allowed":"pointer"})},null,4),F(o(z,{class:"closeHover",size:16,onClick:K},{default:n(()=>[o(L)]),_:1},512),[[H,!!i.value&&!t.disabled]])],36)):u("",!0),t.inputType==="video"?(s(),f("div",{key:2,class:"form-display",onMouseenter:oe,onMouseleave:se,style:w([{position:"relative",display:"flex","align-items":"center","justify-items":"center"},{width:t.inputSize*2+"px",height:t.inputSize+"px"}])},[v("video",{src:i.value,controls:!1,autoplay:!0,muted:!0,loop:!0,style:w({maxWidth:t.inputSize*2+"px",maxHeight:t.inputSize+"px",margin:"0 auto"})},null,12,lt),F(v("div",at,[o(z,{size:24},{default:n(()=>[o(b)]),_:1})],512),[[H,!i.value]]),v("div",{onClick:e[3]||(e[3]=a=>_.value=!t.disabled),class:"addControllorHover",style:w({cursor:t.disabled?"not-allowed":"pointer"})},null,4),F(o(z,{class:"closeHover",size:16,onClick:K},{default:n(()=>[o(L)]),_:1},512),[[H,!!i.value&&!t.disabled]])],36)):u("",!0),t.inputType==="audio"?(s(),f("div",{key:3,class:"form-display",onMouseenter:oe,onMouseleave:se,style:w([{position:"relative",display:"flex","align-items":"center","justify-items":"center"},{width:t.inputSize*2+"px",height:t.inputSize+"px"}])},[v("audio",{src:i.value,controls:!!i.value,autoplay:!1,muted:!0,loop:!0,style:{width:"100%","z-index":"1"}},null,8,ot),F(v("div",st,[o(z,{size:24},{default:n(()=>[o(b)]),_:1})],512),[[H,!i.value]]),v("div",{onClick:e[4]||(e[4]=a=>_.value=!t.disabled),class:"addControllorHover",style:w({cursor:t.disabled?"not-allowed":"pointer"})},null,4),F(o(z,{class:"closeHover",size:16,onClick:K},{default:n(()=>[o(L)]),_:1},512),[[H,!!i.value&&!t.disabled]])],36)):u("",!0)],6)):u("",!0)],!0),o(Se,{modelValue:_.value,"onUpdate:modelValue":e[18]||(e[18]=a=>_.value=a),draggable:!0,width:"50%","align-center":!1,"append-to-body":!0,onOpen:e[19]||(e[19]=a=>{V.value.length===0&&O()}),onClose:be,onClosed:$e,"modal-class":"_overlay"},Ke({header:n(()=>[e[21]||(e[21]=v("span",{class:"el-dialog__title"},"文件选择",-1)),o(He,{style:{margin:"0"}})]),default:n(()=>[v("div",nt,[v("div",it,[I?u("",!0):(s(),m(we,{key:0,style:{width:"100%"},modelValue:d.value,"onUpdate:modelValue":e[5]||(e[5]=a=>d.value=a),type:t.tabsType,stretch:!0,onTabChange:ye},{default:n(()=>[t.tabsShow&x(T).IMAGE?(s(),m(D,{key:0,name:0,label:"图片"})):u("",!0),t.tabsShow&x(T).VIDEO?(s(),m(D,{key:1,name:1,label:"视频"})):u("",!0),t.tabsShow&x(T).AUDIO?(s(),m(D,{key:2,name:2,label:"音频"})):u("",!0),t.tabsShow&x(T).OTHER?(s(),m(D,{key:3,name:3,label:"其他"})):u("",!0)]),_:1},8,["modelValue","type"])),R?(s(),m(we,{key:1,style:{width:"100%"},modelValue:d.value,"onUpdate:modelValue":e[6]||(e[6]=a=>d.value=a),type:t.tabsType,stretch:!0,onTabChange:ye},{default:n(()=>[t.tabsShow&x(T).IMAGE?(s(),m(D,{key:0,name:4,label:"系统图片"})):u("",!0),t.tabsShow&x(T).VIDEO?(s(),m(D,{key:1,name:5,label:"系统视频"})):u("",!0),t.tabsShow&x(T).AUDIO?(s(),m(D,{key:2,name:6,label:"系统音频"})):u("",!0),t.tabsShow&x(T).OTHER?(s(),m(D,{key:3,name:7,label:"系统其他"})):u("",!0)]),_:1},8,["modelValue","type"])):u("",!0)]),o(Me,{justify:"space-between",class:"headerBar"},{default:n(()=>[o(ke,{span:12},{default:n(()=>[E(l.$slots,"actionbar-left",{},()=>[o(Ce,{modelValue:k.name,"onUpdate:modelValue":e[7]||(e[7]=a=>k.name=a),placeholder:`请输入${h[d.value%4]}名`,"prefix-icon":"search",clearable:"",onChange:O},null,8,["modelValue","placeholder"]),v("div",null,[t.multiple?(s(),m(Pe,{key:0,type:"primary",effect:"light"},{default:n(()=>{var a;return[$(" 一共选中 "+G(((a=i.value)==null?void 0:a.length)||0)+" 个文件 ",1)]}),_:1})):u("",!0)])],!0)]),_:3}),o(ke,{span:12,style:{width:"100%",display:"flex",gap:"12px","justify-content":"flex-end"}},{default:n(()=>[E(l.$slots,"actionbar-right",fe(ve({})),()=>[o(U,{type:"default",circle:"",icon:"refresh",onClick:O}),!(d.value>3)||I?(s(),f(Y,{key:0},[t.showUploadButton?(s(),m(Re,{key:0,ref_key:"uploadRef",ref:ge,action:x(P)()+"api/system/file/",multiple:!1,drag:!1,data:{upload_method:1},"show-file-list":!0,accept:ae[d.value%4],"on-success":()=>{O(),W(),ge.value.clearFiles()}},{default:n(()=>[o(U,{type:"primary",icon:"plus"},{default:n(()=>[$("上传"+G(h[d.value%4]),1)]),_:1})]),_:1},8,["action","accept","on-success"])):u("",!0),t.showNetButton?(s(),m(U,{key:1,type:"info",icon:"link",onClick:e[8]||(e[8]=a=>M.value=!0)},{default:n(()=>[$(" 网络"+G(h[d.value%4]),1)]),_:1})):u("",!0)],64)):u("",!0)],!0)]),_:3})]),_:3}),V.value.length?(s(),f("div",{key:1,ref_key:"listContainerRef",ref:ne,class:"listContainer"},[(s(!0),f(Y,null,de(V.value,(a,N)=>(s(),f("div",{key:N,onClick:e[10]||(e[10]=xe=>Le(xe)),"data-id":a[t.valueKey],style:w({width:(t.itemSize||100)+"px",cursor:t.selectable?"pointer":"normal"})},[E(l.$slots,"item",{data:a},()=>[o(et,{fileData:a,api:A,showClose:d.value<4||I,onOnDelFile:e[9]||(e[9]=xe=>{O(),W()})},null,8,["fileData","showClose"])],!0)],12,rt))),128))],512)):(s(),f("div",ut,[E(l.$slots,"empty",{},()=>[o(Ne,{description:"无内容,请上传",style:{width:"100%",height:"calc(50vh)","margin-top":"24px",padding:"4px"}})],!0)])),v("div",dt,[o(Ee,{background:"",size:"small",layout:"total, sizes, prev, pager, next",total:p.total,"page-size":p.limit,"onUpdate:pageSize":e[11]||(e[11]=a=>p.limit=a),"page-sizes":[10,20,30,40,50],"current-page":p.page,"onUpdate:currentPage":e[12]||(e[12]=a=>p.page=a),"hide-on-single-page":!1,onChange:je},null,8,["total","page-size","current-page"])])]),o(Se,{modelValue:M.value,"onUpdate:modelValue":e[16]||(e[16]=a=>M.value=a),draggable:!1,width:"50%","align-center":!1,"append-to-body":!0,title:"网络"+h[d.value%4]+"上传",onClosed:e[17]||(e[17]=a=>j.value=""),"close-on-click-modal":!S.value,"close-on-press-escape":!S.value,"show-close":!S.value,"modal-class":"_overlay"},{footer:n(()=>[S.value?u("",!0):(s(),m(U,{key:0,type:"default",onClick:e[15]||(e[15]=a=>M.value=!1)},{default:n(()=>e[22]||(e[22]=[$("取消")])),_:1})),o(U,{type:"primary",onClick:Be,loading:S.value},{default:n(()=>[$(G(S.value?"网络文件获取中...":"确定"),1)]),_:1},8,["loading"])]),default:n(()=>[o(Ge,{label:h[d.value%4]+"链接"},{default:n(()=>[o(Ce,{modelValue:j.value,"onUpdate:modelValue":e[14]||(e[14]=a=>j.value=a),placeholder:"请输入网络连接",clearable:"",onInput:Ae},{prepend:n(()=>[o(g,{modelValue:ue.value,"onUpdate:modelValue":e[13]||(e[13]=a=>ue.value=a),style:{width:"110px"}},{default:n(()=>[(s(),f(Y,null,de(["HTTP://","HTTPS://"],(a,N)=>o(c,{key:N,label:a,value:a},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["modelValue","title","close-on-click-modal","close-on-press-escape","show-close"])]),_:2},[t.showInput?{name:"footer",fn:n(()=>[o(U,{type:"default",onClick:be},{default:n(()=>e[23]||(e[23]=[$("取消")])),_:1}),o(U,{type:"primary",onClick:Ue},{default:n(()=>e[24]||(e[24]=[$("确定")])),_:1})]),key:"0"}:void 0]),1032,["modelValue"])],6)}}}),vt=Ie(pt,[["__scopeId","data-v-b90a4334"]]);export{vt as F,T as S};
|