From 36102aff0021dbf35f3936d03e1918a2e4a70bec Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 25 Apr 2025 13:52:05 +0200 Subject: [PATCH 01/12] style: adjust column alignment and add class for improved layout --- src/pages/Ticket/TicketAdvance.vue | 23 +++++++++++++++-------- src/pages/Ticket/TicketFuture.vue | 21 ++++++++++++++++++--- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/pages/Ticket/TicketAdvance.vue b/src/pages/Ticket/TicketAdvance.vue index bf3593acd..c0b6c2bb4 100644 --- a/src/pages/Ticket/TicketAdvance.vue +++ b/src/pages/Ticket/TicketAdvance.vue @@ -101,7 +101,7 @@ const ticketColumns = computed(() => [ format: (row, dashIfEmpty) => dashIfEmpty(row.lines), }, { - align: 'left', + align: 'right', label: t('advanceTickets.import'), name: 'totalWithVat', hidden: true, @@ -169,15 +169,17 @@ const ticketColumns = computed(() => [ label: t('advanceTickets.notMovableLines'), headerClass: 'horizontal-separator', name: 'notMovableLines', + class: 'shrink', }, { align: 'left', label: t('advanceTickets.futureLines'), headerClass: 'horizontal-separator', name: 'futureLines', + class: 'shrink', }, { - align: 'left', + align: 'right', label: t('advanceTickets.futureImport'), name: 'futureTotalWithVat', hidden: true, @@ -332,7 +334,12 @@ watch( if (!$el) return; const head = $el.querySelector('thead'); const firstRow = $el.querySelector('thead > tr'); - + const headSelectionCol = $el.querySelector( + 'thead tr.bg-header th.q-table--col-auto-width', + ); + if (headSelectionCol) { + headSelectionCol.classList.add('horizontal-separator'); + } const newRow = document.createElement('tr'); destinationElRef.value = document.createElement('th'); originElRef.value = document.createElement('th'); @@ -341,8 +348,10 @@ watch( destinationElRef.value.classList.add('text-uppercase', 'color-vn-label'); originElRef.value.classList.add('text-uppercase', 'color-vn-label'); - destinationElRef.value.setAttribute('colspan', '7'); - originElRef.value.setAttribute('colspan', '9'); + originElRef.value.classList.add('advance-icon'); + + destinationElRef.value.setAttribute('colspan', '9'); + originElRef.value.setAttribute('colspan', '11'); destinationElRef.value.textContent = `${t( 'advanceTickets.destination', @@ -453,10 +462,8 @@ watch( selection: 'multiple', }" v-model:selected="selectedTickets" - :pagination="{ rowsPerPage: 0 }" - :no-data-label="t('globals.noResults')" :right-search="false" - :order="['futureTotalWithVat ASC']" + :order="['futureTotalWithVat ASC']" auto-load :disable-option="{ card: true }" > diff --git a/src/pages/Ticket/TicketFuture.vue b/src/pages/Ticket/TicketFuture.vue index 6ed3afcc6..0939708c1 100644 --- a/src/pages/Ticket/TicketFuture.vue +++ b/src/pages/Ticket/TicketFuture.vue @@ -85,6 +85,7 @@ const ticketColumns = computed(() => [ label: t('advanceTickets.liters'), name: 'liters', align: 'left', + class: 'shrink', headerClass: 'horizontal-separator', }, { @@ -177,7 +178,12 @@ watch( if (!$el) return; const head = $el.querySelector('thead'); const firstRow = $el.querySelector('thead > tr'); - + const headSelectionCol = $el.querySelector( + 'thead tr.bg-header th.q-table--col-auto-width', + ); + if (headSelectionCol) { + headSelectionCol.classList.add('horizontal-separator'); + } const newRow = document.createElement('tr'); destinationElRef.value = document.createElement('th'); originElRef.value = document.createElement('th'); @@ -185,9 +191,10 @@ watch( newRow.classList.add('bg-header'); destinationElRef.value.classList.add('text-uppercase', 'color-vn-label'); originElRef.value.classList.add('text-uppercase', 'color-vn-label'); + originElRef.value.classList.add('advance-icon'); - destinationElRef.value.setAttribute('colspan', '7'); - originElRef.value.setAttribute('colspan', '9'); + destinationElRef.value.setAttribute('colspan', '9'); + originElRef.value.setAttribute('colspan', '7'); originElRef.value.textContent = `${t('advanceTickets.origin')}`; destinationElRef.value.textContent = `${t('advanceTickets.destination')}`; @@ -371,4 +378,12 @@ watch( :deep(.horizontal-bottom-separator) { border-bottom: 4px solid white !important; } +:deep(th.advance-icon::after) { + content: '>>'; + font-size: larger; + position: absolute; + text-align: center; + float: 0; + left: 0; +} From 797a48b04cb16131b32611550c4d1ee942ad9a95 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 25 Apr 2025 15:40:06 +0200 Subject: [PATCH 02/12] feat(TicketAdvance): add futurePreparation column to ticket table --- src/pages/Ticket/TicketAdvance.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pages/Ticket/TicketAdvance.vue b/src/pages/Ticket/TicketAdvance.vue index c0b6c2bb4..aa78fe7f0 100644 --- a/src/pages/Ticket/TicketAdvance.vue +++ b/src/pages/Ticket/TicketAdvance.vue @@ -145,6 +145,15 @@ const ticketColumns = computed(() => [ headerClass: 'horizontal-separator', name: 'futureLiters', }, + { + label: t('advanceTickets.preparation'), + name: 'futurePreparation', + field: 'futurePreparation', + align: 'left', + sortable: true, + headerClass: 'horizontal-separator', + columnFilter: false, + }, { align: 'left', label: t('advanceTickets.futureZone'), From 461bcb9462b2d42a940c482c61ed87025abc2e0a Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Mon, 28 Apr 2025 13:55:35 +0200 Subject: [PATCH 03/12] fix: remove unused searchFn after each filter change --- .../Ticket/Negative/TicketLackFilter.vue | 5 ---- src/pages/Ticket/TicketAdvanceFilter.vue | 20 ++++--------- src/pages/Ticket/TicketFilter.vue | 17 +---------- src/pages/Ticket/TicketFutureFilter.vue | 29 ++++--------------- 4 files changed, 13 insertions(+), 58 deletions(-) diff --git a/src/pages/Ticket/Negative/TicketLackFilter.vue b/src/pages/Ticket/Negative/TicketLackFilter.vue index 78c030476..780c7e4b9 100644 --- a/src/pages/Ticket/Negative/TicketLackFilter.vue +++ b/src/pages/Ticket/Negative/TicketLackFilter.vue @@ -130,8 +130,6 @@ const setUserParams = (params) => { ($event) => onCategoryChange($event, searchFn) " :options="categoriesOptions" - option-value="id" - option-label="name" hide-selected dense filled @@ -145,10 +143,7 @@ const setUserParams = (params) => { await getItemPackingTypes()); {{ formatFn(tag.value) }} -