diff --git a/src/field/README.md b/src/field/README.md index f0c320446..b60b2a0e7 100644 --- a/src/field/README.md +++ b/src/field/README.md @@ -181,7 +181,7 @@ Field support all native events of input tag ### Methods -Use ref to get field instance and call instance methods +Use ref to get Field instance and call instance methods | Name | Description | Attribute | Return value | |------|------|------|------| diff --git a/src/field/README.zh-CN.md b/src/field/README.zh-CN.md index 90c6a2cf7..600cb1e2d 100644 --- a/src/field/README.zh-CN.md +++ b/src/field/README.zh-CN.md @@ -187,7 +187,7 @@ Vue.use(Field); ### 方法 -通过 ref 可以获取到 field 实例并调用实例方法 +通过 ref 可以获取到 Field 实例并调用实例方法 | 方法名 | 说明 | 参数 | 返回值 | |------|------|------|------| diff --git a/src/uploader/README.md b/src/uploader/README.md index 83c1a602e..7b02ac8ec 100644 --- a/src/uploader/README.md +++ b/src/uploader/README.md @@ -157,3 +157,11 @@ export default { | file | Result contains File object | | text | Result contains File object and text content | | dataUrl | Result contains File object and base64 content | + +### Methods + +Use ref to get Uploader instance and call instance methods + +| Name | Description | Attribute | Return value | +|------|------|------|------| +| closeImagePreview | Close full screen image preview | - | - | diff --git a/src/uploader/README.zh-CN.md b/src/uploader/README.zh-CN.md index 649824fee..8ac7a4da1 100644 --- a/src/uploader/README.zh-CN.md +++ b/src/uploader/README.zh-CN.md @@ -177,3 +177,11 @@ before-read、after-read、before-delete 执行时会传递以下回调参数: | file | 结果仅包含 File 对象 | | text | 结果包含 File 对象,以及文件的文本内容 | | dataUrl | 结果包含 File 对象,以及文件对应的 base64 编码 | + +### 方法 + +通过 ref 可以获取到 Uploader 实例并调用实例方法 + +| 方法名 | 说明 | 参数 | 返回值 | +|------|------|------|------| +| closeImagePreview | 关闭全屏的图片预览 | - | - | diff --git a/src/uploader/index.js b/src/uploader/index.js index 8a2e1abab..92a9721e8 100644 --- a/src/uploader/index.js +++ b/src/uploader/index.js @@ -197,7 +197,7 @@ export default createComponent({ const imageFiles = this.fileList.filter(item => isImageFile(item)); const imageContents = imageFiles.map(item => item.content || item.url); - ImagePreview({ + this.imagePreview = ImagePreview({ images: imageContents, closeOnPopstate: true, startPosition: imageFiles.indexOf(item), @@ -207,6 +207,12 @@ export default createComponent({ }); }, + closeImagePreview() { + if (this.imagePreview) { + this.imagePreview.close(); + } + }, + renderPreviewItem(item, index) { const DeleteIcon = ( { expect(imagePreviewNode2.querySelectorAll('.van-image-preview__image').length).toEqual(1); }); +it('closeImagePreview method', () => { + const close = jest.fn(); + const wrapper = mount(Uploader, { + mocks: { + imagePreview: { + close + } + } + }); + + wrapper.vm.closeImagePreview(); + expect(close).toHaveBeenCalledTimes(1); + + // should not throw error + const wrapper2 = mount(Uploader); + wrapper2.vm.closeImagePreview(); +}); + it('click-preview event', () => { const wrapper = mount(Uploader, { propsData: {