refactor: #7516 unified navigate and redirectTo functions #1324
|
@ -0,0 +1,12 @@
|
|||
import { useRouter, useRoute } from 'vue-router';
|
||||
|
||||
export function useNavigate() {
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
|
||||
|
||||
function redirectTo(route){
|
||||
router.push(route);
|
||||
}
|
||||
|
||||
return { redirectTo };
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
<script setup>
|
||||
import { computed } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
||||
import VnTable from 'components/VnTable/VnTable.vue';
|
||||
|
@ -11,9 +10,7 @@ const { t } = useI18n();
|
|||
const { viewSummary } = useSummaryDialog();
|
||||
const router = useRouter();
|
||||
const dataKey = 'AgencyList';
|
||||
function navigate(id) {
|
||||
router.push({ path: `/agency/${id}` });
|
||||
}
|
||||
|
||||
const exprBuilder = (param, value) => {
|
||||
if (!value) return;
|
||||
if (param !== 'search') return;
|
||||
|
|
|
@ -6,6 +6,7 @@ import { useQuasar } from 'quasar';
|
|||
import { toDate, toHour } from 'src/filters';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { usePrintService } from 'src/composables/usePrintService';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
import axios from 'axios';
|
||||
import RouteSearchbar from 'pages/Route/Card/RouteSearchbar.vue';
|
||||
|
@ -25,7 +26,7 @@ const selectedRows = ref([]);
|
|||
const tableRef = ref([]);
|
||||
const confirmationDialog = ref(false);
|
||||
const startingDate = ref(null);
|
||||
const router = useRouter();
|
||||
const { redirectTo } = useNavigate();
|
||||
const routeFilter = {
|
||||
include: [
|
||||
{
|
||||
|
@ -211,17 +212,13 @@ const columns = computed(() => [
|
|||
{
|
||||
title: t('route.routeSummary'),
|
||||
icon: 'arrow_forward',
|
||||
action: (row) => navigate(row?.id),
|
||||
action: (row) => redirectTo({ path: '/route/' + row.id }),
|
||||
isPrimary: true,
|
||||
jsegarra
commented
Porque no usar template String si ya lo tenias antes? Porque no usar template String si ya lo tenias antes?
Quiero decir, porque tiene otro formato?
Otra manera de hacerlo es con name y params, que he visto que has usado mas abajo
Unificar criterio?? Creo que nos centramos en dejarlo como estaba
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
|
||||
function navigate(id) {
|
||||
router.push({ path: `/route/${id}` });
|
||||
}
|
||||
|
||||
const cloneRoutes = async () => {
|
||||
if (!selectedRows.value.length || !startingDate.value) return;
|
||||
await axios.post('Routes/clone', {
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
<script setup>
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useRouter, useRoute } from 'vue-router';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
||||
import CardList from 'src/components/ui/CardList.vue';
|
||||
import VnLv from 'src/components/ui/VnLv.vue';
|
||||
|
||||
const router = useRouter();
|
||||
const { redirectTo } = useNavigate();
|
||||
const route = useRoute();
|
||||
const { t } = useI18n();
|
||||
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { useRouter, useRoute } from 'vue-router';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
import FetchData from 'components/FetchData.vue';
|
||||
import CrudModel from 'components/CrudModel.vue';
|
||||
import VnRow from 'components/ui/VnRow.vue';
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const { redirectTo } = useNavigate();
|
||||
const { t } = useI18n();
|
||||
const supplierAgencyTermRef = ref(null);
|
||||
const agenciesOptions = ref(null);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<script setup>
|
||||
import { computed } from 'vue';
|
||||
import { useQuasar } from 'quasar';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
import VnConfirm from 'components/ui/VnConfirm.vue';
|
||||
|
||||
|
@ -18,23 +18,19 @@ const $props = defineProps({
|
|||
});
|
||||
|
||||
const { t } = useI18n();
|
||||
const router = useRouter();
|
||||
const { redirectTo } = useNavigate();
|
||||
const quasar = useQuasar();
|
||||
const { notify } = useNotify();
|
||||
|
||||
const redirectToCreateView = (queryParams) => {
|
||||
router.push({ name: 'TravelCreate', query: { travelData: queryParams } });
|
||||
};
|
||||
|
||||
const cloneTravel = () => {
|
||||
const stringifiedTravelData = JSON.stringify($props.travel);
|
||||
redirectToCreateView(stringifiedTravelData);
|
||||
redirectTo({name: 'Travel', query: { travelData: stringifiedTravelData }});
|
||||
};
|
||||
|
||||
const cloneTravelWithEntries = async () => {
|
||||
const { data } = await axios.post(`Travels/${$props.travel.id}/cloneWithEntries`);
|
||||
notify('globals.dataSaved', 'positive');
|
||||
router.push({ name: 'TravelBasicData', params: { id: data.id } });
|
||||
redirectTo({name: 'TravelBasicData', params: { id: data.id }});
|
||||
};
|
||||
|
||||
const canDelete = computed(() => useAcl().hasAcl('Travel', '*', 'WRITE'));
|
||||
|
@ -55,7 +51,7 @@ const openDeleteEntryDialog = (id) => {
|
|||
|
||||
const deleteTravel = async (id) => {
|
||||
await axios.delete(`Travels/${id}`);
|
||||
router.push({ name: 'TravelList' });
|
||||
redirectTo({ name: 'TravelList' });
|
||||
notify('globals.dataDeleted', 'positive');
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script setup>
|
||||
import { ref, computed } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useRouter, useRoute } from 'vue-router';
|
||||
import { useRoute } from 'vue-router';
|
||||
import VnTable from 'components/VnTable/VnTable.vue';
|
||||
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
|
||||
import TravelSummary from './Card/TravelSummary.vue';
|
||||
|
@ -15,9 +15,9 @@ import VnInputDate from 'src/components/common/VnInputDate.vue';
|
|||
import { toDateTimeFormat } from 'src/filters/date';
|
||||
|
||||
const { viewSummary } = useSummaryDialog();
|
||||
const router = useRouter();
|
||||
const { t } = useI18n();
|
||||
const route = useRoute();
|
||||
const { redirectTo } = useNavigate();
|
||||
const tableRef = ref();
|
||||
const dataKey = 'TravelList';
|
||||
const $props = defineProps({
|
||||
|
|
|
@ -4,17 +4,17 @@ import axios from 'axios';
|
|||
import { useQuasar } from 'quasar';
|
||||
import { useArrayData } from 'src/composables/useArrayData';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useRouter } from 'vue-router';
|
||||
import FormModelPopup from 'src/components/FormModelPopup.vue';
|
||||
import VnInput from 'src/components/common/VnInput.vue';
|
||||
import VnRow from 'src/components/ui/VnRow.vue';
|
||||
import VnTable from 'src/components/VnTable/VnTable.vue';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
const quasar = useQuasar();
|
||||
const arrayData = useArrayData('WagonTypeList');
|
||||
const { redirectTo } = useNavigate();
|
||||
const store = arrayData.store;
|
||||
const dialog = ref();
|
||||
const { push } = useRouter();
|
||||
const { t } = useI18n();
|
||||
const tableRef = ref();
|
||||
|
||||
|
@ -53,7 +53,7 @@ const columns = computed(() => [
|
|||
title: t('components.smartCard.openCard'),
|
||||
icon: 'arrow_forward',
|
||||
isPrimary: true,
|
||||
action: (row) => navigate(row.id, row.name),
|
||||
action: ({id, name}) => redirectTo({ path: `/wagon/type/${id}/edit`, query: { name } }),
|
||||
},
|
||||
{
|
||||
title: t('wagon.list.remove'),
|
||||
|
@ -65,10 +65,6 @@ const columns = computed(() => [
|
|||
},
|
||||
]);
|
||||
|
||||
function navigate(id, name) {
|
||||
push({ path: `/wagon/type/${id}/edit`, query: { name } });
|
||||
}
|
||||
|
||||
async function remove(row) {
|
||||
await axios.delete(`WagonTypes/${row.id}`);
|
||||
quasar.notify({
|
||||
|
|
|
@ -3,7 +3,6 @@ import axios from 'axios';
|
|||
import { useQuasar } from 'quasar';
|
||||
import { useArrayData } from 'src/composables/useArrayData';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useRouter } from 'vue-router';
|
||||
import VnTable from 'src/components/VnTable/VnTable.vue';
|
||||
import { computed, ref } from 'vue';
|
||||
import VnSelect from 'src/components/common/VnSelect.vue';
|
||||
|
@ -13,8 +12,9 @@ import VnSection from 'src/components/common/VnSection.vue';
|
|||
const quasar = useQuasar();
|
||||
const arrayData = useArrayData('WagonList');
|
||||
const store = arrayData.store;
|
||||
const router = useRouter();
|
||||
const { t } = useI18n();
|
||||
const { redirectTo } = useNavigate();
|
||||
|
||||
const tableRef = ref();
|
||||
const dataKey = 'WagonList';
|
||||
const filter = {
|
||||
|
@ -60,7 +60,7 @@ const columns = computed(() => [
|
|||
title: t('components.smartCard.openCard'),
|
||||
icon: 'arrow_forward',
|
||||
isPrimary: true,
|
||||
jsegarra
commented
Porque no usar template String si ya lo tenias antes? Porque no usar template String si ya lo tenias antes?
Quiero decir, porque tiene otro formato?
Otra manera de hacerlo es con name y params, que he visto que has usado mas abajo
Unificar criterio?? Creo que nos centramos en dejarlo como estaba
|
||||
action: (row) => navigate(row.id),
|
||||
action: (row) => redirectTo({ path: `/wagon/`+row.id+`/edit` }),
|
||||
},
|
||||
{
|
||||
title: t('wagon.list.remove'),
|
||||
|
@ -72,9 +72,7 @@ const columns = computed(() => [
|
|||
},
|
||||
]);
|
||||
|
||||
function navigate(id) {
|
||||
router.push({ path: `/wagon/${id}/edit` });
|
||||
}
|
||||
|
||||
|
||||
async function remove(row) {
|
||||
await axios.delete(`Wagons/${row.id}`).then(async () => {
|
||||
|
|
|
@ -4,21 +4,19 @@ import { useQuasar } from 'quasar';
|
|||
import VnPaginate from 'src/components/ui/VnPaginate.vue';
|
||||
import { useArrayData } from 'src/composables/useArrayData';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { useRouter } from 'vue-router';
|
||||
import CardList from 'components/ui/CardList.vue';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
const quasar = useQuasar();
|
||||
const arrayData = useArrayData('ZoneDeliveryList');
|
||||
const store = arrayData.store;
|
||||
const router = useRouter();
|
||||
const { redirectTo } = useNavigate();
|
||||
const { t } = useI18n();
|
||||
|
||||
function navigate(id) {
|
||||
router.push({ path: `/zone/type/${id}/edit` });
|
||||
}
|
||||
|
||||
|
||||
function create() {
|
||||
router.push({ path: `/zone/type/create` });
|
||||
redirectTo({ path: `/zone/type/create` });
|
||||
}
|
||||
|
||||
async function remove(row) {
|
||||
|
@ -54,12 +52,12 @@ async function remove(row) {
|
|||
:key="row.id"
|
||||
:title="(row.name || '').toString()"
|
||||
:id="row.id"
|
||||
@click="navigate(row.id)"
|
||||
@click="redirectTo({path: '/zone/type/'+row.id+'/edit'})"
|
||||
jsegarra
commented
Porque no usar template String si ya lo tenias antes? Porque no usar template String si ya lo tenias antes?
Quiero decir, porque tiene otro formato?
Otra manera de hacerlo es con name y params, que he visto que has usado mas abajo
Unificar criterio?? Creo que nos centramos en dejarlo como estaba
|
||||
>
|
||||
<template #actions>
|
||||
<QBtn
|
||||
:label="t('components.smartCard.openCard')"
|
||||
@click.stop="navigate(row.id)"
|
||||
@click.stop="redirectTo({path: '/zone/type/'+row.id+'/edit'})"
|
||||
outline
|
||||
/>
|
||||
<QBtn
|
||||
|
|
|
@ -6,19 +6,17 @@ import { useArrayData } from 'src/composables/useArrayData';
|
|||
import { useI18n } from 'vue-i18n';
|
||||
import { useRouter } from 'vue-router';
|
||||
import CardList from 'components/ui/CardList.vue';
|
||||
import { useNavigate } from 'src/composables/useNavigate';
|
||||
|
||||
const quasar = useQuasar();
|
||||
const arrayData = useArrayData('ZoneUpcomingList');
|
||||
const store = arrayData.store;
|
||||
const router = useRouter();
|
||||
const { redirectTo } = useNavigate();
|
||||
const { t } = useI18n();
|
||||
|
||||
function navigate(id) {
|
||||
router.push({ path: `/zone/type/${id}/edit` });
|
||||
}
|
||||
|
||||
function create() {
|
||||
router.push({ path: `/zone/type/create` });
|
||||
redirectTo({ path: `/zone/type/create` });
|
||||
}
|
||||
|
||||
async function remove(row) {
|
||||
|
@ -54,12 +52,12 @@ async function remove(row) {
|
|||
:key="row.id"
|
||||
:title="(row.name || '').toString()"
|
||||
:id="row.id"
|
||||
@click="navigate(row.id)"
|
||||
@click="redirectTo({path: '/zone/type/'+row.id+'/edit'})"
|
||||
>
|
||||
<template #actions>
|
||||
<QBtn
|
||||
:label="t('components.smartCard.openCard')"
|
||||
@click.stop="navigate(row.id)"
|
||||
@click.stop="redirectTo({path: '/zone/type/'+row.id+'/edit'})""
|
||||
jsegarra
commented
Porque no usar template String si ya lo tenias antes? Porque no usar template String si ya lo tenias antes?
Quiero decir, porque tiene otro formato?
Otra manera de hacerlo es con name y params, que he visto que has usado mas abajo
Unificar criterio?? Creo que nos centramos en dejarlo como estaba
|
||||
outline
|
||||
/>
|
||||
<QBtn
|
||||
|
|
se usa route?
Si haces quasar build saldrá error, no?
Si, se usaba en una modificación anterior pero no se quitó al cambiarse