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 |
|------|------|------|
| 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 |
### Slots
@ -141,7 +142,7 @@ export default {
|------|------|
| default | Custom icon |
### Parematers of before-read、after-read
### Parematers of before-read、after-read、before-delete
| Attribute | Description | Type |
|------|------|------|

View File

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

View File

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

View File

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

View File

@ -343,3 +343,16 @@ it('click to preview image', () => {
const imagePreviewNode2 = document.querySelector('.van-image-preview');
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: '' });
});