thumb attach image

This commit is contained in:
Timi
2026-08-21 23:27:49 +08:00
parent 651b0e1f74
commit 535f7a8dd1
3 changed files with 18 additions and 9 deletions
+1 -1
View File
@@ -22,7 +22,7 @@
<span v-if="selectable" class="check" :class="{selected: isSelected(item)}">
<t-icon v-if="isSelected(item)" name="check" />
</span>
<t-image v-if="getCustomerPhotoURL(item)" :src="getCustomerPhotoURL(item)" :alt="item.name" fit="cover" class="avatar" />
<t-image v-if="getCustomerPhotoURL(item, 64)" :src="getCustomerPhotoURL(item, 64)" :alt="item.name" fit="cover" class="avatar" />
<div v-else class="avatar fallback" v-text="(item.name || item.code || '客').slice(0, 1)" />
</div>
</template>
+2 -2
View File
@@ -48,9 +48,9 @@
>
<template #left-icon>
<t-image
v-if="getCustomerPhotoURL(item)"
v-if="getCustomerPhotoURL(item, 64)"
class="avatar"
:src="getCustomerPhotoURL(item)"
:src="getCustomerPhotoURL(item, 64)"
:alt="item.name"
fit="cover"
/>
+15 -6
View File
@@ -1,20 +1,29 @@
import { AttachmentAPI } from "timi-web";
import type { BodyAreaValue, Customer } from "@/types/Customer";
export function getCustomerPhotoURL(customer?: Customer): string {
return getCustomerAttachmentURL(customer, "PHOTO");
export function getCustomerPhotoURL(customer?: Customer, thumbnailSize?: number): string {
return getCustomerAttachmentURL(customer, "PHOTO", thumbnailSize);
}
export function getCustomerPointCardURL(customer?: Customer): string {
return getCustomerAttachmentURL(customer, "POINT_CARD");
export function getCustomerPointCardURL(customer?: Customer, thumbnailSize?: number): string {
return getCustomerAttachmentURL(customer, "POINT_CARD", thumbnailSize);
}
function getCustomerAttachmentURL(customer: Customer | undefined, attachType: string): string {
function getCustomerAttachmentURL(customer: Customer | undefined, attachType: string, thumbnailSize?: number): string {
const attachment = customer?.attachmentList?.find(item => item.attachType === attachType);
if (!attachment?.id) {
return "";
}
return AttachmentAPI.getReadURL(attachment.id);
const url = AttachmentAPI.getReadURL(attachment.id);
if (thumbnailSize === undefined) {
return url;
}
const params = new URLSearchParams({
thumbWidth: String(thumbnailSize),
thumbHeight: String(thumbnailSize)
});
return `${url}?${params.toString()}`;
}
export function normalizeBodyAreaValue(value: unknown): BodyAreaValue {