diff --git a/components/footer.vue b/components/footer.vue index cee5408..f9ce641 100644 --- a/components/footer.vue +++ b/components/footer.vue @@ -6,59 +6,74 @@ import tg from '@/assets/icons/telegram.svg' import vk from '@/assets/icons/vk.svg' import yt from '@/assets/icons/youtube.svg' const icons = { - 'simple-icons:vk': vk, - 'simple-icons:telegram': tg, - 'simple-icons:youtube': yt, + 'simple-icons:vk': vk, + 'simple-icons:telegram': tg, + 'simple-icons:youtube': yt } -const { data: footerData } = await fetchData(`footer/?ordering=small_text`, true) -const { data: socialNetworkData } = await fetchData(`social_network/`, true) +const { data: footerData } = await fetchData( + `footer`, + { ordering: 'small_text' }, + true +) +const { data: socialNetworkData } = await fetchData( + `social_network`, + {}, + true +) \ No newline at end of file + + + diff --git a/components/header.vue b/components/header.vue index da63d81..a0270f7 100644 --- a/components/header.vue +++ b/components/header.vue @@ -4,7 +4,7 @@ import k_logo from '@/assets/LOGO.svg' const { fetchData } = useApiFetch() const route = useRoute() -const { data, status, error } = await fetchData(`menu/`) +const { data, status, error } = await fetchData(`menu`) const menu = computed(() => { const menu = data.value?.find(el => el.type == 1) return (menu?.pages || []).sort((a, b) => a.order - b.order) diff --git a/composables/api.ts b/composables/api.ts index 22915b6..7538968 100644 --- a/composables/api.ts +++ b/composables/api.ts @@ -5,13 +5,14 @@ export function useApiFetch() { const apiBase = config.public.apiBase const prefix = config.public.apiPrefix - const fetchData = (path: string, global = false) => { + const fetchData = (path: string, queryParams: Record = {}, global = false) => { const headers = new Headers() headers.set('Referer', config.public.baseUrl) - return useFetch(`${apiBase}/${global ? 'gb' : prefix}/${path}`, { + return useFetch(`${apiBase}/${global ? 'gb' : prefix}/${path}/`, { baseURL: config.public.baseUrl, headers, + query: queryParams, onResponseError({ response }) { console.log(response.status) console.log(response.url) diff --git a/error.vue b/error.vue index 8b43908..8383469 100644 --- a/error.vue +++ b/error.vue @@ -7,7 +7,7 @@ const { fetchData } = useApiFetch() import og_img from '/og_img.png' -const { data: seo } = await fetchData(`seo/`) +const { data: seo } = await fetchData(`seo`) useSeoMeta({ title: seo.value && seo.value[0].title, ogTitle: seo.value && seo.value[0].title, diff --git a/index.d.ts b/index.d.ts index ef1bcf3..16330ec 100644 --- a/index.d.ts +++ b/index.d.ts @@ -62,11 +62,9 @@ type DiscountType = { max_quantitt?: number percent: number } -type ApiCalcType = { +type CalcItem = { id: number title: string - pillar: string - pillar_base: string - lamelles_block: string - discount: DiscountType[] + slug: string + base: number } \ No newline at end of file diff --git a/pages/index.vue b/pages/index.vue index c9daddd..d418f41 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -7,9 +7,10 @@ import { marked } from 'marked' import og_img from '/og_img.png' -const { data: seo } = await fetchData(`seo/`) -const { data: menu_raw, status: menu_status } = await fetchData(`menu/`) -const { data: review } = await fetchData(`review/`) +const { data: seo } = await fetchData(`seo`) +const { data: menu_raw, status: menu_status } = await fetchData(`menu`) +const { data: review } = await fetchData(`review`) +const { data: calc_data } = await fetchData(`calculator`) useSeoMeta({ title: seo.value && seo.value[0].title, @@ -30,6 +31,14 @@ const delivery = computed(() => ?.content.split('[col]') .map(el => marked.parse(el || '')) ) + +const setCalcData = (txt: string) => { + let c = txt + ;(calc_data.value || []).map(item => { + c = c.replaceAll(`[${item.slug}]`, roubleSign.format(item.base)) + }) + return marked.parse(c) +}