2 lines
8.4 KiB
JavaScript
2 lines
8.4 KiB
JavaScript
var e,t;import{G as a,H as s,o as i,j as l,w as o,h as u,z as r,L as n,B as c,bg as d,bh as p,bi as m,Y as h,Z as f,a8 as _,bj as y,bk as v,bb as g,bl as b,b9 as w,e as k,F as C,k as z,y as j,I as x,l as I,Q as S,a0 as F,m as $,p as D,A as B}from"./index-90c12cc1.js";import{_ as O}from"./uv-icon.c815b875.js";import{a as P}from"./uv-loading-icon.ad70964c.js";import{_ as R}from"./uv-popup.a2d35ebb.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,d,p,m,h){const f=n,_=c,y=a(s("uv-popup"),R);return i(),l(y,{ref:"popup",onChange:h.change},{default:o((()=>[m.show?(i(),l(_,{key:0,class:"video-view"},{default:o((()=>[u(f,{class:"video",src:h.getSec,autoplay:d.autoplay},null,8,["src","autoplay"])])),_:1})):r("",!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 U({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":m({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":p({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":d({count:t?u:1,type:e,success:e=>r(L(e)),fail:n});break;default:d({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:[h,f,{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||_(e.url||e.thumb),isVideo:"video"===this.accept||y(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=v(this.capture)?this.capture:this.capture.split(",")}catch(l){i=[]}U(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;g(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&&(b(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&&w({urls:this.lists.filter((e=>"image"===this.accept||_(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,n,d,p,m){const h=D,f=a(s("uv-icon"),O),_=B,y=c,v=a(s("uv-loading-icon"),P),g=a(s("uv-preview-video"),A);return i(),l(y,{class:"uv-upload",style:j([e.$uv.addStyle(e.customStyle)])},{default:o((()=>[u(y,{class:"uv-upload__wrap"},{default:o((()=>[e.previewImage?(i(!0),k(C,{key:0},z(p.lists,((t,a)=>(i(),l(y,{class:"uv-upload__wrap__preview",key:a},{default:o((()=>[t.isImage||t.type&&"image"===t.type?(i(),l(h,{key:0,src:t.thumb||t.url,mode:e.imageMode,class:"uv-upload__wrap__preview__image",onClick:e=>m.onPreviewImage(t,a),style:j([{width:e.$uv.addUnit(e.width),height:e.$uv.addUnit(e.height)}])},null,8,["src","mode","onClick","style"])):(i(),l(y,{key:1,class:"uv-upload__wrap__preview__other",onClick:e=>m.onPreviewVideo(t,a),style:j([{width:e.$uv.addUnit(e.width),height:e.$uv.addUnit(e.height)}])},{default:o((()=>[u(f,{color:"#80CBF9",size:"26",name:t.isVideo||t.type&&"video"===t.type?"movie":"folder"},null,8,["name"]),u(_,{class:"uv-upload__wrap__preview__other__text"},{default:o((()=>[x(I(t.isVideo||t.type&&"video"===t.type?"视频":"文件"),1)])),_:2},1024)])),_:2},1032,["onClick","style"])),"uploading"===t.status||"failed"===t.status?(i(),l(y,{key:2,class:"uv-upload__status"},{default:o((()=>[u(y,{class:"uv-upload__status__icon"},{default:o((()=>["failed"===t.status?(i(),l(f,{key:0,name:"close-circle",color:"#ffffff",size:"25"})):(i(),l(v,{key:1,size:"22",mode:"circle"}))])),_:2},1024),t.message?(i(),l(_,{key:0,class:"uv-upload__status__message"},{default:o((()=>[x(I(t.message),1)])),_:2},1024)):r("",!0)])),_:2},1024)):r("",!0),"uploading"!==t.status&&(e.deletable||t.deletable)?(i(),l(y,{key:3,class:"uv-upload__deletable",onClick:S((e=>m.deleteItem(a)),["stop"])},{default:o((()=>[u(y,{class:"uv-upload__deletable__icon"},{default:o((()=>[u(f,{name:"close",color:"#ffffff",size:"10"})])),_:1})])),_:2},1032,["onClick"])):r("",!0),"success"===t.status?(i(),l(y,{key:4,class:"uv-upload__success"},{default:o((()=>[u(y,{class:"uv-upload__success__icon"},{default:o((()=>[u(f,{name:"checkmark",color:"#ffffff",size:"12"})])),_:1})])),_:1})):r("",!0)])),_:2},1024)))),128)):r("",!0),p.isInCount?(i(),l(y,{key:1,onClick:m.chooseFile},{default:o((()=>[F(e.$slots,"default",{},(()=>[u(y,{class:$(["uv-upload__button",[e.disabled&&"uv-upload__button--disabled"]]),"hover-class":e.disabled?"":"uv-upload__button--hover","hover-stay-time":"150",onClick:S(m.chooseFile,["stop"]),style:j([{width:e.$uv.addUnit(e.width),height:e.$uv.addUnit(e.height)}])},{default:o((()=>[u(f,{name:e.uploadIcon,size:"26",color:e.uploadIconColor},null,8,["name","color"]),e.uploadText?(i(),l(_,{key:0,class:"uv-upload__button__text"},{default:o((()=>[x(I(e.uploadText),1)])),_:1})):r("",!0)])),_:1},8,["hover-class","onClick","class","style"])]),!0)])),_:3},8,["onClick"])):r("",!0)])),_:3}),u(g,{ref:"previewVideo"},null,512)])),_:3},8,["style"])}],["__scopeId","data-v-5baf370c"]]);export{N as _};
|