From fdacdf1a120932954f4e5dacf7bd8442ee8e3cca Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 23 Aug 2024 12:43:27 +0200 Subject: [PATCH] feat: refs #7353 add filter & fix customTags --- src/components/common/VnSelect.vue | 5 + src/components/ui/VnFilterPanel.vue | 4 +- src/filters/dateRange.js | 2 +- ...itorSaleClients.vue => MonitorClients.vue} | 0 src/pages/Monitor/MonitorClientsActions.vue | 4 +- ...onitorSaleOrders.vue => MonitorOrders.vue} | 1 - .../Monitor/Ticket/MonitorTicketFilter.vue | 261 ++++++++++++++++++ .../Monitor/Ticket/MonitorTicketSearchbar.vue | 12 + .../Monitor/{ => Ticket}/MonitorTickets.vue | 30 +- src/router/modules/monitor.js | 3 +- 10 files changed, 298 insertions(+), 24 deletions(-) rename src/pages/Monitor/{MonitorSaleClients.vue => MonitorClients.vue} (100%) rename src/pages/Monitor/{MonitorSaleOrders.vue => MonitorOrders.vue} (99%) create mode 100644 src/pages/Monitor/Ticket/MonitorTicketFilter.vue create mode 100644 src/pages/Monitor/Ticket/MonitorTicketSearchbar.vue rename src/pages/Monitor/{ => Ticket}/MonitorTickets.vue (96%) diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue index 63a3f088fa..d4bbbc9791 100644 --- a/src/components/common/VnSelect.vue +++ b/src/components/common/VnSelect.vue @@ -73,6 +73,10 @@ const $props = defineProps({ type: Boolean, default: true, }, + params: { + type: Object, + default: null, + }, }); const { t } = useI18n(); @@ -205,6 +209,7 @@ function nullishToTrue(value) { :limit="limit" :sort-by="sortBy" :fields="fields" + :params="params" /> { }); const tags = computed(() => { - return tagsList.value.filter((tag) => !($props.customTags || []).includes(tag.key)); + return tagsList.value.filter((tag) => !($props.customTags || []).includes(tag.label)); }); const customTags = computed(() => - tagsList.value.filter((tag) => ($props.customTags || []).includes(tag.key)) + tagsList.value.filter((tag) => ($props.customTags || []).includes(tag.label)) ); async function remove(key) { diff --git a/src/filters/dateRange.js b/src/filters/dateRange.js index 7aa2869e5e..4c0cfe6542 100644 --- a/src/filters/dateRange.js +++ b/src/filters/dateRange.js @@ -1,7 +1,7 @@ export default function dateRange(value) { const minHour = new Date(value); minHour.setHours(0, 0, 0, 0); - const maxHour = new Date(); + const maxHour = new Date(value); maxHour.setHours(23, 59, 59, 59); return [minHour, maxHour]; diff --git a/src/pages/Monitor/MonitorSaleClients.vue b/src/pages/Monitor/MonitorClients.vue similarity index 100% rename from src/pages/Monitor/MonitorSaleClients.vue rename to src/pages/Monitor/MonitorClients.vue diff --git a/src/pages/Monitor/MonitorClientsActions.vue b/src/pages/Monitor/MonitorClientsActions.vue index 87bcfe1123..d6a72fbd95 100644 --- a/src/pages/Monitor/MonitorClientsActions.vue +++ b/src/pages/Monitor/MonitorClientsActions.vue @@ -1,6 +1,6 @@ diff --git a/src/pages/Monitor/Ticket/MonitorTicketFilter.vue b/src/pages/Monitor/Ticket/MonitorTicketFilter.vue new file mode 100644 index 0000000000..ff9ea5e63d --- /dev/null +++ b/src/pages/Monitor/Ticket/MonitorTicketFilter.vue @@ -0,0 +1,261 @@ + + + +en: + params: + clientFk: Client id + orderFk: Order id + scopeDays: Days onward + nickname: Nickname + salesPersonFk: Sales person + refFk: Invoice + agencyModeFk: Agency + stateFk: State + groupedStates: Grouped State + warehouseFk: Warehouse + provinceFk: Province + myTeam: My team + problems: With problems + pending: Pending + from: From + to: To + FREE: Free + DELIVERED: Delivered + ON_PREPARATION: On preparation + ON_PREVIOUS: On previous + PACKED: Packed + +es: + params: + clientFk: Id cliente + orderFk: Id cesta + scopeDays: Días en adelante + nickname: Nombre mostrado + salesPersonFk: Comercial + refFk: Factura + agencyModeFk: Agencia + stateFk: Estado + groupedStates: Estado agrupado + warehouseFk: Almacén + provinceFk: Provincia + myTeam: Mi equipo + problems: Con problemas + pending: Pendiente + from: Desde + To: Hasta + FREE: Libre + DELIVERED: Servido + ON_PREPARATION: En preparación + ON_PREVIOUS: En previa + PACKED: Encajado + diff --git a/src/pages/Monitor/Ticket/MonitorTicketSearchbar.vue b/src/pages/Monitor/Ticket/MonitorTicketSearchbar.vue new file mode 100644 index 0000000000..4950ab3813 --- /dev/null +++ b/src/pages/Monitor/Ticket/MonitorTicketSearchbar.vue @@ -0,0 +1,12 @@ + + diff --git a/src/pages/Monitor/MonitorTickets.vue b/src/pages/Monitor/Ticket/MonitorTickets.vue similarity index 96% rename from src/pages/Monitor/MonitorTickets.vue rename to src/pages/Monitor/Ticket/MonitorTickets.vue index a2ab65572b..81e19be1e6 100644 --- a/src/pages/Monitor/MonitorTickets.vue +++ b/src/pages/Monitor/Ticket/MonitorTickets.vue @@ -12,12 +12,12 @@ import VnTable from 'components/VnTable/VnTable.vue'; import { useSummaryDialog } from 'src/composables/useSummaryDialog'; import { toDateFormat } from 'src/filters/date.js'; import { toCurrency, dateRange } from 'src/filters'; -import { useStateStore } from 'stores/useStateStore'; -import VnSearchbar from 'components/ui/VnSearchbar.vue'; +import RightMenu from 'src/components/common/RightMenu.vue'; +import MonitorTicketSearchbar from './MonitorTicketSearchbar.vue'; +import MonitorTicketFilter from './MonitorTicketFilter.vue'; const DEFAULT_AUTO_REFRESH = 2 * 60 * 1000; // 2min in ms const { t } = useI18n(); -const stateStore = useStateStore(); const autoRefresh = ref(false); const tableRef = ref(null); const provinceOpts = ref([]); @@ -325,23 +325,17 @@ const openTab = (id) => auto-load @on-fetch="(data) => (zoneOpts = data)" /> - + + + + icon="refresh" size="md" color="primary" + class="q-mr-sm" dense flat @click="$refs.tableRef.reload()" @@ -365,6 +360,7 @@ const openTab = (id) => v-model="autoRefresh" :label="$t('salesTicketsTable.autoRefresh')" @update:model-value="autoRefreshHandler" + dense > {{ $t('refreshInfo') }} diff --git a/src/router/modules/monitor.js b/src/router/modules/monitor.js index 904f2db745..9dc023c562 100644 --- a/src/router/modules/monitor.js +++ b/src/router/modules/monitor.js @@ -28,7 +28,8 @@ export default { title: 'ticketsMonitor', icon: 'grid_view', }, - component: () => import('src/pages/Monitor/MonitorTickets.vue'), + component: () => + import('src/pages/Monitor/Ticket/MonitorTickets.vue'), }, { path: 'clients-actions',