From ff3d06200372be155736ee5922dece75893e6fb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Camilo=20Gonz=C3=A1lez?= Date: Wed, 6 Mar 2024 12:33:46 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Agregar=20funci=C3=B3n=20para=20?= =?UTF-8?q?peticiones=20en=20cliente=20exclusivamente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Galeria/index.vue | 5 ++- components/Vista/Mapa/Cajon.vue | 8 +++-- components/Vista/index.vue | 3 +- paginas/categorias[[numero]]/index.vue | 48 ++------------------------ paginas/obras/[registro].vue | 8 ++--- paginas/obras/index.vue | 6 +++- utilidades/ayudas.ts | 8 +++++ 7 files changed, 30 insertions(+), 56 deletions(-) diff --git a/components/Galeria/index.vue b/components/Galeria/index.vue index 3788aea..6285f24 100644 --- a/components/Galeria/index.vue +++ b/components/Galeria/index.vue @@ -14,7 +14,7 @@ import type { PersonajeProcesado, } from '~/tipos'; import { usarArchivo } from '~/cerebros/archivo'; -import { definirDimsImagen } from '~/utilidades/ayudas'; +import { definirDimsImagen, peticion } from '~/utilidades/ayudas'; import { datosGeneralesColeccion, datosObrasGaleria } from '~/utilidades/queries'; interface Props { @@ -177,8 +177,7 @@ function cargarPagina(pagina: number) { if (pagina <= numeroPaginas.value) { cargando.value = true; - obtenerDatos( - `obras-${datos.value?.id}${pagina}`, + peticion( datosObrasGaleria(props.coleccion, props.nombreCampo, props.slug, props.enTablaRelacional, pagina, esId) ).then((respuesta) => { obras.value = [...obras.value, ...limpiarDatos(respuesta)]; diff --git a/components/Vista/Mapa/Cajon.vue b/components/Vista/Mapa/Cajon.vue index bf307f7..2711655 100644 --- a/components/Vista/Mapa/Cajon.vue +++ b/components/Vista/Mapa/Cajon.vue @@ -11,13 +11,16 @@ interface Props { const props = defineProps(); -const datosColeccion: Ref = ref(); +const datosColeccion: Ref = ref([]); const query = computed(() => { const nombreCampo = props.coleccion === 'paises' ? 'pais' : 'ubicacion'; return datosObrasGaleria(props.coleccion, nombreCampo, props.datos.id, false, 1, true, 10); }); -const { data, pending, refresh } = obtenerDatosAsinc(`obras-cajon-${props.coleccion}`, query.value); +const { data, pending, refresh } = obtenerDatosAsinc<{ obras: ObraGaleria[] }>( + `obras-cajon-${props.coleccion}`, + query.value +); watch( () => props.datos.id, @@ -29,6 +32,7 @@ watch( ); watch(data, (respuesta) => { + if (!respuesta) return; datosColeccion.value = respuesta.obras; }); diff --git a/components/Vista/index.vue b/components/Vista/index.vue index 86bfbc9..f44b9ee 100644 --- a/components/Vista/index.vue +++ b/components/Vista/index.vue @@ -15,6 +15,7 @@ import type { Ubicacion, Vistas, } from '~/tipos'; +import { peticion } from '~/utilidades/ayudas'; import { indiceColeccion } from '~/utilidades/queries'; interface Props { @@ -155,7 +156,7 @@ async function cambiarDatosUbicacion(tipoLugar: TiposLugares) { } else { cargando.value = true; - const respuesta = await obtenerDatos(`indice-${tipoLugar}`, indiceColeccion(tipoLugar)); + const respuesta = await peticion(indiceColeccion(tipoLugar)); const datosLimpios = agregarEnlacesYTexto(respuesta[tipoLugar]); if (tipoLugar === 'ubicaciones') { diff --git a/paginas/categorias[[numero]]/index.vue b/paginas/categorias[[numero]]/index.vue index 9cb7d24..ee2d33c 100644 --- a/paginas/categorias[[numero]]/index.vue +++ b/paginas/categorias[[numero]]/index.vue @@ -3,11 +3,9 @@ import { convertirEscala, escalaColores } from '@enflujo/alquimia'; import type { Categoria } from '~/tipos'; import { usarArchivo } from '~/cerebros/archivo'; import { usarGeneral } from '~/cerebros/general'; -import { gql, obtenerVariablesCSS } from '~/utilidades/ayudas'; +import { gql, obtenerVariablesCSS, peticion } from '~/utilidades/ayudas'; const cerebroGeneral = usarGeneral(); -const ruta = useRoute(); -const enrutador = useRouter(); const cerebroArchivo = usarArchivo(); const pending: Ref = ref(true); const titulo = computed(() => { @@ -24,46 +22,6 @@ let ejeX: (valor: number) => number; let colorMin; let colorMax; -if (ruta.query.id) { - const { id } = ruta.query; - - const BuscarCategoria = gql` - query { - categorias1(filter: { id: { _eq: ${id} } }) { - slug - } - categorias2(filter: { id: { _eq: ${id} } }) { - slug - } - categorias3(filter: { id: { _eq: ${id} } }) { - slug - } - categorias4(filter: { id: { _eq: ${id} } }) { - slug - } - categorias5(filter: { id: { _eq: ${id} } }) { - slug - } - categorias6(filter: { id: { _eq: ${id} } }) { - slug - } - } - `; - - const busqueda = await obtenerDatos(`buscarCategoriaId${id}`, BuscarCategoria); - - for (let i = 1; i < 7; i++) { - const coleccion = `categorias${i}`; - if (busqueda[coleccion].length) { - const { slug } = busqueda[coleccion][0]; - - enrutador.push({ - path: `/${coleccion}/${slug}`, - }); - } - } -} - definePageMeta({ layout: 'archivo', keepalive: true }); if (!cerebroArchivo.datosCategorias) { @@ -132,7 +90,7 @@ function ordenar(grupo: Categoria[]) { } } -function clicSubCategorias(nivel: number, datosCategoria: Categoria) { +async function clicSubCategorias(nivel: number, datosCategoria: Categoria) { const nivel1 = `categorias${nivel}`; const nivel2 = `categorias${nivel + 1}`; const nivel3 = nivel + 2 <= 6 ? `categorias${nivel + 2}` : null; @@ -171,7 +129,7 @@ function clicSubCategorias(nivel: number, datosCategoria: Categoria) { `; // No usamos async/await ya que en vue3 con