From a672fd96e7f7422166e6c7b89637f7c8e986741f Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 14 Apr 2025 09:05:36 +0200 Subject: [PATCH] refactor(TravelThermograph): refs #7527 use popups --- src/pages/Route/Card/RouteBasicData.vue | 136 ++++++ src/pages/Travel/Card/TravelThermographs.vue | 159 ++++--- .../Travel/Card/TravelThermographsForm.vue | 407 ++++++++---------- src/router/modules/route.js | 2 +- src/router/modules/travel.js | 32 +- 5 files changed, 396 insertions(+), 340 deletions(-) create mode 100644 src/pages/Route/Card/RouteBasicData.vue diff --git a/src/pages/Route/Card/RouteBasicData.vue b/src/pages/Route/Card/RouteBasicData.vue new file mode 100644 index 000000000..667204b15 --- /dev/null +++ b/src/pages/Route/Card/RouteBasicData.vue @@ -0,0 +1,136 @@ + + + +es: + Worker: Trabajador + Vehicle: Vehículo + Agency: Agencia + Km Start: Km de inicio + Km End: Km de fin + Hour started: Hora inicio + Hour finished: Hora fin + Description: Descripción + Is served: Se ha servido + Dated: Fecha + The km can not exceed: La distancia debe ser inferior a {maxDistance} +en: + The km can not exceed: Distance must be lesser than {maxDistance} + diff --git a/src/pages/Travel/Card/TravelThermographs.vue b/src/pages/Travel/Card/TravelThermographs.vue index 2376bd6d2..fddbda2a1 100644 --- a/src/pages/Travel/Card/TravelThermographs.vue +++ b/src/pages/Travel/Card/TravelThermographs.vue @@ -4,7 +4,7 @@ import { useRoute, useRouter } from 'vue-router'; import { useI18n } from 'vue-i18n'; import { useQuasar } from 'quasar'; -import VnPaginate from 'src/components/ui/VnPaginate.vue'; +import VnTable from 'src/components/VnTable/VnTable.vue'; import VnConfirm from 'components/ui/VnConfirm.vue'; import FetchData from 'src/components/FetchData.vue'; @@ -13,6 +13,7 @@ import useNotify from 'src/composables/useNotify.js'; import { toDate, toCelsius } from 'src/filters'; import { downloadFile } from 'src/composables/downloadFile'; import { useArrayData } from 'src/composables/useArrayData'; +import TravelThermographsForm from './TravelThermographsForm.vue'; const route = useRoute(); const quasar = useQuasar(); @@ -23,7 +24,8 @@ const { notify } = useNotify(); const travel = computed(() => useArrayData('Travel').store.data); const thermographPaginateRef = ref(); const warehouses = ref([]); - +const showForm = ref(false); +const formData = ref({}); const thermographFilter = { include: [ { @@ -38,8 +40,10 @@ const thermographFilter = { fields: ['id', 'name'], }, }, + { + relation: 'dms', + }, ], - where: { travelFk: route.params.id }, order: ['created'], }; @@ -59,23 +63,23 @@ const TableColumns = computed(() => { }, { label: t('travel.thermographs.carrier'), - field: (row) => row.agencyMode?.name, name: 'agencyModeFk', align: 'left', + format: (row) => row.agencyMode?.name, }, { label: t('globals.maxTemperature'), field: 'maxTemperature', name: 'maxTemperature', align: 'left', - format: (val) => toCelsius(val), + format: ({ maxTemperature }) => toCelsius(maxTemperature), }, { label: t('globals.minTemperature'), field: 'minTemperature', name: 'minTemperature', align: 'left', - format: (val) => toCelsius(val), + format: ({ minTemperature }) => toCelsius(minTemperature), }, { label: t('globals.state'), @@ -88,60 +92,47 @@ const TableColumns = computed(() => { field: 'warehouseFk', name: 'destination', align: 'left', - format: (val) => - warehouses.value.find((warehouse) => warehouse.id === val)?.name, + format: ({ warehouseFk }) => + warehouses.value.find((warehouse) => warehouse.id === warehouseFk)?.name, }, { label: t('globals.created'), field: 'created', name: 'created', align: 'left', - format: (val) => toDate(val), + format: ({ created }) => toDate(created), }, { name: 'downloadFile', align: 'left', + columnFilter: false, }, { name: 'editFile', align: 'left', + columnFilter: false, }, { name: 'removeThermograph', align: 'left', + columnFilter: false, }, ]; }); const openRemoveDialog = async (id) => { - quasar - .dialog({ - component: VnConfirm, - componentProps: { - message: t('Are you sure you want to remove the thermograph?'), - }, - }) - .onOk(async () => { - await removeThermograph(id); - }); -}; - -const redirectToThermographForm = (action, id) => { - const routeDetails = { - name: action === 'create' ? 'TravelThermographsCreate' : 'TravelThermographsEdit', - }; - - if (action === 'edit' && id) { - routeDetails.query = { id }; - } else if (action === 'create') { - routeDetails.query = { agencyModeFk: travel.value?.agencyModeFk }; - } - router.push(routeDetails); + quasar.dialog({ + component: VnConfirm, + componentProps: { + message: t('Are you sure you want to remove the thermograph?'), + promise: () => removeThermograph(id), + }, + }); }; const removeThermograph = async (id) => { await axios.delete(`Travels/deleteThermograph?id=${id}`); - await thermographPaginateRef.value.fetch(); + await thermographPaginateRef.value.reload(); notify(t('Thermograph removed'), 'positive'); }; @@ -154,75 +145,77 @@ const removeThermograph = async (id) => { @on-fetch="(data) => (warehouses = data)" auto-load /> - - - + + + {{ t('Add thermograph') }} + + + diff --git a/src/pages/Travel/Card/TravelThermographsForm.vue b/src/pages/Travel/Card/TravelThermographsForm.vue index 446e5d506..71a4a8074 100644 --- a/src/pages/Travel/Card/TravelThermographsForm.vue +++ b/src/pages/Travel/Card/TravelThermographsForm.vue @@ -1,6 +1,6 @@ es: diff --git a/src/router/modules/route.js b/src/router/modules/route.js index d09b7c050..62ad6f227 100644 --- a/src/router/modules/route.js +++ b/src/router/modules/route.js @@ -16,7 +16,7 @@ const routeCard = { title: 'basicData', icon: 'vn:settings', }, - component: () => import('pages/Route/Card/RouteForm.vue'), + component: () => import('pages/Route/Card/RouteBasicData.vue'), }, { name: 'RouteSummary', diff --git a/src/router/modules/travel.js b/src/router/modules/travel.js index 317c15b0d..26a1f50e0 100644 --- a/src/router/modules/travel.js +++ b/src/router/modules/travel.js @@ -42,37 +42,9 @@ const travelCard = { title: 'thermographs', icon: 'vn:thermometer', }, - redirect: { - name: 'TravelThermographsIndex', - }, - children: [ - { - name: 'TravelThermographsIndex', - path: 'index', - component: () => - import('src/pages/Travel/Card/TravelThermographs.vue'), - }, - { - name: 'TravelThermographsCreate', - path: 'create', - props: { viewAction: 'create' }, - component: () => - import( - 'src/pages/Travel/Card/TravelThermographsForm.vue' - ), - }, - { - name: 'TravelThermographsEdit', - path: 'edit', - props: { viewAction: 'edit' }, - component: () => - import( - 'src/pages/Travel/Card/TravelThermographsForm.vue' - ), - }, - ], + component: () => import('src/pages/Travel/Card/TravelThermographs.vue'), }, - ] + ], }; export default {