2 lines
8.4 KiB
JavaScript
2 lines
8.4 KiB
JavaScript
var e,t;import{g as a,o as s,c as i,w as l,a as o,m as u,aM as r,d as n,aN as c,aO as d,aP as p,x as m,y as h,z as f,aQ as _,aR as y,a5 as v,aS as g,aL as b,b as w,F as k,r as C,A as x,h as z,t as S,p as j,j as I,n as F,i as $,B as R}from"./index-3714412c.js";import{_ as D}from"./uv-icon.c593f91d.js";import{r as P}from"./useRouter.f44141c1.js";import{_ as B}from"./uv-loading-icon.8ba359c8.js";import{_ as O}from"./uv-popup.e5d0df45.js";import{_ as T}from"./_plugin-vue_export-helper.1b428a4d.js";const A=T({props:{src:{type:String,default:""},autoplay:{type:Boolean,default:!0}},data:()=>({videoSrc:"",show:!1}),computed:{getSec(){return this.src||this.videoSrc}},methods:{open(e){this.videoSrc=e,this.$refs.popup.open()},close(){this.$refs.popup.close()},change(e){this.show=e.show}}},[["render",function(e,t,c,d,p,m){const h=r,f=n,_=P(a("uv-popup"),O);return s(),i(_,{ref:"popup",onChange:m.change},{default:l((()=>[p.show?(s(),i(f,{key:0,class:"video-view"},{default:l((()=>[o(h,{class:"video",src:m.getSec,autoplay:c.autoplay},null,8,["src","autoplay"])])),_:1})):u("",!0)])),_:1},8,["onChange"])}],["__scopeId","data-v-ca9595a3"]]);function V(e,t){return["[object Object]","[object File]"].includes(Object.prototype.toString.call(e))?Object.keys(e).reduce(((a,s)=>(t.includes(s)||(a[s]=e[s]),a)),{}):{}}function L(e){return e.tempFiles.map((e=>({...V(e,["path"]),url:e.path,size:e.size,name:e.name,type:e.type})))}function M({accept:e,multiple:t,capture:a,compressed:s,maxDuration:i,sizeType:l,camera:o,maxCount:u}){return new Promise(((r,n)=>{switch(e){case"image":p({count:t?Math.min(u,9):1,sourceType:a,sizeType:l,success:e=>r(function(e){return e.tempFiles.map((e=>({...V(e,["path"]),type:"image",url:e.path,thumb:e.path,size:e.size,name:e.name})))}(e)),fail:n});break;case"video":d({sourceType:a,compressed:s,maxDuration:i,camera:o,success:e=>r(function(e){return[{...V(e,["tempFilePath","thumbTempFilePath","errMsg"]),type:"video",url:e.tempFilePath,thumb:e.thumbTempFilePath,size:e.size,name:e.name}]}(e)),fail:n});break;case"file":c({count:t?u:1,type:e,success:e=>r(L(e)),fail:n});break;default:c({count:t?u:1,type:"all",success:e=>r(L(e)),fail:n})}}))}const N=T({name:"uv-upload",emits:["error","beforeRead","oversize","afterRead","delete","clickPreview"],mixins:[m,h,{watch:{accept:{immediate:!0,handler(e){}}}},{props:{accept:{type:String,default:"image"},capture:{type:[String,Array],default:()=>["album","camera"]},compressed:{type:Boolean,default:!0},camera:{type:String,default:"back"},maxDuration:{type:Number,default:60},uploadIcon:{type:String,default:"camera-fill"},uploadIconColor:{type:String,default:"#D3D4D6"},useBeforeRead:{type:Boolean,default:!1},afterRead:{type:Function,default:null},beforeRead:{type:Function,default:null},previewFullImage:{type:Boolean,default:!0},previewFullVideo:{type:Boolean,default:!0},maxCount:{type:[String,Number],default:52},disabled:{type:Boolean,default:!1},imageMode:{type:String,default:"aspectFill"},name:{type:String,default:""},sizeType:{type:Array,default:()=>["original","compressed"]},multiple:{type:Boolean,default:!1},deletable:{type:Boolean,default:!0},maxSize:{type:[String,Number],default:Number.MAX_VALUE},fileList:{type:Array,default:()=>[]},uploadText:{type:String,default:""},width:{type:[String,Number],default:80},height:{type:[String,Number],default:80},previewImage:{type:Boolean,default:!0},...null==(t=null==(e=uni.$uv)?void 0:e.props)?void 0:t.upload}}],data:()=>({lists:[],isInCount:!0}),watch:{fileList:{deep:!0,immediate:!0,handler(){this.formatFileList()}}},methods:{formatFileList(){const{fileList:e=[],maxCount:t}=this,a=e.map((e=>Object.assign(Object.assign({},e),{isImage:"image"===this.accept||f(e.url||e.thumb),isVideo:"video"===this.accept||_(e.url||e.thumb),deletable:"boolean"==typeof e.deletable?e.deletable:this.deletable})));this.lists=a,this.isInCount=a.length<t},chooseFile(){this.timer&&clearTimeout(this.timer),this.timer=setTimeout((()=>{const{maxCount:e,multiple:t,lists:a,disabled:s}=this;if(s)return;let i;try{i=y(this.capture)?this.capture:this.capture.split(",")}catch(l){i=[]}M(Object.assign({accept:this.accept,multiple:this.multiple,capture:i,compressed:this.compressed,maxDuration:this.maxDuration,sizeType:this.sizeType,camera:this.camera},{maxCount:e-a.length})).then((e=>{this.onBeforeRead(t?e:e[0])})).catch((e=>{this.$emit("error",e)}))}),100)},onBeforeRead(e){const{beforeRead:t,useBeforeRead:a}=this;let s=!0;v(t)&&(s=t(e,this.getDetail())),a&&(s=new Promise(((t,a)=>{this.$emit("beforeRead",Object.assign(Object.assign({file:e},this.getDetail()),{callback:e=>{e?t():a()}}))}))),s&&(g(s)?s.then((t=>this.onAfterRead(t||e))):this.onAfterRead(e))},getDetail(e){return{name:this.name,index:null==e?this.fileList.length:e}},onAfterRead(e){const{maxSize:t,afterRead:a}=this;(Array.isArray(e)?e.some((e=>e.size>t)):e.size>t)?this.$emit("oversize",Object.assign({file:e},this.getDetail())):("function"==typeof a&&a(e,this.getDetail()),this.$emit("afterRead",Object.assign({file:e},this.getDetail())))},deleteItem(e){this.$emit("delete",Object.assign(Object.assign({},this.getDetail(e)),{file:this.fileList[e]}))},onPreviewImage(e,t){const a=this.$uv.deepClone(this.lists);a.map(((e,a)=>{a==t&&(e.current=!0)}));const s=a.filter((e=>e.isImage)).findIndex((e=>e.current));this.onClickPreview(e,t),e.isImage&&this.previewFullImage&&b({urls:this.lists.filter((e=>"image"===this.accept||f(e.url||e.thumb))).map((e=>e.url||e.thumb)),current:s,fail(){this.$uv.toast("预览图片失败")}})},onPreviewVideo(e,t){this.onClickPreview(e,t),this.previewFullVideo&&e.isVideo&&this.$refs.previewVideo.open(e.url)},onClickPreview(e,t){this.$emit("clickPreview",Object.assign(Object.assign({},e),this.getDetail(t)))}}},[["render",function(e,t,r,c,d,p){const m=$,h=P(a("uv-icon"),D),f=R,_=n,y=P(a("uv-loading-icon"),B),v=P(a("uv-preview-video"),A);return s(),i(_,{class:"uv-upload",style:x([e.$uv.addStyle(e.customStyle)])},{default:l((()=>[o(_,{class:"uv-upload__wrap"},{default:l((()=>[e.previewImage?(s(!0),w(k,{key:0},C(d.lists,((t,a)=>(s(),i(_,{class:"uv-upload__wrap__preview",key:a},{default:l((()=>[t.isImage||t.type&&"image"===t.type?(s(),i(m,{key:0,src:t.thumb||t.url,mode:e.imageMode,class:"uv-upload__wrap__preview__image",onClick:e=>p.onPreviewImage(t,a),style:x([{width:e.$uv.addUnit(e.width),height:e.$uv.addUnit(e.height)}])},null,8,["src","mode","onClick","style"])):(s(),i(_,{key:1,class:"uv-upload__wrap__preview__other",onClick:e=>p.onPreviewVideo(t,a),style:x([{width:e.$uv.addUnit(e.width),height:e.$uv.addUnit(e.height)}])},{default:l((()=>[o(h,{color:"#80CBF9",size:"26",name:t.isVideo||t.type&&"video"===t.type?"movie":"folder"},null,8,["name"]),o(f,{class:"uv-upload__wrap__preview__other__text"},{default:l((()=>[z(S(t.isVideo||t.type&&"video"===t.type?"视频":"文件"),1)])),_:2},1024)])),_:2},1032,["onClick","style"])),"uploading"===t.status||"failed"===t.status?(s(),i(_,{key:2,class:"uv-upload__status"},{default:l((()=>[o(_,{class:"uv-upload__status__icon"},{default:l((()=>["failed"===t.status?(s(),i(h,{key:0,name:"close-circle",color:"#ffffff",size:"25"})):(s(),i(y,{key:1,size:"22",mode:"circle"}))])),_:2},1024),t.message?(s(),i(f,{key:0,class:"uv-upload__status__message"},{default:l((()=>[z(S(t.message),1)])),_:2},1024)):u("",!0)])),_:2},1024)):u("",!0),"uploading"!==t.status&&(e.deletable||t.deletable)?(s(),i(_,{key:3,class:"uv-upload__deletable",onClick:j((e=>p.deleteItem(a)),["stop"])},{default:l((()=>[o(_,{class:"uv-upload__deletable__icon"},{default:l((()=>[o(h,{name:"close",color:"#ffffff",size:"10"})])),_:1})])),_:2},1032,["onClick"])):u("",!0),"success"===t.status?(s(),i(_,{key:4,class:"uv-upload__success"},{default:l((()=>[o(_,{class:"uv-upload__success__icon"},{default:l((()=>[o(h,{name:"checkmark",color:"#ffffff",size:"12"})])),_:1})])),_:1})):u("",!0)])),_:2},1024)))),128)):u("",!0),d.isInCount?(s(),i(_,{key:1,onClick:p.chooseFile},{default:l((()=>[I(e.$slots,"default",{},(()=>[o(_,{class:F(["uv-upload__button",[e.disabled&&"uv-upload__button--disabled"]]),"hover-class":e.disabled?"":"uv-upload__button--hover","hover-stay-time":"150",onClick:j(p.chooseFile,["stop"]),style:x([{width:e.$uv.addUnit(e.width),height:e.$uv.addUnit(e.height)}])},{default:l((()=>[o(h,{name:e.uploadIcon,size:"26",color:e.uploadIconColor},null,8,["name","color"]),e.uploadText?(s(),i(f,{key:0,class:"uv-upload__button__text"},{default:l((()=>[z(S(e.uploadText),1)])),_:1})):u("",!0)])),_:1},8,["hover-class","onClick","class","style"])]),!0)])),_:3},8,["onClick"])):u("",!0)])),_:3}),o(v,{ref:"previewVideo"},null,512)])),_:3},8,["style"])}],["__scopeId","data-v-5baf370c"]]);export{N as _};
|