feat: 形态图库支持铺满展示与原图预览
This commit is contained in:
@@ -4,10 +4,17 @@ import { computed, ref, watch } from 'vue'
|
||||
import { ImageOff } from '@lucide/vue'
|
||||
import { referenceImageUrl } from '../../lib/assets'
|
||||
|
||||
/** 安全图片展示,资源失效或地址不合法时提供明确占位,不自动改用临时 Provider URL。 */
|
||||
/** 安全图片展示;铺满与原图预览按场景开启,历史选择按钮默认不触发预览。 */
|
||||
const props = withDefaults(
|
||||
defineProps<{ src?: string | null; alt: string; emptyText?: string; retryable?: boolean }>(),
|
||||
{ retryable: true }
|
||||
defineProps<{
|
||||
src?: string | null
|
||||
alt: string
|
||||
emptyText?: string
|
||||
retryable?: boolean
|
||||
objectFit?: 'contain' | 'cover'
|
||||
preview?: boolean
|
||||
}>(),
|
||||
{ retryable: true, objectFit: 'contain', preview: false }
|
||||
)
|
||||
const failed = ref(false)
|
||||
const url = computed(() => (props.src ? referenceImageUrl(props.src) : null))
|
||||
@@ -24,11 +31,13 @@ watch(
|
||||
<NImage
|
||||
v-if="url && !failed"
|
||||
:src="url"
|
||||
:preview-src="url"
|
||||
:alt="alt"
|
||||
lazy
|
||||
preview-disabled
|
||||
object-fit="contain"
|
||||
:preview-disabled="!preview"
|
||||
:object-fit="objectFit"
|
||||
:img-props="{ referrerpolicy: 'no-referrer' }"
|
||||
:previewed-img-props="{ alt, referrerpolicy: 'no-referrer' }"
|
||||
@error="failed = true"
|
||||
/>
|
||||
<span v-else class="asset-image-empty"
|
||||
|
||||
Reference in New Issue
Block a user