Commit cf27c766 authored by luckyCao's avatar luckyCao Committed by Zhi Cun

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

* Perfect picture preview function

* update test
parent 6f62feed
...@@ -87,12 +87,16 @@ export default { ...@@ -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,
......
...@@ -15,7 +15,9 @@ ...@@ -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 @@ ...@@ -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);
} }
}, },
......
...@@ -127,10 +127,12 @@ describe('Image', () => { ...@@ -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');
}); });
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment