Skip to content

Commit b9c1dca

Browse files
authored
feat(Uploader): add close-preview event (youzan#4376)
1 parent 2052583 commit b9c1dca

4 files changed

Lines changed: 24 additions & 2 deletions

File tree

src/uploader/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ export default {
134134
|------|------|------|
135135
| oversize | Triggered when file size over limit | Same as after-read |
136136
| click-preview | Triggered when click preview image | Same as after-read |
137+
| close-preview | Triggered when close full screen image preview | - |
137138
| delete | Triggered when delete preview file | file |
138139

139140
### Slots

src/uploader/README.zh-CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ export default {
150150
|------|------|------|
151151
| oversize | 文件大小超过限制时触发 |`after-read` |
152152
| click-preview | 点击预览图时触发 |`after-read` |
153+
| close-preview | 关闭全屏图片预览时触发 | - |
153154
| delete | 删除文件预览时触发 | file: 被删除的文件对象 |
154155

155156
### Slots

src/uploader/index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,10 @@ export default createComponent({
189189
ImagePreview({
190190
images: imageFiles,
191191
closeOnPopstate: true,
192-
startPosition: imageFiles.indexOf(item.content || item.url)
192+
startPosition: imageFiles.indexOf(item.content || item.url),
193+
onClose: () => {
194+
this.$emit('close-preview');
195+
}
193196
});
194197
},
195198

src/uploader/test/index.spec.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Uploader from '..';
2-
import { mount, later } from '../../../test/utils';
2+
import { mount, later, triggerDrag } from '../../../test/utils';
33

44
window.File = function() {
55
this.size = 10000;
@@ -356,3 +356,20 @@ it('click-preview event', () => {
356356
expect(wrapper.emitted('click-preview')[0][0]).toEqual({ url: IMAGE });
357357
expect(wrapper.emitted('click-preview')[0][1]).toEqual({ name: '' });
358358
});
359+
360+
it('close-preview event', async () => {
361+
const wrapper = mount(Uploader, {
362+
propsData: {
363+
fileList: [{ url: IMAGE }]
364+
}
365+
});
366+
367+
wrapper.find('.van-image').trigger('click');
368+
369+
const preview = document.querySelector('.van-image-preview');
370+
const swipe = preview.querySelector('.van-swipe__track');
371+
triggerDrag(swipe, 0, 0);
372+
373+
await later(300);
374+
expect(wrapper.emitted('close-preview')).toBeTruthy();
375+
});

0 commit comments

Comments
 (0)