wot-design-uni/demo/assets/wd-upload.CAancTKN.js

2 lines
10 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var e=Object.defineProperty,s=Object.defineProperties,o=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,i=(s,o,t)=>o in s?e(s,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[o]=t,r=(e,s)=>{for(var o in s||(s={}))a.call(s,o)&&i(e,o,s[o]);if(t)for(var o of t(s))l.call(s,o)&&i(e,o,s[o]);return e},n=(e,t)=>s(e,o(t));import{d as u,r as c,an as d,b as p,z as f,g as m,w as v,h as _,i as y,K as w,aW as b,E as h,q as g,aD as k,c as x,C,m as P,F as L,n as D,D as I,p as T,j as F,t as z,k as j,l as K,B as O,at as S,aX as E,aY as U,aZ as M,x as N,I as $,a0 as G,ah as R,au as A,a8 as B}from"./index-ChV97F5w.js";import{b as H,w as q,_ as W}from"./base64.D3gEw_Hf.js";import{m as X,i as Y}from"./page-wraper.D9WpzC1k.js";import{u as Z}from"./useTranslate.BPiTMMfr.js";import{a as J,u as Q}from"./types.BLQ9w4Nx.js";const V=r({},H),ee=W(u(n(r({},{name:"wd-video-preview",options:{addGlobalClass:!0,virtualHost:!0,styleIsolation:"shared"}}),{props:V,setup(e,{expose:s}){const o=c(!1),t=d({url:"",poster:"",title:""});function a(){o.value=!1,k((()=>{t.url="",t.poster="",t.title=""}))}return X((()=>o.value)),s({open:function(e){o.value=!0,t.url=e.url,t.poster=e.poster,t.title=e.title},close:a}),(e,s)=>{const l=b,i=y;return o.value?(m(),p(i,{key:0,class:g(`wd-video-preview ${e.customClass}`),style:h(e.customStyle),onClick:a},{default:v((()=>[_(i,{class:"wd-video-preview__video",onClick:s[0]||(s[0]=w((()=>{}),["stop"]))},{default:v((()=>[t.url?(m(),p(l,{key:0,class:"wd-video-preview__video",controls:!0,poster:t.poster,title:t.title,"play-btn-position":"center",enableNative:!0,src:t.url,"enable-progress-gesture":!1},null,8,["poster","title","src"])):f("",!0)])),_:1}),_(q,{name:"close","custom-class":"wd-video-preview__close",onClick:a})])),_:1},8,["class","style"])):f("",!0)}}})),[["__scopeId","data-v-c8e6551e"]]),se=W(u(n(r({},{name:"wd-upload",options:{addGlobalClass:!0,virtualHost:!0,styleIsolation:"shared"}}),{props:J,emits:["fail","change","success","progress","oversize","chooseerror","remove","update:fileList"],setup(e,{expose:s,emit:o}){const t=e,a=o;s({submit:()=>J(),abort:()=>k()});const{translate:l}=Z("upload"),i=c([]),u=x((()=>!t.limit||i.value.length<t.limit)),d=c(),{startUpload:w,abort:k,chooseFile:H,UPLOAD_STATUS:W}=Q();function X(){a("update:fileList",i.value)}function J(){const{buildFormData:e,formData:s={},statusKey:o}=t,{action:a,name:l,header:r={},accept:n,successStatus:u,uploadMethod:c}=t,d=O(u)?u:200;for(const t of i.value)t[o]===W.PENDING&&(e?e({file:t,formData:s,resolve:e=>{e&&w(t,{action:a,header:r,name:l,formData:e,fileType:n,statusCode:d,statusKey:o,uploadMethod:c,onSuccess:te,onError:oe,onProgress:ae})}}):w(t,{action:a,header:r,name:l,formData:s,fileType:n,statusCode:d,statusKey:o,uploadMethod:c,onSuccess:te,onError:oe,onProgress:ae}))}function V(e){return new Promise(((s,o)=>{G({src:e,success:e=>{s(e)},fail:e=>{o(e)}})}))}function se(e,s){const{statusKey:o}=t,a={uid:R.id++,name:e.name||"",thumb:e.thumb||"",[o]:"pending",size:e.size||0,url:e.path,percent:0};"number"==typeof s?i.value.splice(s,1,a):i.value.push(a),t.autoUpload&&J()}function oe(e,s,o){const{statusKey:l}=t,r=i.value.findIndex((e=>e.uid===s.uid));r>-1&&(i.value[r][l]="fail",i.value[r].error=e.message,i.value[r].response=e,a("fail",{error:e,file:s,formData:o}),X())}function te(e,s,o){const{statusKey:l}=t,r=i.value.findIndex((e=>e.uid===s.uid));r>-1&&(i.value[r][l]="success",i.value[r].response=e.data,a("change",{fileList:i.value}),a("success",{file:s,fileList:i.value,formData:o}),X())}function ae(e,s){const o=i.value.findIndex((e=>e.uid===s.uid));o>-1&&(i.value[o].percent=e.progress,a("progress",{response:e,file:s}))}function le(e){const{multiple:s,maxSize:o,accept:l,sizeType:r,limit:n,sourceType:u,compressed:c,maxDuration:d,camera:p,beforeUpload:f,extension:m}=t;H({multiple:!O(e)&&s,sizeType:r,sourceType:u,maxCount:n?n-i.value.length:n,accept:l,compressed:c,maxDuration:d,camera:p,extension:m}).then((t=>{let l=t;s||(l=l.slice(0,1));const r=s=>{return t=this,l=null,i=function*(){for(let t=0;t<s.length;t++){const l=s[t];if("image"===l.type&&!l.size){const e=yield V(l.path);l.size=e.width*e.height}Number(l.size)<=o?se(l,e):a("oversize",{file:l})}},new Promise(((e,s)=>{var o=e=>{try{r(i.next(e))}catch(o){s(o)}},a=e=>{try{r(i.throw(e))}catch(o){s(o)}},r=s=>s.done?e(s.value):Promise.resolve(s.value).then(o,a);r((i=i.apply(t,l)).next())}));var t,l,i};f?f({files:l,fileList:i.value,resolve:e=>{e&&r(l)}}):r(l)})).catch((e=>{a("chooseerror",{error:e})}))}function ie(){re()}function re(e){if(t.disabled)return;const{beforeChoose:s}=t;s?s({fileList:i.value,resolve:s=>{s&&le(e)}}):le(e)}function ne(e){i.value.splice(i.value.findIndex((s=>s.uid===e.uid)),1),a("change",{fileList:i.value}),a("remove",{file:e}),X()}function ue(e){M({filePath:e.url,showMenu:!0})}function ce(e,s){const{onPreviewFail:o}=t;N({urls:s,current:s[e],fail(){o?o({index:e,imgList:s}):$({title:"预览图片失败",icon:"none"})}})}function de(e,s){var o;const{onPreviewFail:a}=t;null==(o=d.value)||o.open({url:s[e].url,poster:s[e].thumb,title:s[e].name})}function pe(e){const{beforePreview:s,reupload:o}=t,a=S(i.value),l=a.findIndex((s=>s.url===e.url)),r=a.filter((e=>fe(e))),n=r.findIndex((s=>s.url===e.url));o?re(l):s?s({file:e,index:l,imgList:[],fileList:a,resolve:e=>{e&&de(n,r)}}):de(n,r)}function fe(e){return e.name&&E(e.name)||E(e.url)}function me(e){return e.name&&U(e.name)||U(e.url)}return C((()=>t.fileList),(e=>{const{statusKey:s}=t;if(A(e,i.value))return;const o=e.map((e=>(e[s]=e[s]||"success",e.response=e.response||"",n(r({},e),{uid:R.id++}))));i.value=o}),{deep:!0,immediate:!0}),C((()=>t.limit),(e=>{e&&e<i.value.length&&console.error("[wot-design]Error: props limit must less than fileList.length")}),{deep:!0,immediate:!0}),C((()=>t.beforePreview),(e=>{e&&!B(e)&&console.error("The type of beforePreview must be Function")}),{deep:!0,immediate:!0}),C((()=>t.onPreviewFail),(e=>{e&&!B(e)&&console.error("The type of onPreviewFail must be Function")}),{deep:!0,immediate:!0}),C((()=>t.beforeRemove),(e=>{e&&!B(e)&&console.error("The type of beforeRemove must be Function")}),{deep:!0,immediate:!0}),C((()=>t.beforeUpload),(e=>{e&&!B(e)&&console.error("The type of beforeUpload must be Function")}),{deep:!0,immediate:!0}),C((()=>t.beforeChoose),(e=>{e&&!B(e)&&console.error("The type of beforeChoose must be Function")}),{deep:!0,immediate:!0}),C((()=>t.buildFormData),(e=>{e&&!B(e)&&console.error("The type of buildFormData must be Function")}),{deep:!0,immediate:!0}),(e,s)=>{const o=T,a=y,r=b,n=j;return m(),P(L,null,[_(a,{class:g(["wd-upload",e.customClass]),style:h(e.customStyle)},{default:v((()=>[(m(!0),P(L,null,D(i.value,((s,u)=>(m(),p(a,{class:g(["wd-upload__preview",e.customPreviewClass]),key:u},{default:v((()=>[_(a,{class:"wd-upload__status-content"},{default:v((()=>[me(s)?(m(),p(o,{key:0,src:s.url,mode:e.imageMode,class:"wd-upload__picture",onClick:e=>function(e){const{beforePreview:s,reupload:o}=t,a=S(i.value),l=a.findIndex((s=>s.url===e.url)),r=a.filter((e=>me(e))).map((e=>e.url)),n=r.findIndex((s=>s===e.url));o?re(l):s?s({file:e,index:l,fileList:a,imgList:r,resolve:e=>{e&&ce(n,r)}}):ce(n,r)}(s)},null,8,["src","mode","onClick"])):fe(s)?(m(),P(L,{key:1},[s.thumb?(m(),p(a,{key:0,class:"wd-upload__video",onClick:e=>pe(s)},{default:v((()=>[_(o,{src:s.thumb,mode:e.imageMode,class:"wd-upload__picture"},null,8,["src","mode"]),_(q,{name:"play-circle-filled","custom-class":"wd-upload__video-paly"})])),_:2},1032,["onClick"])):(m(),p(a,{key:1,class:"wd-upload__video",onClick:e=>pe(s)},{default:v((()=>[_(r,{src:s.url,title:s.name||"视频"+u,"object-fit":"contain",controls:!1,poster:s.thumb,autoplay:!1,"show-center-play-btn":!1,"show-fullscreen-btn":!1,"show-play-btn":!1,"show-loading":!1,"show-progress":!1,"show-mute-btn":!1,"enable-progress-gesture":!1,enableNative:!0,class:"wd-upload__video"},null,8,["src","title","poster"]),_(q,{name:"play-circle-filled","custom-class":"wd-upload__video-paly"})])),_:2},1032,["onClick"]))],64)):(m(),p(a,{key:2,class:"wd-upload__file",onClick:e=>function(e){const{beforePreview:s,reupload:o}=t,a=S(i.value),l=a.findIndex((s=>s.url===e.url));o?re(l):s?s({file:e,index:l,imgList:[],fileList:a,resolve:s=>{s&&ue(e)}}):ue(e)}(s)},{default:v((()=>[_(q,{name:"file","custom-class":"wd-upload__file-icon"}),_(a,{class:"wd-upload__file-name"},{default:v((()=>[F(z(s.name||s.url),1)])),_:2},1024)])),_:2},1032,["onClick"]))])),_:2},1024),"success"!==s[t.statusKey]?(m(),p(a,{key:0,class:"wd-upload__mask wd-upload__status-content"},{default:v((()=>["loading"===s[t.statusKey]?(m(),p(a,{key:0,class:"wd-upload__status-content"},{default:v((()=>[_(Y,{type:e.loadingType,size:e.loadingSize,color:e.loadingColor},null,8,["type","size","color"]),_(n,{class:"wd-upload__progress-txt"},{default:v((()=>[F(z(s.percent)+"%",1)])),_:2},1024)])),_:2},1024)):f("",!0),"fail"===s[t.statusKey]?(m(),p(a,{key:1,class:"wd-upload__status-content"},{default:v((()=>[_(q,{name:"close-outline","custom-class":"wd-upload__icon"}),_(n,{class:"wd-upload__progress-txt"},{default:v((()=>[F(z(s.error||K(l)("error")),1)])),_:2},1024)])),_:2},1024)):f("",!0)])),_:2},1024)):f("",!0),"loading"===s[t.statusKey]||e.disabled?f("",!0):(m(),p(q,{key:1,name:"error-fill","custom-class":"wd-upload__close",onClick:e=>function(e){const{beforeRemove:s}=t,o=e,a=i.value[o];s?s({file:a,index:o,fileList:i.value,resolve:e=>{e&&ne(a)}}):ne(a)}(u)},null,8,["onClick"])),e.$slots["preview-cover"]?I(e.$slots,"preview-cover",{key:2,file:s,index:u},void 0,!0):f("",!0)])),_:2},1032,["class"])))),128)),u.value?(m(),P(L,{key:0},[e.$slots.default?(m(),p(a,{key:0,class:g(["wd-upload__evoke-slot",e.customEvokeClass]),onClick:ie},{default:v((()=>[I(e.$slots,"default",{},void 0,!0)])),_:3},8,["class"])):(m(),p(a,{key:1,onClick:ie,class:g(["wd-upload__evoke",e.disabled?"is-disabled":"",e.customEvokeClass])},{default:v((()=>[_(q,{class:"wd-upload__evoke-icon",name:"fill-camera"}),e.limit&&e.showLimitNum?(m(),p(a,{key:0,class:"wd-upload__evoke-num"},{default:v((()=>[F(""+z(i.value.length)+"/"+z(e.limit)+"",1)])),_:1})):f("",!0)])),_:1},8,["class"]))],64)):f("",!0)])),_:3},8,["class","style"]),_(ee,{ref_key:"videoPreview",ref:d},null,512)],64)}}})),[["__scopeId","data-v-0f2afe0a"]]);export{se as _};