fix: fix links
This commit is contained in:
@ -2,9 +2,7 @@
|
||||
<UiContainer class="space-y-[55px] sm:space-y-[75px] md:space-y-[100px]">
|
||||
<div class="grid grid-cols-1 xl:grid-cols-2 gap-[10px] sm:gap-[30px]">
|
||||
<div class="flex flex-col gap-[10px] sm:gap-[30px]">
|
||||
<div
|
||||
class="h-[240px] sm:h-[400px] md:h-[490px] bg-block p-[25px] sm:p-[50px] rounded-2xl flex flex-col justify-between"
|
||||
>
|
||||
<div class="h-[240px] sm:h-[400px] md:h-[490px] bg-block p-[25px] sm:p-[50px] rounded-2xl flex flex-col justify-between">
|
||||
<div>
|
||||
<h1 class="h1-big text-accent-green-light mb-6 md:mb-10">
|
||||
{{ component.front_section_lang[0].data.title }}
|
||||
@ -13,108 +11,52 @@
|
||||
{{ component.front_section_lang[0].data.description }}
|
||||
</p>
|
||||
</div>
|
||||
<UiButtonArrow type="fill"
|
||||
:arrow="true"
|
||||
>
|
||||
{{ $t("buy_gold") }}
|
||||
</UiButtonArrow>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getShopMenu()?.id, slug: menuStore.getShopMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<UiButtonArrow type="fill" :arrow="true">
|
||||
{{ $t("buy_gold") }}
|
||||
</UiButtonArrow>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
<div class="flex gap-[10px] sm:gap-[30px]">
|
||||
<div class="rounded-2xl h-[155px] sm:h-[225px] md:h-[280px] w-full" :style="{ backgroundImage: `url('/api/public/file/${component.img[1]}_l.webp')`, backgroundSize: 'cover', backgroundPosition: 'center' }" />
|
||||
<div class="rounded-2xl h-[155px] sm:h-[225px] md:h-[280px] w-full" :style="{ backgroundImage: `url('/api/public/file/${component.img[2]}_l.webp')`, backgroundSize: 'cover' }" />
|
||||
<div
|
||||
class="rounded-2xl h-[155px] sm:h-[225px] md:h-[280px] w-full"
|
||||
:style="{
|
||||
backgroundImage: `url('/api/public/file/${component.img[1]}_l.webp')`,
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
}"
|
||||
/>
|
||||
<div
|
||||
class="rounded-2xl h-[155px] sm:h-[225px] md:h-[280px] w-full"
|
||||
:style="{
|
||||
backgroundImage: `url('/api/public/file/${component.img[2]}_l.webp')`,
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
}"
|
||||
/>
|
||||
<div
|
||||
class="hidden sm:block xl:hidden h-[225px] md:h-[280px] rounded-2xl w-full border border-block"
|
||||
:style="{
|
||||
backgroundImage: `url('/api/public/file/${component.img[0]}_l.webp')`,
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
}"
|
||||
/>
|
||||
class="hidden sm:block xl:hidden h-[225px] md:h-[280px] rounded-2xl w-full border border-block" :style="{ backgroundImage: `url('/api/public/file/${component.img[0]}_l.webp')`, backgroundSize: 'cover', backgroundPosition: 'center' }" />
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="sm:hidden xl:block h-[326px] md:h-auto min-w-[40%] xl:min-w-[60%] rounded-2xl border border-block"
|
||||
:style="{
|
||||
backgroundImage: `url('/api/public/file/${component.img[0]}_l.webp')`,
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
}"
|
||||
/>
|
||||
<div class="sm:hidden xl:block h-[326px] md:h-auto min-w-[40%] xl:min-w-[60%] rounded-2xl border border-block" :style="{ backgroundImage: `url('/api/public/file/${component.img[0]}_l.webp')`, backgroundSize: 'cover', backgroundPosition: 'center' }" />
|
||||
</div>
|
||||
<div
|
||||
class="grid md:grid-cols-1 xl:grid-cols-2 gap-[20px] md:auto-rows-fr sm:gap-[30px]"
|
||||
>
|
||||
<div class="grid md:grid-cols-1 xl:grid-cols-2 gap-[20px] md:auto-rows-fr sm:gap-[30px]">
|
||||
<div class="space-25-55-75">
|
||||
<h2 class="h2-bold-bounded">
|
||||
{{ component.front_section_lang[0].data.section_2.title }}
|
||||
</h2>
|
||||
<div class="space-y-[40px] sm:space-y-[50px]">
|
||||
<p
|
||||
v-for="(item, index) in component.front_section_lang[0].data
|
||||
.section_2.text_blocks"
|
||||
:key="index"
|
||||
>
|
||||
<p v-for="(item, index) in component.front_section_lang[0].data .section_2.text_blocks" :key="index">
|
||||
{{ item }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="w-full md:h-full rounded-2xl h-[327px] sm:h-[550px]"
|
||||
:style="{
|
||||
backgroundImage: `url('/api/public/file/${component.img[3]}_l.webp')`,
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
}"
|
||||
/>
|
||||
<div class="w-full md:h-full rounded-2xl h-[327px] sm:h-[550px]" :style="{ backgroundImage: `url('/api/public/file/${component.img[3]}_l.webp')`, backgroundSize: 'cover', backgroundPosition: 'center' }" />
|
||||
</div>
|
||||
<div
|
||||
class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-y-[25px] sm:gap-y-[55px] xl:gap-y-0 gap-x-[30px]"
|
||||
>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-y-[25px] sm:gap-y-[55px] xl:gap-y-0 gap-x-[30px]">
|
||||
<h2 class="h2-bold-bounded sm:col-start-1 sm:col-end-3">
|
||||
{{ component.front_section_lang[0].data.section_3.title }}
|
||||
</h2>
|
||||
<div
|
||||
v-for="(item, index) in component.front_section_lang[0].data.section_3
|
||||
.text_blocks"
|
||||
:key="index"
|
||||
class="flex flex-col justify-between space-25-55"
|
||||
>
|
||||
<div v-for="(item, index) in component.front_section_lang[0].data.section_3 .text_blocks" :key="index" class="flex flex-col justify-between space-25-55">
|
||||
<p class="md:px-4 xl:p-0">
|
||||
{{ item }}
|
||||
</p>
|
||||
<div
|
||||
class="rounded-2xl h-[227px] sm:h-[281px]"
|
||||
:style="{
|
||||
backgroundImage: `url('/api/public/file/${component.img[index + 4]}_l.webp')`,
|
||||
backgroundSize: 'cover',
|
||||
backgroundPosition: 'center',
|
||||
}"
|
||||
/>
|
||||
<div class="rounded-2xl h-[227px] sm:h-[281px]" :style="{ backgroundImage: `url('/api/public/file/${component.img[index + 4]}_l.webp')`, backgroundSize: 'cover', backgroundPosition: 'center' }" />
|
||||
</div>
|
||||
<div
|
||||
class="sm:col-start-1 sm:col-end-3 xl:col-start-3 xl:col-end-5 flex justify-center xl:items-end xl:justify-end"
|
||||
>
|
||||
<UiButtonArrow type="fill"
|
||||
:arrow="true"
|
||||
>
|
||||
{{
|
||||
$t("buy_gold")
|
||||
}}
|
||||
</UiButtonArrow>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getShopMenu()?.id, slug: menuStore.getShopMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<UiButtonArrow type="fill" :arrow="true">
|
||||
{{ $t("buy_gold") }}
|
||||
</UiButtonArrow>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
</div>
|
||||
</UiContainer>
|
||||
@ -147,4 +89,6 @@ defineProps<{
|
||||
}[]
|
||||
}
|
||||
}>()
|
||||
|
||||
const menuStore = useMenuStore()
|
||||
</script>
|
||||
|
@ -34,25 +34,13 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-center justify-center w-[60%] mx-auto">
|
||||
<div
|
||||
class="flex flex-col items-center p-3 sm:p-6 md:p-8 xl:p-11 border border-block rounded-2xl gap-5"
|
||||
>
|
||||
<h4
|
||||
class="h4-uppercase-bold-inter text-accent-green-light dark:text-accent-green-dark"
|
||||
>
|
||||
<div class="flex items-center justify-center w-[100%] xl:w-[90%] mx-auto">
|
||||
<div class="flex flex-col items-center p-3 sm:p-6 md:p-8 xl:p-11 border border-block rounded-2xl gap-5">
|
||||
<h4 class="h4-uppercase-bold-inter text-accent-green-light dark:text-accent-green-dark">
|
||||
20 {{ $t("years") }}
|
||||
</h4>
|
||||
<img
|
||||
class="dark:hidden"
|
||||
:src="`/api/public/file/${component.img[2]}_l.webp`"
|
||||
alt=""
|
||||
>
|
||||
<img
|
||||
class="hidden dark:block"
|
||||
:src="`/api/public/file/${component.img[3]}_l.webp`"
|
||||
alt=""
|
||||
>
|
||||
<img class="dark:hidden" :src="`/api/public/chart?second_color=000&base_color=c7c7c7&width=1800&height=480`" alt="">
|
||||
<img class="hidden dark:block" :src="`/api/public/chart?second_color=fff&base_color=9a7f62&width=1800&height=480`" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -35,52 +35,14 @@
|
||||
itemCount === 1 ? 'justify-center' : 'justify-between gap-2',
|
||||
]"
|
||||
>
|
||||
<div
|
||||
v-for="(item, index) in productStore.productList"
|
||||
:key="index"
|
||||
class="w-[200px] sm:w-[260px] md:w-[290px] sm:py-5 sm:px-[15px] py-[15px] px-[10px] bg-block rounded-2xl flex flex-col items-center gap-5 sm:gap-7"
|
||||
>
|
||||
<img
|
||||
:src="`/api/public/file/${item.cover_picture_uuid}.webp`"
|
||||
alt="pics"
|
||||
class="max-h-[150px] sm:max-h-[180px] md:max-h-[205px]"
|
||||
>
|
||||
<div class="flex flex-col justify-between h-full">
|
||||
<div class="flex flex-col gap-[10px] sm:gap-[15px] w-full">
|
||||
<h3
|
||||
class="text-[13px] sm:text-base md:text-lg text-xl font-bold leading-[150%] text-bg-dark"
|
||||
>
|
||||
{{ item.name }}
|
||||
</h3>
|
||||
<p class="text-[10px] sm:text-[12px] text-sm text-bg-dark">
|
||||
{{ item.tax_name }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex items-center justify-between">
|
||||
<p class="text-accent-green-light text-bold-24">
|
||||
{{ item.formatted_price }}
|
||||
</p>
|
||||
<button
|
||||
class="w-9 h-9 md:w-12 md:h-12 rounded-xl bg-button cursor-pointer hover:bg-button-hover transition-all flex items-center justify-center"
|
||||
@click="productStore.incrementCartItem(item.id)"
|
||||
>
|
||||
<i
|
||||
class="uil uil-shopping-cart text-[25px] md:text-[24px] text-bg-light"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Product v-for="product in productStore.productList" :key="product.id" :product="product" />
|
||||
</div>
|
||||
|
||||
<UiButtonArrow
|
||||
:arrow="true"
|
||||
class="mx-auto"
|
||||
type="fill"
|
||||
@click="menuStore.navigateToShop"
|
||||
>
|
||||
{{ $t("eshop") }}
|
||||
</UiButtonArrow>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getShopMenu()?.id, slug: menuStore.getShopMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<UiButtonArrow type="fill" :arrow="true">
|
||||
{{ $t("eshop") }}
|
||||
</UiButtonArrow>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
|
||||
<!-- calculator-block -->
|
||||
@ -173,6 +135,8 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import Product from './Product.vue'
|
||||
|
||||
defineProps<{
|
||||
component: {
|
||||
id: number
|
||||
@ -211,8 +175,8 @@ const productStore = useProductStore()
|
||||
async function updateItemCount() {
|
||||
const width = window.innerWidth
|
||||
if (width >= 1800) itemCount.value = 5
|
||||
else if (width >= 1200) itemCount.value = 4
|
||||
else if (width >= 768) itemCount.value = 3
|
||||
else if (width >= 1600) itemCount.value = 4
|
||||
else if (width >= 1200) itemCount.value = 3
|
||||
else if (width >= 640) itemCount.value = 2
|
||||
else itemCount.value = 1
|
||||
}
|
||||
|
@ -46,10 +46,11 @@
|
||||
<p>
|
||||
{{ $t("no_account") }}
|
||||
</p>
|
||||
<p class="text-button cursor-pointer hover:text-button-hover"
|
||||
@click="menuStore.navigateToItem(menuStore.menuItems?.find((item) => item.id === 4))">
|
||||
{{ $t("sign_up_now") }}
|
||||
</p>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getRegistrationMenu()?.id, slug: menuStore.getRegistrationMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<p class="text-button cursor-pointer hover:text-button-hover">
|
||||
{{ $t("sign_up_now") }}
|
||||
</p>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
</div>
|
||||
</UiContainer>
|
||||
|
@ -32,9 +32,11 @@
|
||||
</div>
|
||||
<UiImgWrapper :src="`/api/public/file/${component.img[index]}_l.webp`">
|
||||
<template #button>
|
||||
<UiButtonArrow :arrow="true">
|
||||
{{ item.title }}
|
||||
</UiButtonArrow>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: linksInfo[index].id, slug: linksInfo[index].slug } }">
|
||||
<UiButtonArrow :arrow="true">
|
||||
{{ item.title }}
|
||||
</UiButtonArrow>
|
||||
</nuxt-link>
|
||||
</template>
|
||||
</UiImgWrapper>
|
||||
</div>
|
||||
@ -83,4 +85,29 @@ type Component = {
|
||||
defineProps<{
|
||||
component: Component
|
||||
}>()
|
||||
|
||||
const menuStore = useMenuStore()
|
||||
|
||||
const linksInfo = ref([
|
||||
{
|
||||
id: menuStore.getInvestitionMenu()?.id,
|
||||
slug: menuStore.getInvestitionMenu()?.front_menu_lang.at(0)?.link_rewrite,
|
||||
},
|
||||
{
|
||||
id: menuStore.getAboutGoldMenu()?.id,
|
||||
slug: menuStore.getAboutGoldMenu()?.front_menu_lang.at(0)?.link_rewrite,
|
||||
},
|
||||
{
|
||||
id: menuStore.getBusinessMenu()?.id,
|
||||
slug: menuStore.getBusinessMenu()?.front_menu_lang.at(0)?.link_rewrite,
|
||||
},
|
||||
{
|
||||
id: menuStore.getAboutUsMenu()?.id,
|
||||
slug: menuStore.getAboutUsMenu()?.front_menu_lang.at(0)?.link_rewrite,
|
||||
},
|
||||
{
|
||||
id: menuStore.getContactMenu()?.id,
|
||||
slug: menuStore.getContactMenu()?.front_menu_lang.at(0)?.link_rewrite,
|
||||
},
|
||||
])
|
||||
</script>
|
||||
|
@ -19,13 +19,15 @@
|
||||
{{ component.front_section_lang[0].data.title_second }}
|
||||
</h3>
|
||||
<div class="flex w-full items-start justify-center sm:justify-end">
|
||||
<UiButtonArrow :arrow="true"
|
||||
type="fill"
|
||||
>
|
||||
{{
|
||||
component.front_section_lang[0].data.button
|
||||
}}
|
||||
</UiButtonArrow>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getRegistrationMenu()?.id, slug: menuStore.getRegistrationMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<UiButtonArrow :arrow="true"
|
||||
type="fill"
|
||||
>
|
||||
{{
|
||||
component.front_section_lang[0].data.button
|
||||
}}
|
||||
</UiButtonArrow>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -52,4 +54,6 @@ defineProps<{
|
||||
}[]
|
||||
}
|
||||
}>()
|
||||
|
||||
const menuStore = useMenuStore()
|
||||
</script>
|
||||
|
@ -1,49 +1,17 @@
|
||||
<template>
|
||||
<UiContainer class="space-y-[40px] sm:space-y-[55px] md:space-y-[75px]">
|
||||
<div
|
||||
:class="[
|
||||
'sm:mx-[50px] md:mx-0 xl:mx-[92px] flex items-stretch',
|
||||
itemCount === 1 ? 'justify-center' : 'justify-between gap-2',
|
||||
]"
|
||||
>
|
||||
<!-- product -->
|
||||
<!-- product -->
|
||||
<div class="space-25-55-75 flex flex-col items-center">
|
||||
<div
|
||||
v-for="(item, index) in productStore.productList"
|
||||
:key="index"
|
||||
class="w-[200px] sm:w-[260px] md:w-[290px] sm:py-5 sm:px-[15px] py-[15px] px-[10px] bg-block rounded-2xl flex flex-col items-center gap-5 sm:gap-7"
|
||||
:class="[
|
||||
'sm:mx-[50px] md:mx-0 xl:mx-[92px] flex items-stretch',
|
||||
itemCount === 1 ? 'justify-center' : 'justify-between gap-2',
|
||||
]"
|
||||
>
|
||||
<img
|
||||
:src="`/api/public/file/${item.cover_picture_uuid}.webp`"
|
||||
alt="pics"
|
||||
class="max-h-[150px] sm:max-h-[180px] md:max-h-[205px]"
|
||||
>
|
||||
<div class="flex flex-col justify-between h-full">
|
||||
<div class="flex flex-col gap-[10px] sm:gap-[15px] w-full">
|
||||
<h3
|
||||
class="text-[13px] sm:text-base md:text-lg text-xl font-bold leading-[150%] text-bg-dark"
|
||||
>
|
||||
{{ item.name }}
|
||||
</h3>
|
||||
<p class="text-[10px] sm:text-[12px] text-sm text-bg-dark">
|
||||
{{ item.tax_name }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex items-center justify-between">
|
||||
<p class="text-accent-green-light text-bold-24">
|
||||
{{ item.formatted_price }}
|
||||
</p>
|
||||
<button
|
||||
class="w-9 h-9 md:w-12 md:h-12 rounded-xl bg-button cursor-pointer hover:bg-button-hover transition-all flex items-center justify-center"
|
||||
@click="productStore.incrementCartItem(item.id)"
|
||||
>
|
||||
<i
|
||||
class="uil uil-shopping-cart text-[25px] md:text-[24px] text-bg-light"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<Product v-for="product in productStore.productList" :key="product.id" :product="product" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-6 md:flex-row items-center justify-between">
|
||||
<h3
|
||||
class="h4-uppercase-bold-inter w-full text-center md:text-start xl:max-w-[50%]"
|
||||
@ -51,19 +19,18 @@
|
||||
Zlato je jistota, která nepodléhá času. Udělejte dnes rozhodnutí, které
|
||||
vás ochrání zítra
|
||||
</h3>
|
||||
<UiButtonArrow
|
||||
type="fill"
|
||||
:arrow="true"
|
||||
@click="menuStore.navigateToShop"
|
||||
>
|
||||
{{ $t("eshop") }}
|
||||
</UiButtonArrow>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getShopMenu()?.id, slug: menuStore.getShopMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<UiButtonArrow type="fill" :arrow="true">
|
||||
{{ $t("eshop") }}
|
||||
</UiButtonArrow>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
</UiContainer>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
import Product from './Product.vue'
|
||||
|
||||
defineProps<{
|
||||
component: {
|
||||
@ -83,8 +50,8 @@ const productStore = useProductStore()
|
||||
async function updateItemCount() {
|
||||
const width = window.innerWidth
|
||||
if (width >= 1800) itemCount.value = 5
|
||||
else if (width >= 1200) itemCount.value = 4
|
||||
else if (width >= 768) itemCount.value = 3
|
||||
else if (width >= 1600) itemCount.value = 4
|
||||
else if (width >= 1200) itemCount.value = 3
|
||||
else if (width >= 640) itemCount.value = 2
|
||||
else itemCount.value = 1
|
||||
}
|
||||
|
@ -199,16 +199,11 @@
|
||||
<p class="cursor-pointer hover:underline transition-all">
|
||||
{{ $t("is_account") }}
|
||||
</p>
|
||||
<p
|
||||
class="text-button cursor-pointer hover:text-button-hover"
|
||||
@click="
|
||||
menuStore.navigateToItem(
|
||||
menuStore.menuItems?.find((item) => item.id === 11),
|
||||
)
|
||||
"
|
||||
>
|
||||
{{ $t("login") }}
|
||||
</p>
|
||||
<nuxt-link :to="{ name: `id-slug___${$i18n.locale}`, params: { id: menuStore.getLoginMenu()?.id, slug: menuStore.getLoginMenu()?.front_menu_lang.at(0)?.link_rewrite } }">
|
||||
<p class="text-button cursor-pointer hover:text-button-hover">
|
||||
{{ $t("login") }}
|
||||
</p>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
</div>
|
||||
</UiContainer>
|
||||
|
Reference in New Issue
Block a user