From 4bde0dffa734f0588db077708cb5a098d40c9a97 Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 23 Oct 2024 09:17:14 +0200 Subject: [PATCH 1/2] fix: fixed item packaging type field showing repetitive values --- .../components/CustomerSummaryTable.vue | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/pages/Customer/components/CustomerSummaryTable.vue b/src/pages/Customer/components/CustomerSummaryTable.vue index f6013dea9..ff1474fb9 100644 --- a/src/pages/Customer/components/CustomerSummaryTable.vue +++ b/src/pages/Customer/components/CustomerSummaryTable.vue @@ -101,7 +101,7 @@ const columns = computed(() => [ align: 'left', name: 'itemPackingTypeFk', label: t('ticketSale.packaging'), - format: (row) => getItemPackagingType(row), + format: (row) => getItemPackagingType(row.ticketSales), }, { align: 'right', @@ -151,13 +151,18 @@ const setShippedColor = (date) => { if (difference < 0) return 'success'; }; -const getItemPackagingType = (row) => { - const packagingType = row?.ticketSales - .map((sale) => sale.item?.itemPackingTypeFk || '-') - .filter((value) => value !== '-') - .join(', '); +const getItemPackagingType = (ticketSales) => { + if (!ticketSales || ticketSales.length === 0) return '-'; - return dashIfEmpty(packagingType); + const packagingTypes = ticketSales + .map((sale) => sale.item?.itemPackingTypeFk) + .filter((type) => type !== undefined && type !== null); + + const uniquePackagingTypes = [...new Set(packagingTypes)]; + + return dashIfEmpty( + uniquePackagingTypes.length > 0 ? uniquePackagingTypes.join(', ') : '-' + ); }; -- 2.40.1 From 1daa8be63597f770ae0d0a9a7588628622556c00 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 25 Oct 2024 09:41:28 +0200 Subject: [PATCH 2/2] perf: optimize get packing type function --- .../components/CustomerSummaryTable.vue | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/pages/Customer/components/CustomerSummaryTable.vue b/src/pages/Customer/components/CustomerSummaryTable.vue index ff1474fb9..e9bb36be7 100644 --- a/src/pages/Customer/components/CustomerSummaryTable.vue +++ b/src/pages/Customer/components/CustomerSummaryTable.vue @@ -152,17 +152,20 @@ const setShippedColor = (date) => { }; const getItemPackagingType = (ticketSales) => { - if (!ticketSales || ticketSales.length === 0) return '-'; + if (!ticketSales?.length) return '-'; - const packagingTypes = ticketSales - .map((sale) => sale.item?.itemPackingTypeFk) - .filter((type) => type !== undefined && type !== null); + const packagingTypes = ticketSales.reduce((types, sale) => { + const { itemPackingTypeFk } = sale.item; + if ( + !types.includes(itemPackingTypeFk) && + (itemPackingTypeFk === 'H' || itemPackingTypeFk === 'V') + ) { + types.push(itemPackingTypeFk); + } + return types; + }, []); - const uniquePackagingTypes = [...new Set(packagingTypes)]; - - return dashIfEmpty( - uniquePackagingTypes.length > 0 ? uniquePackagingTypes.join(', ') : '-' - ); + return dashIfEmpty(packagingTypes.join(', ') || '-'); }; -- 2.40.1