From f1f91623049aaa36360655ea65097369f6f6cbb3 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Tue, 7 Jul 2026 12:36:45 +0700 Subject: [PATCH] feat: enhance media preview functionality in catalog components by adding support for multiple image URLs and custom titles --- .../catalog/PosCatalogVariantThumb.vue | 32 +++- .../components/media/MediaPreviewDialog.vue | 147 ++++++++++++++-- .../components/media/MediaThumbnailCell.vue | 3 +- .../form/CuttingPosCombinationDialog.vue | 4 +- .../form/CuttingPosMaterialCatalogPanel.vue | 162 +++++++++++------- .../form/CuttingPosResultCatalogPanel.vue | 51 +++++- .../cuttings/table/CuttingGroupedTable.vue | 7 +- .../orders/form/OrderPosCatalogPanel.vue | 2 +- .../form/PurchasePosCatalogPanel.vue | 2 +- .../products/table/ProductGroupedTable.vue | 2 +- .../table/RawMaterialGroupedTable.vue | 2 +- 11 files changed, 323 insertions(+), 91 deletions(-) diff --git a/resources/js/components/catalog/PosCatalogVariantThumb.vue b/resources/js/components/catalog/PosCatalogVariantThumb.vue index 22be460..29c07f7 100644 --- a/resources/js/components/catalog/PosCatalogVariantThumb.vue +++ b/resources/js/components/catalog/PosCatalogVariantThumb.vue @@ -1,16 +1,30 @@ diff --git a/resources/js/components/media/MediaPreviewDialog.vue b/resources/js/components/media/MediaPreviewDialog.vue index 6eba5ed..4e4d567 100644 --- a/resources/js/components/media/MediaPreviewDialog.vue +++ b/resources/js/components/media/MediaPreviewDialog.vue @@ -1,5 +1,7 @@ diff --git a/resources/js/components/media/MediaThumbnailCell.vue b/resources/js/components/media/MediaThumbnailCell.vue index ef0c375..d005597 100644 --- a/resources/js/components/media/MediaThumbnailCell.vue +++ b/resources/js/components/media/MediaThumbnailCell.vue @@ -12,6 +12,7 @@ import type { MediaItem } from '@/types/media'; const props = defineProps<{ items: MediaItem[]; maxVisible?: number; + title?: string; }>(); const previewOpen = ref(false); @@ -118,5 +119,5 @@ function openGallery() { - + diff --git a/resources/js/pages/admin/manage/cuttings/form/CuttingPosCombinationDialog.vue b/resources/js/pages/admin/manage/cuttings/form/CuttingPosCombinationDialog.vue index 27592ac..26c8fd8 100644 --- a/resources/js/pages/admin/manage/cuttings/form/CuttingPosCombinationDialog.vue +++ b/resources/js/pages/admin/manage/cuttings/form/CuttingPosCombinationDialog.vue @@ -184,7 +184,7 @@ watch(open, (value) => { class="flex flex-col gap-2 rounded-md border p-2 sm:flex-row sm:items-center" :class="item.is_initial ? 'border-primary bg-primary/5' : ''">
- +

{{ item.raw_material_name }} - {{ item.variant }} @@ -238,7 +238,7 @@ watch(open, (value) => { :class="[ isSelected(price.id) ? 'border-2 border-primary bg-primary/5' : 'cursor-pointer hover:bg-muted/30', ]" @click="!isSelected(price.id) && toggleVariant(rawMaterial, price)"> - +

{{ price.variant }}

diff --git a/resources/js/pages/admin/manage/cuttings/form/CuttingPosMaterialCatalogPanel.vue b/resources/js/pages/admin/manage/cuttings/form/CuttingPosMaterialCatalogPanel.vue index 6ac8a5f..5af2a8a 100644 --- a/resources/js/pages/admin/manage/cuttings/form/CuttingPosMaterialCatalogPanel.vue +++ b/resources/js/pages/admin/manage/cuttings/form/CuttingPosMaterialCatalogPanel.vue @@ -1,8 +1,9 @@