From 9956561e4c907a39d7199646c05dc4e34555bf58 Mon Sep 17 00:00:00 2001 From: jorgep Date: Mon, 24 Jun 2024 16:17:21 +0200 Subject: [PATCH 01/53] chore: refs #7300 wip: create reset function --- src/composables/useArrayData.js | 5 ++++ src/stores/useArrayDataStore.js | 41 +++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index f97ade7bf..385cb6045 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -130,6 +130,10 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { delete store[option]; } + function reset(opts = []) { + if (arrayDataStore.get(key)) arrayDataStore.reset(key, opts); + } + function cancelRequest() { if (canceller) { canceller.abort(); @@ -245,5 +249,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { updateStateParams, isLoading, deleteOption, + reset, }; } diff --git a/src/stores/useArrayDataStore.js b/src/stores/useArrayDataStore.js index ebe32f8d0..0fe16d075 100644 --- a/src/stores/useArrayDataStore.js +++ b/src/stores/useArrayDataStore.js @@ -3,36 +3,47 @@ import { defineStore } from 'pinia'; export const useArrayDataStore = defineStore('arrayDataStore', () => { const state = ref({}); + const defaultOpts = { + filter: {}, + userFilter: {}, + userParams: {}, + url: '', + limit: 10, + skip: 0, + order: '', + data: ref(), + isLoading: false, + userParamsChanged: false, + exprBuilder: null, + searchUrl: 'params', + navigate: null, + }; function get(key) { return state.value[key]; } function set(key) { - state.value[key] = { - filter: {}, - userFilter: {}, - userParams: {}, - url: '', - limit: 10, - skip: 0, - order: '', - data: ref(), - isLoading: false, - userParamsChanged: false, - exprBuilder: null, - searchUrl: 'params', - navigate: null, - }; + state.value[key] = defaultOpts; } function clear(key) { delete state.value[key]; } + function reset(key, opts = []) { + let obj = state.value[key]; + if (!opts.length) obj = defaultOpts; + else + for (const opt in opts) { + if (Object.hasOwn(obj, opt)) obj[opt] = defaultOpts[opt]; + } + } + return { get, set, clear, + reset, }; }); From ad950f33c68fb6e18c65a974e482e80c771f3089 Mon Sep 17 00:00:00 2001 From: wbuezas Date: Wed, 26 Jun 2024 08:27:36 -0300 Subject: [PATCH 02/53] WIP --- src/i18n/locale/en.yml | 1 + src/i18n/locale/es.yml | 1 + src/pages/Ticket/Card/TicketExpedition.vue | 244 +++++++++++++++++++++ src/pages/Ticket/locale/en.yml | 10 + src/pages/Ticket/locale/es.yml | 10 + src/router/modules/ticket.js | 25 ++- 6 files changed, 286 insertions(+), 5 deletions(-) create mode 100644 src/pages/Ticket/Card/TicketExpedition.vue diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index d121dfb66..849f00c88 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -446,6 +446,7 @@ ticket: sale: Sale ticketAdvance: Advance tickets futureTickets: Future tickets + expedition: Expedition list: nickname: Nickname state: State diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 3654f4a72..6c722e43d 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -445,6 +445,7 @@ ticket: sale: Lineas del pedido ticketAdvance: Adelantar tickets futureTickets: Tickets a futuro + expedition: Expedición list: nickname: Alias state: Estado diff --git a/src/pages/Ticket/Card/TicketExpedition.vue b/src/pages/Ticket/Card/TicketExpedition.vue new file mode 100644 index 000000000..280e82b8a --- /dev/null +++ b/src/pages/Ticket/Card/TicketExpedition.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/pages/Ticket/locale/en.yml b/src/pages/Ticket/locale/en.yml index a89671a0c..04822df3e 100644 --- a/src/pages/Ticket/locale/en.yml +++ b/src/pages/Ticket/locale/en.yml @@ -80,3 +80,13 @@ futureTickets: moveTicketSuccess: Tickets moved successfully! searchInfo: Search future tickets by date futureTicket: Future tickets +expedition: + id: Expedition + item: Item + name: Name + packageType: Package type + counter: Counter + externalId: externalId + created: Created + state: State + historyAction: Status log diff --git a/src/pages/Ticket/locale/es.yml b/src/pages/Ticket/locale/es.yml index ce52e18ba..7cbbd02bd 100644 --- a/src/pages/Ticket/locale/es.yml +++ b/src/pages/Ticket/locale/es.yml @@ -79,6 +79,16 @@ ticketSale: shipped: F. Envío agency: Agencia address: Consignatario +expedition: + id: Expedición + item: Artículo + name: Nombre + packageType: Package type + counter: Contador + externalId: externalId + created: Fecha creación + state: Estado + historyAction: Historial de estados card: search: Buscar tickets searchInfo: Buscar tickets por identificador o alias diff --git a/src/router/modules/ticket.js b/src/router/modules/ticket.js index 9c105be32..878396604 100644 --- a/src/router/modules/ticket.js +++ b/src/router/modules/ticket.js @@ -12,7 +12,13 @@ export default { redirect: { name: 'TicketMain' }, menus: { main: ['TicketList', 'TicketAdvance', 'TicketFuture'], - card: ['TicketBoxing', 'TicketSms', 'TicketSale', 'TicketLog'], + card: [ + 'TicketBoxing', + 'TicketSms', + 'TicketSale', + 'TicketLog', + 'TicketExpedition', + ], }, children: [ { @@ -94,13 +100,13 @@ export default { component: () => import('src/pages/Ticket/Card/TicketSale.vue'), }, { - path: 'boxing', - name: 'TicketBoxing', + path: 'expedition', + name: 'TicketExpedition', meta: { - title: 'boxing', + title: 'expedition', icon: 'vn:package', }, - component: () => import('src/pages/Ticket/Card/TicketBoxing.vue'), + component: () => import('src/pages/Ticket/Card/TicketExpedition.vue'), }, { path: 'sms', @@ -120,6 +126,15 @@ export default { }, component: () => import('src/pages/Ticket/Card/TicketLog.vue'), }, + { + path: 'boxing', + name: 'TicketBoxing', + meta: { + title: 'boxing', + icon: 'vn:science', + }, + component: () => import('src/pages/Ticket/Card/TicketBoxing.vue'), + }, ], }, ], From defd26fe914cccc519c180731b8dd26786a984dd Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 26 Jun 2024 12:25:01 +0000 Subject: [PATCH 03/53] feat: define Sticky Button --- src/components/VnTable/VnTable.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 493f1480e..cb691de69 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -66,6 +66,7 @@ const route = useRoute(); const router = useRouter(); const quasar = useQuasar(); +const filterPanel = ref(null); const DEFAULT_MODE = 'card'; const TABLE_MODE = 'table'; const mode = ref(DEFAULT_MODE); @@ -191,7 +192,16 @@ defineExpose({ show-if-above > + Date: Wed, 26 Jun 2024 12:26:05 +0000 Subject: [PATCH 04/53] feat: remove button from panel --- src/components/ui/VnFilterPanel.vue | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/components/ui/VnFilterPanel.vue b/src/components/ui/VnFilterPanel.vue index 3c1a4c8a5..f6241ffe8 100644 --- a/src/components/ui/VnFilterPanel.vue +++ b/src/components/ui/VnFilterPanel.vue @@ -55,6 +55,7 @@ const $props = defineProps({ }, }); +defineExpose({ search }); const emit = defineEmits(['refresh', 'clear', 'search', 'init', 'remove']); const arrayData = useArrayData($props.dataKey, { @@ -248,23 +249,6 @@ function formatValue(value) { - Date: Thu, 27 Jun 2024 10:45:37 +0200 Subject: [PATCH 05/53] fix: refs #6943 removes duplicate toggle menu & fix loading animation --- src/pages/Customer/Card/CustomerGreuges.vue | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/pages/Customer/Card/CustomerGreuges.vue b/src/pages/Customer/Card/CustomerGreuges.vue index 0dcb3a3a9..eb35a8bdf 100644 --- a/src/pages/Customer/Card/CustomerGreuges.vue +++ b/src/pages/Customer/Card/CustomerGreuges.vue @@ -108,26 +108,9 @@ const setRows = (data) => { diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 493f1480e..8c00bb3f2 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -59,6 +59,10 @@ const $props = defineProps({ type: Boolean, default: false, }, + hasSubtoolbar: { + type: Boolean, + default: true, + }, }); const { t } = useI18n(); const stateStore = useStateStore(); @@ -177,9 +181,12 @@ function columnName(col) { function getColAlign(col) { return 'text-' + (col.align ?? 'left') } + +const emit = defineEmits(['onFetch', 'update:selected', 'saveChanges']); defineExpose({ reload, redirect: redirectFn, + selected });