mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
feat(Uploader): add preview-full-image prop (#4205)
This commit is contained in:
parent
eeb65ed922
commit
0b5cabbe24
@ -113,8 +113,9 @@ export default {
|
|||||||
|------|------|------|------|
|
|------|------|------|------|
|
||||||
| name | Input name | `string | number` | - |
|
| name | Input name | `string | number` | - |
|
||||||
| accept | Accepted file type | `string` | `image/*` |
|
| accept | Accepted file type | `string` | `image/*` |
|
||||||
| preview-image | Whether to show image preview | `boolean` | `true` |
|
|
||||||
| preview-size | Size of preview image | `string | number` | `80px` |
|
| preview-size | Size of preview image | `string | number` | `80px` |
|
||||||
|
| preview-image | Whether to show image preview | `boolean` | `true` |
|
||||||
|
| preview-full-image | Whethe to show full screen image preview when click image | `boolean` | `true` |
|
||||||
| multiple | Whether to enable multiple selection pictures | `boolean` | `false` |
|
| multiple | Whether to enable multiple selection pictures | `boolean` | `false` |
|
||||||
| disabled | Whether to disabled the upload | `boolean` | `false` |
|
| disabled | Whether to disabled the upload | `boolean` | `false` |
|
||||||
| capture | Capture,can be set to `camera` | `string` | - |
|
| capture | Capture,can be set to `camera` | `string` | - |
|
||||||
|
@ -131,6 +131,7 @@ export default {
|
|||||||
| accept | 接受的文件类型 | `string` | `image/*` | - |
|
| accept | 接受的文件类型 | `string` | `image/*` | - |
|
||||||
| preview-size | 预览图和上传区域的尺寸,默认单位为`px` | `string | number` | `80px` | 2.0.0 |
|
| preview-size | 预览图和上传区域的尺寸,默认单位为`px` | `string | number` | `80px` | 2.0.0 |
|
||||||
| preview-image | 是否在上传完成后展示预览图 | `boolean` | `true` | 2.0.0 |
|
| preview-image | 是否在上传完成后展示预览图 | `boolean` | `true` | 2.0.0 |
|
||||||
|
| preview-full-image | 是否在点击预览图后展示全屏图片预览 | `boolean` | `true` | 2.1.5 |
|
||||||
| multiple | 是否开启图片多选,部分安卓机型不支持 | `boolean` | `false` | 2.0.0 |
|
| multiple | 是否开启图片多选,部分安卓机型不支持 | `boolean` | `false` | 2.0.0 |
|
||||||
| disabled | 是否禁用文件上传 | `boolean` | `false` | - |
|
| disabled | 是否禁用文件上传 | `boolean` | `false` | - |
|
||||||
| capture | 图片选取模式,可选值为`camera`(直接调起摄像头) | `string` | - | 2.0.0 |
|
| capture | 图片选取模式,可选值为`camera`(直接调起摄像头) | `string` | - | 2.0.0 |
|
||||||
|
@ -44,6 +44,10 @@ export default createComponent({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
|
previewFullImage: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
imageFit: {
|
imageFit: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'cover'
|
default: 'cover'
|
||||||
@ -174,6 +178,10 @@ export default createComponent({
|
|||||||
},
|
},
|
||||||
|
|
||||||
onPreviewImage(item) {
|
onPreviewImage(item) {
|
||||||
|
if (!this.previewFullImage) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const imageFiles = this.fileList
|
const imageFiles = this.fileList
|
||||||
.filter(item => isImageFile(item))
|
.filter(item => isImageFile(item))
|
||||||
.map(item => item.content || item.url);
|
.map(item => item.content || item.url);
|
||||||
|
@ -22,21 +22,12 @@ exports[`click to preview image 1`] = `
|
|||||||
style="transition: .3s all;"
|
style="transition: .3s all;"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
class="van-swipe-item"
|
|
||||||
style="width: 0px; height: 100%; transform: translateX(0px);"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
class="van-image-preview__image"
|
|
||||||
src="data:image/test"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="van-image-preview__index"
|
class="van-image-preview__index"
|
||||||
>
|
>
|
||||||
1/2
|
1/1
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
@ -101,7 +101,8 @@ it('before read return promise and resolve', async () => {
|
|||||||
const afterRead = jest.fn();
|
const afterRead = jest.fn();
|
||||||
const wrapper = mount(Uploader, {
|
const wrapper = mount(Uploader, {
|
||||||
propsData: {
|
propsData: {
|
||||||
beforeRead: () => new Promise(resolve => {
|
beforeRead: () =>
|
||||||
|
new Promise(resolve => {
|
||||||
resolve();
|
resolve();
|
||||||
}),
|
}),
|
||||||
afterRead
|
afterRead
|
||||||
@ -118,7 +119,8 @@ it('before read return promise and reject', async () => {
|
|||||||
const afterRead = jest.fn();
|
const afterRead = jest.fn();
|
||||||
const wrapper = mount(Uploader, {
|
const wrapper = mount(Uploader, {
|
||||||
propsData: {
|
propsData: {
|
||||||
beforeRead: () => new Promise((resolve, reject) => {
|
beforeRead: () =>
|
||||||
|
new Promise((resolve, reject) => {
|
||||||
reject();
|
reject();
|
||||||
}),
|
}),
|
||||||
afterRead
|
afterRead
|
||||||
@ -189,9 +191,7 @@ it('image-fit prop', () => {
|
|||||||
const wrapper = mount(Uploader, {
|
const wrapper = mount(Uploader, {
|
||||||
propsData: {
|
propsData: {
|
||||||
imageFit: 'contain',
|
imageFit: 'contain',
|
||||||
fileList: [
|
fileList: [{ url: 'https://img.yzcdn.cn/vant/cat.jpeg' }]
|
||||||
{ url: 'https://img.yzcdn.cn/vant/cat.jpeg' }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -325,28 +325,21 @@ it('before-delete prop rejected', async () => {
|
|||||||
expect(wrapper.emitted('delete')).toBeFalsy();
|
expect(wrapper.emitted('delete')).toBeFalsy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('click to preview image', async () => {
|
it('click to preview image', () => {
|
||||||
const wrapper = mount(Uploader, {
|
const wrapper = mount(Uploader, {
|
||||||
propsData: {
|
propsData: {
|
||||||
fileList: [
|
previewFullImage: false,
|
||||||
{ url: IMAGE },
|
fileList: [{ url: IMAGE }, { url: PDF }]
|
||||||
{ url: PDF }
|
|
||||||
],
|
|
||||||
previewSize: 30
|
|
||||||
},
|
|
||||||
listeners: {
|
|
||||||
input(fileList) {
|
|
||||||
wrapper.setProps({ fileList });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
wrapper.vm.onChange(file);
|
|
||||||
await later();
|
|
||||||
|
|
||||||
wrapper.find('.van-image').trigger('click');
|
wrapper.find('.van-image').trigger('click');
|
||||||
|
|
||||||
const imagePreviewNode = document.querySelector('.van-image-preview');
|
const imagePreviewNode = document.querySelector('.van-image-preview');
|
||||||
expect(imagePreviewNode).toMatchSnapshot();
|
expect(imagePreviewNode).toBeFalsy();
|
||||||
imagePreviewNode.remove();
|
|
||||||
|
wrapper.setProps({ previewFullImage: true });
|
||||||
|
wrapper.find('.van-image').trigger('click');
|
||||||
|
|
||||||
|
const imagePreviewNode2 = document.querySelector('.van-image-preview');
|
||||||
|
expect(imagePreviewNode2).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user