feat: 统一图片铺满展示与原生预览
This commit is contained in:
@@ -11,17 +11,26 @@ afterEach(() => {
|
||||
})
|
||||
|
||||
describe('资源图片展示与原图预览', () => {
|
||||
it('默认保持 contain 并禁用预览,不干扰历史缩略图选择', async () => {
|
||||
it('默认使用 cover 并禁用预览,不干扰历史缩略图选择', async () => {
|
||||
wrapper = mount(AssetImage, {
|
||||
attachTo: document.body,
|
||||
props: { src: '/storage/history.png', alt: '历史图片' }
|
||||
})
|
||||
expect(wrapper.getComponent(NImage).props()).toMatchObject({ objectFit: 'contain', previewDisabled: true })
|
||||
expect(wrapper.getComponent(NImage).props()).toMatchObject({ objectFit: 'cover', previewDisabled: true })
|
||||
expect(wrapper.get<HTMLImageElement>('img').element.style.objectFit).toBe('cover')
|
||||
await wrapper.get('img').trigger('click')
|
||||
await flushPromises()
|
||||
expect(document.querySelector('.n-image-preview-container')).toBeNull()
|
||||
})
|
||||
|
||||
it('特殊展示仍可显式选择 contain,样式交由 NImage 控制', () => {
|
||||
wrapper = mount(AssetImage, {
|
||||
props: { src: '/storage/reference.png', alt: '完整参考图', objectFit: 'contain' }
|
||||
})
|
||||
expect(wrapper.getComponent(NImage).props('objectFit')).toBe('contain')
|
||||
expect(wrapper.get<HTMLImageElement>('img').element.style.objectFit).toBe('contain')
|
||||
})
|
||||
|
||||
it('cover 仅裁切卡片,点击使用 Naive 原生预览展示同一完整资源,遮罩可关闭', async () => {
|
||||
wrapper = mount(AssetImage, {
|
||||
attachTo: document.body,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { computed, ref, watch } from 'vue'
|
||||
import { ImageOff } from '@lucide/vue'
|
||||
import { referenceImageUrl } from '../../lib/assets'
|
||||
|
||||
/** 安全图片展示;铺满与原图预览按场景开启,历史选择按钮默认不触发预览。 */
|
||||
/** 图片统一铺满容器;原图预览按场景开启,历史选择按钮不触发预览。 */
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
src?: string | null
|
||||
@@ -14,7 +14,7 @@ const props = withDefaults(
|
||||
objectFit?: 'contain' | 'cover'
|
||||
preview?: boolean
|
||||
}>(),
|
||||
{ retryable: true, objectFit: 'contain', preview: false }
|
||||
{ retryable: true, objectFit: 'cover', preview: false }
|
||||
)
|
||||
const failed = ref(false)
|
||||
const url = computed(() => (props.src ? referenceImageUrl(props.src) : null))
|
||||
|
||||
Reference in New Issue
Block a user