UNPKG

vxe-pc-ui

Version:
1 lines 2.4 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_image=_interopRequireDefault(require("./image"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeImageGroup",props:{urlList:[Array,String],showPreview:{type:Boolean,default:()=>(0,_core.getConfig)().imageGroup.showPreview},imageStyle:Object,size:{type:String,default:()=>(0,_core.getConfig)().imageGroup.size||(0,_core.getConfig)().size},toolbarConfig:Object,showPrintButton:{type:Boolean,default:()=>(0,_core.getConfig)().imageGroup.showPrintButton},showDownloadButton:{type:Boolean,default:()=>(0,_core.getConfig)().imageGroup.showDownloadButton},getThumbnailUrlMethod:Function},emits:["click","change","rotate"],setup(n,e){const r=e["emit"];var t=_xeUtils.default.uniqueId();const i=(0,_core.useSize)(n)["computeSize"],l=(0,_vue.computed)(()=>{var e=n["urlList"];return e?(_xeUtils.default.isArray(e)?e:[e]).map(e=>_xeUtils.default.isString(e)?{url:e,alt:""}:{url:e.url,alt:e.alt}):[]}),u=(0,_vue.computed)(()=>Object.assign({},(0,_core.getConfig)().imageGroup.imageStyle,n.imageStyle)),a=(0,_vue.computed)(()=>n.getThumbnailUrlMethod||(0,_core.getConfig)().imageGroup.getThumbnailUrlMethod),o={computeSize:i},s={xID:t,props:n,context:e,getComputeMaps:()=>o};Object.assign(s,{dispatchEvent(e,t,o){r(e,(0,_core.createEvent)(o,{$imageGroup:s},t))}},{handleClickImgEvent(e,t){var{showPreview:o,toolbarConfig:r,showPrintButton:i,showDownloadButton:u}=n;const a=t["url"];t=l.value;o&&a&&(0,_util.openPreviewImage)({activeIndex:Math.max(0,_xeUtils.default.findIndexOf(t,e=>e.url===a)),urlList:t,toolbarConfig:r,showPrintButton:i,showDownloadButton:u,events:{change(e){s.dispatchEvent("change",e,e.$event)},rotate(e){s.dispatchEvent("rotate",e,e.$event)}}}),s.dispatchEvent("click",{url:a,urlList:t},e)}});return s.renderVN=()=>{var e=l.value,t=i.value;const o=u.value,r=a.value;return(0,_vue.h)("div",{class:["vxe-image-group",{["size--"+t]:t}]},e?e.map((e,t)=>(0,_vue.h)(_image.default,{key:t,src:e.url,alt:e.alt,width:o.width,height:o.height,getThumbnailUrlMethod:r})):[])},(0,_vue.provide)("$xeImageGroup",s),s},render(){return this.renderVN()}});