refactor: refs #6993 fixed conflict
This commit is contained in:
parent
8ebf4be807
commit
4a7cb8fe8d
|
@ -2,9 +2,8 @@
|
||||||
import VnPaginate from 'components/ui/VnPaginate.vue';
|
import VnPaginate from 'components/ui/VnPaginate.vue';
|
||||||
import { useStateStore } from 'stores/useStateStore';
|
import { useStateStore } from 'stores/useStateStore';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { useQuasar } from 'quasar';
|
|
||||||
import { computed, onMounted, onUnmounted, ref } from 'vue';
|
import { computed, onMounted, onUnmounted, ref } from 'vue';
|
||||||
import { dashIfEmpty, toDate, toHour } from 'src/filters';
|
import { dashIfEmpty, toHour } from 'src/filters';
|
||||||
import VnSelectFilter from 'components/common/VnSelectFilter.vue';
|
import VnSelectFilter from 'components/common/VnSelectFilter.vue';
|
||||||
import FetchData from 'components/FetchData.vue';
|
import FetchData from 'components/FetchData.vue';
|
||||||
import { useValidator } from 'composables/useValidator';
|
import { useValidator } from 'composables/useValidator';
|
||||||
|
@ -18,10 +17,13 @@ import RouteSummary from 'pages/Route/Card/RouteSummary.vue';
|
||||||
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
|
||||||
import { useSession } from 'composables/useSession';
|
import { useSession } from 'composables/useSession';
|
||||||
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
||||||
|
import RouteListTicketsDialog from 'pages/Route/Card/RouteListTicketsDialog.vue';
|
||||||
|
import { useQuasar } from 'quasar';
|
||||||
|
|
||||||
const stateStore = useStateStore();
|
const stateStore = useStateStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { validate } = useValidator();
|
const { validate } = useValidator();
|
||||||
|
const quasar = useQuasar();
|
||||||
const session = useSession();
|
const session = useSession();
|
||||||
const { viewSummary } = useSummaryDialog();
|
const { viewSummary } = useSummaryDialog();
|
||||||
|
|
||||||
|
@ -35,7 +37,7 @@ const columns = computed(() => [
|
||||||
label: t('ID'),
|
label: t('ID'),
|
||||||
field: (row) => row.id,
|
field: (row) => row.id,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
align: 'left',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'worker',
|
name: 'worker',
|
||||||
|
@ -70,7 +72,7 @@ const columns = computed(() => [
|
||||||
label: 'm³',
|
label: 'm³',
|
||||||
field: (row) => dashIfEmpty(row.m3),
|
field: (row) => dashIfEmpty(row.m3),
|
||||||
sortable: true,
|
sortable: true,
|
||||||
align: 'left',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'description',
|
name: 'description',
|
||||||
|
@ -113,24 +115,6 @@ const updateRoute = async (route) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateVehicle = (row, vehicle) => {
|
|
||||||
row.vehicleFk = vehicle.id;
|
|
||||||
row.vehiclePlateNumber = vehicle.numberPlate;
|
|
||||||
updateRoute(row);
|
|
||||||
};
|
|
||||||
|
|
||||||
const updateAgency = (row, agency) => {
|
|
||||||
row.agencyModeFk = agency.id;
|
|
||||||
row.agencyName = agency.name;
|
|
||||||
updateRoute(row);
|
|
||||||
};
|
|
||||||
|
|
||||||
const updateWorker = (row, worker) => {
|
|
||||||
row.workerFk = worker.id;
|
|
||||||
row.workerUserName = worker.name;
|
|
||||||
updateRoute(row);
|
|
||||||
};
|
|
||||||
|
|
||||||
const confirmationDialog = ref(false);
|
const confirmationDialog = ref(false);
|
||||||
const startingDate = ref(null);
|
const startingDate = ref(null);
|
||||||
|
|
||||||
|
@ -149,7 +133,7 @@ const showRouteReport = () => {
|
||||||
let url;
|
let url;
|
||||||
|
|
||||||
if (selectedRows.value.length <= 1) {
|
if (selectedRows.value.length <= 1) {
|
||||||
url = `api/Routes/${idString}/driver-route-pdf?access_token=${session.getToken()}`;
|
url = `api/Routes/${idString}/driver-route-pdf?access_token=${session.getTokenMultimedia()}`;
|
||||||
} else {
|
} else {
|
||||||
const params = new URLSearchParams({
|
const params = new URLSearchParams({
|
||||||
access_token: session.getToken(),
|
access_token: session.getToken(),
|
||||||
|
@ -169,6 +153,20 @@ const markAsServed = () => {
|
||||||
refreshKey.value++;
|
refreshKey.value++;
|
||||||
startingDate.value = null;
|
startingDate.value = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const openTicketsDialog = (id) => {
|
||||||
|
if (!id) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
quasar
|
||||||
|
.dialog({
|
||||||
|
component: RouteListTicketsDialog,
|
||||||
|
componentProps: {
|
||||||
|
id,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.onOk(() => refreshKey.value++);
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -319,154 +317,101 @@ const markAsServed = () => {
|
||||||
</QPopupEdit>
|
</QPopupEdit>
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-agency="props">
|
<template #body-cell-agency="{ row }">
|
||||||
<QTd :props="props">
|
<QTd>
|
||||||
{{ props.row?.agencyName }}
|
<VnSelectFilter
|
||||||
<QPopupEdit
|
:label="t('Agency')"
|
||||||
:model-value="props.row.agencyModeFk"
|
v-model="row.agencyModeFk"
|
||||||
v-slot="scope"
|
:options="agencyList"
|
||||||
buttons
|
option-value="id"
|
||||||
@update:model-value="
|
option-label="name"
|
||||||
(agency) => updateAgency(props.row, agency)
|
hide-selected
|
||||||
"
|
dense
|
||||||
>
|
:emit-value="false"
|
||||||
<VnSelectFilter
|
:rules="validate('route.agencyFk')"
|
||||||
:label="t('Agency')"
|
:is-clearable="false"
|
||||||
v-model="scope.value"
|
@update:model-value="updateRoute(row)"
|
||||||
:options="agencyList"
|
/>
|
||||||
option-value="id"
|
|
||||||
option-label="name"
|
|
||||||
hide-selected
|
|
||||||
autofocus
|
|
||||||
:emit-value="false"
|
|
||||||
:rules="validate('route.agencyFk')"
|
|
||||||
:is-clearable="false"
|
|
||||||
@keyup.enter="scope.set"
|
|
||||||
@focus="($event) => $event.target.select()"
|
|
||||||
/>
|
|
||||||
</QPopupEdit>
|
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-vehicle="props">
|
<template #body-cell-vehicle="{ row }">
|
||||||
<QTd :props="props">
|
<QTd>
|
||||||
{{ props.row?.vehiclePlateNumber }}
|
<VnSelectFilter
|
||||||
<QPopupEdit
|
:label="t('Vehicle')"
|
||||||
:model-value="props.row.vehicleFk"
|
v-model="row.vehicleFk"
|
||||||
v-slot="scope"
|
:options="vehicleList"
|
||||||
buttons
|
option-value="id"
|
||||||
@update:model-value="
|
option-label="numberPlate"
|
||||||
(vehicle) => updateVehicle(props.row, vehicle)
|
hide-selected
|
||||||
"
|
dense
|
||||||
>
|
:emit-value="false"
|
||||||
<VnSelectFilter
|
:rules="validate('route.vehicleFk')"
|
||||||
:label="t('Vehicle')"
|
:is-clearable="false"
|
||||||
v-model="scope.value"
|
@update:model-value="updateRoute(row)"
|
||||||
:options="vehicleList"
|
/>
|
||||||
option-value="id"
|
|
||||||
option-label="numberPlate"
|
|
||||||
hide-selected
|
|
||||||
autofocus
|
|
||||||
:emit-value="false"
|
|
||||||
:rules="validate('route.vehicleFk')"
|
|
||||||
:is-clearable="false"
|
|
||||||
@keyup.enter="scope.set"
|
|
||||||
@focus="($event) => $event.target.select()"
|
|
||||||
/>
|
|
||||||
</QPopupEdit>
|
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-date="props">
|
<template #body-cell-date="{ row }">
|
||||||
<QTd :props="props">
|
<QTd class="table-input-cell">
|
||||||
{{ toDate(props.row?.created) }}
|
<VnInputDate
|
||||||
<QPopupEdit
|
v-model="row.created"
|
||||||
v-model="props.row.created"
|
hide-bottom-space
|
||||||
v-slot="scope"
|
dense
|
||||||
@update:model-value="updateRoute(props.row)"
|
:label="t('Date')"
|
||||||
buttons
|
:rules="validate('route.created')"
|
||||||
>
|
:is-clearable="false"
|
||||||
<VnInputDate
|
@update:model-value="updateRoute(row)"
|
||||||
v-model="scope.value"
|
/>
|
||||||
autofocus
|
|
||||||
:label="t('Date')"
|
|
||||||
:rules="validate('route.created')"
|
|
||||||
:is-clearable="false"
|
|
||||||
@keyup.enter="scope.set"
|
|
||||||
@focus="($event) => $event.target.select()"
|
|
||||||
/>
|
|
||||||
</QPopupEdit>
|
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-description="props">
|
<template #body-cell-description="{ row }">
|
||||||
<QTd :props="props">
|
<QTd class="table-input-cell">
|
||||||
{{ props.row?.description }}
|
<VnInput
|
||||||
<QPopupEdit
|
v-model="row.description"
|
||||||
v-model="props.row.description"
|
:label="t('Description')"
|
||||||
v-slot="scope"
|
:rules="validate('route.description')"
|
||||||
@update:model-value="updateRoute(props.row)"
|
:is-clearable="false"
|
||||||
buttons
|
dense
|
||||||
>
|
@update:model-value="updateRoute(row)"
|
||||||
<VnInput
|
/>
|
||||||
v-model="scope.value"
|
|
||||||
autofocus
|
|
||||||
:label="t('Description')"
|
|
||||||
:rules="validate('route.description')"
|
|
||||||
:is-clearable="false"
|
|
||||||
@keyup.enter="scope.set"
|
|
||||||
@focus="($event) => $event.target.select()"
|
|
||||||
/>
|
|
||||||
</QPopupEdit>
|
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-started="props">
|
<template #body-cell-started="{ row }">
|
||||||
<QTd :props="props">
|
<QTd class="table-input-cell">
|
||||||
{{ toHour(props.row.started) }}
|
<VnInputTime
|
||||||
<QPopupEdit
|
v-model="row.started"
|
||||||
v-model="props.row.started"
|
:label="t('Hour started')"
|
||||||
v-slot="scope"
|
:rules="validate('route.started')"
|
||||||
buttons
|
:is-clearable="false"
|
||||||
@update:model-value="updateRoute(props.row)"
|
hide-bottom-space
|
||||||
>
|
dense
|
||||||
<VnInputTime
|
@update:model-value="updateRoute(row)"
|
||||||
v-model="scope.value"
|
/>
|
||||||
autofocus
|
|
||||||
:label="t('Hour started')"
|
|
||||||
:rules="validate('route.started')"
|
|
||||||
:is-clearable="false"
|
|
||||||
@keyup.enter="scope.set"
|
|
||||||
@focus="($event) => $event.target.select()"
|
|
||||||
/>
|
|
||||||
</QPopupEdit>
|
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-finished="props">
|
<template #body-cell-finished="{ row }">
|
||||||
<QTd :props="props">
|
<QTd class="table-input-cell">
|
||||||
{{ toHour(props.row.finished) }}
|
<VnInputTime
|
||||||
<QPopupEdit
|
v-model="row.finished"
|
||||||
v-model="props.row.finished"
|
autofocus
|
||||||
v-slot="scope"
|
:label="t('Hour finished')"
|
||||||
buttons
|
:rules="validate('route.finished')"
|
||||||
@update:model-value="updateRoute(props.row)"
|
:is-clearable="false"
|
||||||
>
|
hide-bottom-space
|
||||||
<VnInputTime
|
dense
|
||||||
v-model="scope.value"
|
@update:model-value="updateRoute(row)"
|
||||||
autofocus
|
/>
|
||||||
:label="t('Hour finished')"
|
|
||||||
:rules="validate('route.finished')"
|
|
||||||
:is-clearable="false"
|
|
||||||
@keyup.enter="scope.set"
|
|
||||||
@focus="($event) => $event.target.select()"
|
|
||||||
/>
|
|
||||||
</QPopupEdit>
|
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
<template #body-cell-actions="props">
|
<template #body-cell-actions="props">
|
||||||
<QTd :props="props">
|
<QTd :props="props">
|
||||||
<div class="flex items-center table-actions">
|
<div class="flex items-center no-wrap table-actions">
|
||||||
<QIcon
|
<QIcon
|
||||||
name="vn:ticketAdd"
|
name="vn:ticketAdd"
|
||||||
size="xs"
|
size="xs"
|
||||||
color="primary"
|
color="primary"
|
||||||
class="cursor-pointer"
|
class="cursor-pointer"
|
||||||
|
@click="openTicketsDialog(props?.row?.id)"
|
||||||
>
|
>
|
||||||
<QTooltip>{{ t('Add ticket') }}</QTooltip>
|
<QTooltip>{{ t('Add ticket') }}</QTooltip>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
|
@ -481,6 +426,20 @@ const markAsServed = () => {
|
||||||
>
|
>
|
||||||
<QTooltip>{{ t('Preview') }}</QTooltip>
|
<QTooltip>{{ t('Preview') }}</QTooltip>
|
||||||
</QIcon>
|
</QIcon>
|
||||||
|
<RouterLink
|
||||||
|
:to="{
|
||||||
|
name: 'RouteSummary',
|
||||||
|
params: { id: props?.row?.id },
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<QIcon
|
||||||
|
name="vn:eye"
|
||||||
|
size="xs"
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
<QTooltip>{{ t('Summary') }}</QTooltip>
|
||||||
|
</QIcon>
|
||||||
|
</RouterLink>
|
||||||
</div>
|
</div>
|
||||||
</QTd>
|
</QTd>
|
||||||
</template>
|
</template>
|
||||||
|
@ -501,8 +460,13 @@ const markAsServed = () => {
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.table-input-cell {
|
||||||
|
min-width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
.route-list {
|
.route-list {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-actions {
|
.table-actions {
|
||||||
|
@ -531,4 +495,5 @@ es:
|
||||||
Download selected routes as PDF: Descargar rutas seleccionadas como PDF
|
Download selected routes as PDF: Descargar rutas seleccionadas como PDF
|
||||||
Add ticket: Añadir tickets
|
Add ticket: Añadir tickets
|
||||||
Preview: Vista previa
|
Preview: Vista previa
|
||||||
|
Summary: Resumen
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|
Loading…
Reference in New Issue