feat(Uploader): add click-preview event (#4206)

This commit is contained in:
neverland 2019-08-23 14:42:16 +08:00 committed by GitHub
parent 0b5cabbe24
commit 1cc6f03e6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 4 deletions

View File

@ -133,6 +133,7 @@ export default {
| Event | Description | Arguments | | Event | Description | Arguments |
|------|------|------| |------|------|------|
| oversize | Triggered when file size over limit | Same as after-read | | oversize | Triggered when file size over limit | Same as after-read |
| click-preview | Triggered when click preview image | Same as after-read |
| delete | Triggered when delete preview file | file | | delete | Triggered when delete preview file | file |
### Slots ### Slots
@ -141,7 +142,7 @@ export default {
|------|------| |------|------|
| default | Custom icon | | default | Custom icon |
### Parematers of before-read、after-read ### Parematers of before-read、after-read、before-delete
| Attribute | Description | Type | | Attribute | Description | Type |
|------|------|------| |------|------|------|

View File

@ -149,6 +149,7 @@ export default {
| 事件名 | 说明 | 回调参数 | | 事件名 | 说明 | 回调参数 |
|------|------|------| |------|------|------|
| oversize | 文件大小超过限制时触发 | 同`after-read` | | oversize | 文件大小超过限制时触发 | 同`after-read` |
| click-preview | 点击预览图时触发 | 同`after-read` |
| delete | 删除文件预览时触发 | file: 被删除的文件对象 | | delete | 删除文件预览时触发 | file: 被删除的文件对象 |
### Slots ### Slots

View File

@ -79,8 +79,8 @@ export default {
return true; return true;
}, },
afterRead(file) { afterRead(file, detail) {
console.log(file); console.log(file, detail);
} }
} }
}; };

View File

@ -193,13 +193,22 @@ export default createComponent({
}); });
}, },
onClickPreview(file) {
this.$emit('click-preview', file, this.detail);
},
renderPreview() { renderPreview() {
if (!this.previewImage) { if (!this.previewImage) {
return; return;
} }
return this.fileList.map((item, index) => ( return this.fileList.map((item, index) => (
<div class={bem('preview')}> <div
class={bem('preview')}
onClick={() => {
this.onClickPreview(item);
}}
>
{isImageFile(item) ? ( {isImageFile(item) ? (
<Image <Image
fit={this.imageFit} fit={this.imageFit}

View File

@ -343,3 +343,16 @@ it('click to preview image', () => {
const imagePreviewNode2 = document.querySelector('.van-image-preview'); const imagePreviewNode2 = document.querySelector('.van-image-preview');
expect(imagePreviewNode2).toMatchSnapshot(); expect(imagePreviewNode2).toMatchSnapshot();
}); });
it('click-preview event', () => {
const wrapper = mount(Uploader, {
propsData: {
previewFullImage: false,
fileList: [{ url: IMAGE }, { url: PDF }]
}
});
wrapper.find('.van-image').trigger('click');
expect(wrapper.emitted('click-preview')[0][0]).toEqual({ url: IMAGE });
expect(wrapper.emitted('click-preview')[0][1]).toEqual({ name: '' });
});