1 line
5.5 KiB
JavaScript
1 line
5.5 KiB
JavaScript
(self["webpackChunkuniapp"]=self["webpackChunkuniapp"]||[]).push([[93],{1435:function(e,t,i){var n=i(3094);n.__esModule&&(n=n.default),"string"===typeof n&&(n=[[e.id,n,""]]),n.locals&&(e.exports=n.locals);var s=i(5472).Z;s("53d19eea",n,!0,{sourceMap:!1,shadowMode:!1})},3093:function(e,t,i){"use strict";i.d(t,{Z:function(){return d}});var n,s={"u-Text":i(1153).Z},l=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("v-uni-view",{staticClass:"u-album"},e._l(e.showUrls,(function(t,n){return i("v-uni-view",{key:n,ref:"u-album__row",refInFor:!0,staticClass:"u-album__row",attrs:{forComputedUse:e.albumWidth}},e._l(t,(function(t,s){return i("v-uni-view",{key:s,staticClass:"u-album__row__wrapper",style:[e.imageStyle(n+1,s+1)],on:{click:function(i){arguments[0]=i=e.$handleEvent(i),e.previewFullImage&&e.onPreviewTap(e.getSrc(t))}}},[i("v-uni-image",{style:[{width:e.imageWidth,height:e.imageHeight}],attrs:{src:e.getSrc(t),mode:1===e.urls.length?e.imageHeight>0?e.singleMode:"widthFix":e.multipleMode}}),e.showMore&&e.urls.length>e.rowCount*e.showUrls.length&&n===e.showUrls.length-1&&s===e.showUrls[e.showUrls.length-1].length-1?i("v-uni-view",{staticClass:"u-album__row__wrapper__text"},[i("u--text",{attrs:{text:"+"+(e.urls.length-e.maxCount),color:"#fff",size:.3*e.multipleSize,align:"center",customStyle:"justify-content: center"}})],1):e._e()],1)})),1)})),1)},u=[],r={props:{urls:{type:Array,default:uni.$u.props.album.urls},keyName:{type:String,default:uni.$u.props.album.keyName},singleSize:{type:[String,Number],default:uni.$u.props.album.singleSize},multipleSize:{type:[String,Number],default:uni.$u.props.album.multipleSize},space:{type:[String,Number],default:uni.$u.props.album.space},singleMode:{type:String,default:uni.$u.props.album.singleMode},multipleMode:{type:String,default:uni.$u.props.album.multipleMode},maxCount:{type:[String,Number],default:uni.$u.props.album.maxCount},previewFullImage:{type:Boolean,default:uni.$u.props.album.previewFullImage},rowCount:{type:[String,Number],default:uni.$u.props.album.rowCount},showMore:{type:Boolean,default:uni.$u.props.album.showMore}}},a={name:"u-album",mixins:[uni.$u.mpMixin,uni.$u.mixin,r],data(){return{singleWidth:0,singleHeight:0,singlePercent:.6}},watch:{urls:{immediate:!0,handler(e){1===e.length&&this.getImageRect()}}},computed:{imageStyle(){return(e,t)=>{const{space:i,rowCount:n,multipleSize:s,urls:l}=this,{addUnit:u,addStyle:r}=uni.$u,a=this.showUrls.length,o=(this.urls.length,{marginRight:u(i),marginBottom:u(i)});return e===a&&(o.marginBottom=0),(t===n||e===a&&t===this.showUrls[e-1].length)&&(o.marginRight=0),o}},showUrls(){const e=[];return this.urls.map(((t,i)=>{if(i+1<=this.maxCount){const n=Math.floor(i/this.rowCount);e[n]||(e[n]=[]),e[n].push(t)}})),e},imageWidth(){return uni.$u.addUnit(1===this.urls.length?this.singleWidth:this.multipleSize)},imageHeight(){return uni.$u.addUnit(1===this.urls.length?this.singleHeight:this.multipleSize)},albumWidth(){let e=0;return e=1===this.urls.length?this.singleWidth:this.showUrls[0].length*this.multipleSize+this.space*(this.showUrls[0].length-1),this.$emit("albumWidth",e),e}},methods:{onPreviewTap(e){const t=this.urls.map((e=>this.getSrc(e)));uni.previewImage({current:e,urls:t})},getSrc(e){return uni.$u.test.object(e)?this.keyName&&e[this.keyName]||e.src:e},getImageRect(){const e=this.getSrc(this.urls[0]);uni.getImageInfo({src:e,success:e=>{const t=e.width>=e.height;this.singleWidth=t?this.singleSize:e.width/e.height*this.singleSize,this.singleHeight=t?e.height/e.width*this.singleWidth:this.singleSize},fail:()=>{this.getComponentWidth()}})},async getComponentWidth(){await uni.$u.sleep(30),this.$uGetRect(".u-album__row").then((e=>{this.singleWidth=e.width*this.singlePercent}))}}},o=a,h=(i(1435),i(1503)),p=(0,h.Z)(o,l,u,!1,null,"863ddef2",null,!1,s,n),d=p.exports},3094:function(e,t,i){"use strict";i.r(t);var n=i(2916),s=i.n(n),l=i(3282),u=i.n(l),r=u()(s());r.push([e.id,'@charset "UTF-8";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\n *\n */\n/**\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\n *\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\n */\n/* 颜色变量 */\n/* 行为相关颜色 */\n/* 文字基本颜色 */\n/* 背景颜色 */\n/* 边框颜色 */\n/* 尺寸变量 */\n/* 文字尺寸 */\n/* 图片尺寸 */\n/* Border Radius */\n/* 水平间距 */\n/* 垂直间距 */\n/* 透明度 */\n/* 文章场景相关 */uni-view[data-v-863ddef2], uni-scroll-view[data-v-863ddef2], uni-swiper-item[data-v-863ddef2]{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}.u-album[data-v-863ddef2]{\ndisplay:flex;\nflex-direction:column}.u-album__row[data-v-863ddef2]{\ndisplay:flex;\nflex-direction:row;flex-wrap:wrap}.u-album__row__wrapper[data-v-863ddef2]{position:relative}.u-album__row__wrapper__text[data-v-863ddef2]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.3);\ndisplay:flex;\nflex-direction:row;justify-content:center;align-items:center}',""]),t["default"]=r}}]); |