Image: Perfect picture preview behavior (#16985) (#17375)

* Perfect picture preview function

* update test
pull/17926/head
luckyCao 2019-10-31 15:14:04 +08:00 committed by Zhi Cun
parent 6f62feed3d
commit cf27c7664d
3 changed files with 15 additions and 4 deletions

View File

@ -87,12 +87,16 @@ export default {
onClose: { onClose: {
type: Function, type: Function,
default: () => {} default: () => {}
},
initialIndex: {
type: Number,
default: 0
} }
}, },
data() { data() {
return { return {
index: 0, index: this.initialIndex,
isShow: false, isShow: false,
infinite: true, infinite: true,
loading: false, loading: false,

View File

@ -15,7 +15,9 @@
:src="src" :src="src"
:style="imageStyle" :style="imageStyle"
:class="{ 'el-image__inner--center': alignCenter, 'el-image__preview': preview }"> :class="{ 'el-image__inner--center': alignCenter, 'el-image__preview': preview }">
<image-viewer :z-index="zIndex" v-if="preview && showViewer" :on-close="closeViewer" :url-list="previewSrcList"/> <template v-if="preview">
<image-viewer :z-index="zIndex" :initial-index="imageIndex" v-show="showViewer" :on-close="closeViewer" :url-list="previewSrcList"/>
</template>
</div> </div>
</template> </template>
@ -88,6 +90,9 @@
preview() { preview() {
const { previewSrcList } = this; const { previewSrcList } = this;
return Array.isArray(previewSrcList) && previewSrcList.length > 0; return Array.isArray(previewSrcList) && previewSrcList.length > 0;
},
imageIndex() {
return this.previewSrcList.indexOf(this.src);
} }
}, },

View File

@ -127,10 +127,12 @@ describe('Image', () => {
await wait(); await wait();
vm.$el.querySelector('.el-image__inner').click(); vm.$el.querySelector('.el-image__inner').click();
await wait(); await wait();
expect(vm.$el.querySelector('.el-image-viewer__wrapper')).to.exist;
const $wrapper = vm.$el.querySelector('.el-image-viewer__wrapper');
expect($wrapper).to.exist;
vm.$el.querySelector('.el-image-viewer__close').click(); vm.$el.querySelector('.el-image-viewer__close').click();
await wait(1000); await wait(1000);
expect(vm.$el.querySelector('.el-image-viewer__wrapper')).to.not.exist; expect($wrapper.style.display).to.equal('none');
}); });
}); });