Create gitignore
This commit is contained in:
+5
-5
@@ -19,11 +19,11 @@ const closeModal = () => {
|
|||||||
|
|
||||||
<NuxtPwaManifest />
|
<NuxtPwaManifest />
|
||||||
|
|
||||||
<UpdatePwaModal
|
<!-- <UpdatePwaModal-->
|
||||||
:isShow="updateAvailable"
|
<!-- :isShow="updateAvailable"-->
|
||||||
@update="handleUpdate"
|
<!-- @update="handleUpdate"-->
|
||||||
@close="closeModal"
|
<!-- @close="closeModal"-->
|
||||||
/>
|
<!-- />-->
|
||||||
|
|
||||||
<NuxtLayout>
|
<NuxtLayout>
|
||||||
<ToastProvider>
|
<ToastProvider>
|
||||||
|
|||||||
@@ -11,10 +11,14 @@ type Props = {
|
|||||||
const props = defineProps<Props>();
|
const props = defineProps<Props>();
|
||||||
const { articles } = toRefs(props);
|
const { articles } = toRefs(props);
|
||||||
|
|
||||||
|
// state
|
||||||
|
|
||||||
|
const isMobile = useMediaQuery('(max-width: 1024px)');
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="columns-2 gap-8 w-full space-y-8">
|
<div class="columns-1 xs:columns-2 xl:columns-3 gap-6 sm:gap-8 w-full space-y-8">
|
||||||
<BlogPost
|
<BlogPost
|
||||||
v-for="article in articles"
|
v-for="article in articles"
|
||||||
:key="article.id"
|
:key="article.id"
|
||||||
@@ -24,6 +28,7 @@ const { articles } = toRefs(props);
|
|||||||
:comments="2"
|
:comments="2"
|
||||||
:id="article.id"
|
:id="article.id"
|
||||||
:date="article.created_at"
|
:date="article.created_at"
|
||||||
|
:variant="isMobile ? 'sm' : 'lg'"
|
||||||
tag="تگ ندارد"
|
tag="تگ ندارد"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,33 +14,33 @@ type Props = {
|
|||||||
|
|
||||||
// props
|
// props
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
withDefaults(defineProps<Props>(), {
|
||||||
variant: "lg"
|
variant: "lg"
|
||||||
});
|
});
|
||||||
const {} = toRefs(props);
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<NuxtLink :to="`/article/${id}`" class="block">
|
<div>
|
||||||
<div
|
<NuxtLink
|
||||||
|
:to="`/article/${id}`"
|
||||||
:class="variant === 'lg' ? 'aspect-square rounded-150 overflow-hidden' : 'h-fit'"
|
:class="variant === 'lg' ? 'aspect-square rounded-150 overflow-hidden' : 'h-fit'"
|
||||||
class="group w-full relative"
|
class="group w-full relative block"
|
||||||
>
|
>
|
||||||
|
|
||||||
<Tag
|
<Tag
|
||||||
v-if="variant === 'lg'"
|
v-if="variant === 'lg'"
|
||||||
class="bg-success-500 absolute left-6 lg:left-10 top-6 lg:top-10 z-20"
|
class="bg-success-500 absolute left-6 top-6 z-20"
|
||||||
>
|
>
|
||||||
اسپیکر
|
اسپیکر
|
||||||
</Tag>
|
</Tag>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="variant === 'sm'"
|
v-if="variant === 'sm'"
|
||||||
class="h-[350px] rounded-150 overflow-hidden relative"
|
class="aspect-square w-full rounded-150 overflow-hidden relative"
|
||||||
>
|
>
|
||||||
<Tag
|
<Tag
|
||||||
class="bg-success-500 absolute z-20 left-6 top-6"
|
class="bg-success-500 absolute z-20 left-4 sm:left-6 top-4 sm:top-6 max-sm:text-xs"
|
||||||
>
|
>
|
||||||
اسپیکر
|
اسپیکر
|
||||||
</Tag>
|
</Tag>
|
||||||
@@ -53,28 +53,26 @@ const {} = toRefs(props);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
:class="variant === 'lg' ? 'absolute px-6 lg:px-10' : 'invert mt-8'"
|
:class="variant === 'lg' ? 'absolute px-6' : 'invert mt-6'"
|
||||||
class="bottom-6 lg:bottom-10 flex flex-col gap-4 lg:gap-6 z-20"
|
class="bottom-6 lg:bottom-8 flex flex-col gap-4 z-20"
|
||||||
>
|
>
|
||||||
|
|
||||||
<div class="flex items-center gap-4 lg:gap-6">
|
<div class="flex items-center gap-4 lg:gap-6">
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<Icon
|
<Icon
|
||||||
name="ci:comment"
|
name="ci:comment"
|
||||||
size="18"
|
class="**:stroke-white size-3 md:size-3.5"
|
||||||
class="**:stroke-white"
|
|
||||||
/>
|
/>
|
||||||
<span class="typo-p-sm text-white">
|
<span class="typo-p-xs md:typo-p-sm text-white">
|
||||||
۰ نظر
|
۰ نظر
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<Icon
|
<Icon
|
||||||
name="ci:calendar"
|
name="ci:calendar"
|
||||||
size="18"
|
class="**:stroke-white size-3 md:size-3.5"
|
||||||
class="**:stroke-white"
|
|
||||||
/>
|
/>
|
||||||
<span class="typo-p-sm text-white">
|
<span class="typo-p-xs md:typo-p-sm text-white">
|
||||||
۳۱ مهر ۱۴۰۳
|
۳۱ مهر ۱۴۰۳
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -83,21 +81,17 @@ const {} = toRefs(props);
|
|||||||
<div class="flex gap-4 flex-col">
|
<div class="flex gap-4 flex-col">
|
||||||
<span
|
<span
|
||||||
:class="variant === 'lg' ? 'line-clamp-2' : ''"
|
:class="variant === 'lg' ? 'line-clamp-2' : ''"
|
||||||
class="text-lg font-medium lg:typo-h-6 text-white"
|
class="text-base md:text-lg font-medium lg:typo-h-6 text-white"
|
||||||
>
|
>
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</span>
|
</span>
|
||||||
<!-- <p-->
|
<p
|
||||||
<!-- :class="variant === 'lg' ? 'typo-h-4' : 'typo-h-6 text-slate-500'"-->
|
v-if="variant === 'sm'"
|
||||||
<!-- class="text-white text-justify"-->
|
class="text-white typo-p-xs max-sm:!leading-[175%] sm:typo-p-sm md:typo-p-md line-clamp-3"
|
||||||
<!-- v-html="description"-->
|
>
|
||||||
<!-- />-->
|
تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<NuxtLink :to="`/article/${id}`" class="underline text-white typo-p-md">
|
|
||||||
بیشتر بخوانید...
|
|
||||||
</NuxtLink>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<img
|
<img
|
||||||
@@ -111,6 +105,6 @@ const {} = toRefs(props);
|
|||||||
v-if="variant === 'lg'"
|
v-if="variant === 'lg'"
|
||||||
class="w-full h-full bg-linear-to-t from-black to-transparent absolute inset-0 z-15"
|
class="w-full h-full bg-linear-to-t from-black to-transparent absolute inset-0 z-15"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -12,20 +12,20 @@ const {} = toRefs(props);
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="relative w-full flex flex-col justify-center min-h-[700px] h-[80svh]">
|
<div class="relative w-full flex flex-col justify-center min-h-[450px] md:h-[80svh]">
|
||||||
<div class="-rotate-z-2 z-20">
|
<div class="-rotate-z-2 z-20">
|
||||||
<div
|
<div
|
||||||
class="bg-warning-500 flex pr-20 gap-12 sm:gap-20 py-2 w-max animate-marquee-reverse"
|
class="bg-warning-500 flex pr-20 gap-12 sm:gap-20 py-2 w-max animate-marquee-reverse"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
v-for="i in 10"
|
v-for="i in 10"
|
||||||
class="text-[20px] sm:text-[30px] lg:text-[50px] text-white whitespace-nowrap font-semibold"
|
class="text-[40px] lg:text-[50px] text-white whitespace-nowrap font-semibold"
|
||||||
>
|
>
|
||||||
TEST {{ i }}
|
TEST {{ i }}
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
v-for="i in 10"
|
v-for="i in 10"
|
||||||
class="text-[20px] sm:text-[30px] lg:text-[50px] text-white whitespace-nowrap font-semibold"
|
class="text-[40px] lg:text-[50px] text-white whitespace-nowrap font-semibold"
|
||||||
>
|
>
|
||||||
TEST {{ i }}
|
TEST {{ i }}
|
||||||
</span>
|
</span>
|
||||||
@@ -38,13 +38,13 @@ const {} = toRefs(props);
|
|||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
v-for="i in 10"
|
v-for="i in 10"
|
||||||
class="text-[20px] sm:text-[30px] lg:text-[50px] text-slate-300 whitespace-nowrap font-semibold"
|
class="text-[40px] lg:text-[50px] text-slate-300 whitespace-nowrap font-semibold"
|
||||||
>
|
>
|
||||||
TEST {{ i }}
|
TEST {{ i }}
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
v-for="i in 10"
|
v-for="i in 10"
|
||||||
class="text-[20px] sm:text-[30px] lg:text-[50px] text-slate-300 whitespace-nowrap font-semibold"
|
class="text-[40px] lg:text-[50px] text-slate-300 whitespace-nowrap font-semibold"
|
||||||
>
|
>
|
||||||
TEST {{ i }}
|
TEST {{ i }}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -1,99 +1,34 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
|
|
||||||
// imports
|
|
||||||
|
|
||||||
import { NAV_LINKS } from "~/constants";
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<footer class="w-full bg-black flex-center">
|
<div class="bg-black relative overflow-hidden">
|
||||||
<div class="size-full grid grid-cols-2 items-stretch container">
|
|
||||||
<div
|
<img src="/img/footer-bg.jpg" alt="" class="absolute z-10 object-cover opacity-45" />
|
||||||
class="h-full flex flex-col items-start justify-between pe-[5rem] py-[5rem]"
|
|
||||||
>
|
<div class="flex flex-col gap-4 items-center justify-center relative z-20">
|
||||||
<div class="flex flex-col items-start gap-[1.5rem] w-full">
|
|
||||||
<span class="text-white typo-sub-h-xl font-light"
|
<div class="flex items-center flex-col pb-[10px] pt-[80px] lg:py-[150px] justify-center">
|
||||||
>از آخرین اخبار، نوشتهها، مقالات و تخفیفها با خبر شوید
|
<video
|
||||||
😎
|
src="/video/loading.mp4"
|
||||||
</span>
|
autoplay
|
||||||
<div class="flex flex-col items-start gap-[.75rem] w-full">
|
muted
|
||||||
<div
|
loop
|
||||||
class="flex items-center justify-start gap-[.5rem] w-full"
|
class="size-[150px] lg:size-[220px] rounded-full"
|
||||||
>
|
|
||||||
<Input
|
|
||||||
placeholder="آدرس الکترونیکی شما"
|
|
||||||
class="bg-slate-950 border-slate-800 hover:border-slate-800 w-8/12"
|
|
||||||
/>
|
/>
|
||||||
<Button
|
<span class="font-bold text-2xl lg:text-5xl text-gradient bg-gradient-to-l from-blue-500 to-blue-700">
|
||||||
class="invert rounded-100 size-[3rem] !**:stroke-black"
|
فروشگاه هیملز
|
||||||
end-icon="ci:arrow-left"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<span class="text-slate-400 typo-p-sm">
|
|
||||||
با عضویت, شما با
|
|
||||||
<NuxtLink to="#" class="text-cyan-500 underline"
|
|
||||||
>قوانین و مقررات</NuxtLink
|
|
||||||
>
|
|
||||||
سایت موافقت می کنید.
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="text-white typo-label-sm font-light">
|
|
||||||
© ۲۰۲۵ - ملز; هوشمند ترین وبسایت ایران
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<footer class="w-full flex max-lg:flex-col justify-between py-[100px] max-lg:gap-16 container items-center lg:items-start relative z-20">
|
||||||
class="flex flex-col items-start ps-[5rem] py-[5rem] gap-[6.875rem]"
|
<div class="flex flex-col gap-4 text-white max-w-[300px]">
|
||||||
>
|
|
||||||
<div class="w-full flex items-start gap-[3rem]">
|
|
||||||
<div class="flex flex-col gap-[1.5rem] w-full">
|
|
||||||
<NuxtLink
|
|
||||||
v-for="(link, index) in NAV_LINKS"
|
|
||||||
:key="index"
|
|
||||||
:to="link.path"
|
|
||||||
class="typo-h-5 font-light text-white hover:text-white/70 transition-all"
|
|
||||||
>
|
|
||||||
{{ link.title }}
|
|
||||||
</NuxtLink>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-col gap-[.75rem] w-full">
|
|
||||||
<NuxtLink
|
|
||||||
to="#"
|
|
||||||
class="typo-label-md font-light text-slate-400 hover:text-slate-500 transition-all"
|
|
||||||
>
|
|
||||||
سوالات متدوال
|
|
||||||
</NuxtLink>
|
|
||||||
<NuxtLink
|
|
||||||
to="#"
|
|
||||||
class="typo-label-md font-light text-slate-400 hover:text-slate-500 transition-all"
|
|
||||||
>
|
|
||||||
قوانین و مقررات
|
|
||||||
</NuxtLink>
|
|
||||||
<NuxtLink
|
|
||||||
to="#"
|
|
||||||
class="typo-label-md font-light text-slate-400 hover:text-slate-500 transition-all"
|
|
||||||
>
|
|
||||||
گزارش خطا و باگ
|
|
||||||
</NuxtLink>
|
|
||||||
<NuxtLink
|
|
||||||
to="#"
|
|
||||||
class="typo-label-md font-light text-slate-400 hover:text-slate-500 transition-all"
|
|
||||||
>
|
|
||||||
حریم خصوصی
|
|
||||||
</NuxtLink>
|
|
||||||
<NuxtLink
|
|
||||||
to="#"
|
|
||||||
class="typo-label-md font-light text-slate-400 hover:text-slate-500 transition-all"
|
|
||||||
>
|
|
||||||
تماس با ما
|
|
||||||
</NuxtLink>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex items-center justify-end text-white w-full">
|
<h3 class="font-bold text-xl xl:text-3xl max-lg:text-center">
|
||||||
<div class="flex items-center gap-[1rem]">
|
با ما در ارتباط باشید...
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p class="text-md font-thin leading-[175%] mt-4 max-lg:text-center">
|
||||||
|
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها
|
||||||
|
</p>
|
||||||
|
<div class="flex items-center gap-4 mt-6 max-lg:justify-center">
|
||||||
<NuxtLink to="#" class="flex-center size-[1.5rem]">
|
<NuxtLink to="#" class="flex-center size-[1.5rem]">
|
||||||
<Icon
|
<Icon
|
||||||
name="ci:instagram"
|
name="ci:instagram"
|
||||||
@@ -124,7 +59,47 @@ import { NAV_LINKS } from "~/constants";
|
|||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex justify-center lg:justify-end flex-1">
|
||||||
|
<div class="flex flex-col gap-6 text-white max-lg:text-center">
|
||||||
|
<h3 class="font-bold">
|
||||||
|
لینک های مفید
|
||||||
|
</h3>
|
||||||
|
<ul class="flex flex-col gap-4 font-thin">
|
||||||
|
<li>از طراحان گرافیک است</li>
|
||||||
|
<li>تولید نامفهوم</li>
|
||||||
|
<li>ستون و سطرآنچنان که لازم</li>
|
||||||
|
<li>روزنامه و مجله در ستون</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end flex-1">
|
||||||
|
<div class="flex flex-col gap-6 text-white max-lg:text-center">
|
||||||
|
<h3 class="font-bold">
|
||||||
|
لینک های مفید
|
||||||
|
</h3>
|
||||||
|
<ul class="flex flex-col gap-4 font-thin">
|
||||||
|
<li>از طراحان گرافیک است</li>
|
||||||
|
<li>تولید نامفهوم</li>
|
||||||
|
<li>ستون و سطرآنچنان که لازم</li>
|
||||||
|
<li>روزنامه و مجله در ستون</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end flex-1">
|
||||||
|
<div class="flex flex-col gap-6 text-white max-lg:text-center">
|
||||||
|
<h3 class="font-bold w-full">
|
||||||
|
لینک های مفید
|
||||||
|
</h3>
|
||||||
|
<ul class="flex flex-col gap-4 font-thin">
|
||||||
|
<li>از طراحان گرافیک است</li>
|
||||||
|
<li>تولید نامفهوم</li>
|
||||||
|
<li>ستون و سطرآنچنان که لازم</li>
|
||||||
|
<li>روزنامه و مجله در ستون</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -33,7 +33,7 @@ const formattedDate = useDateFormat(date.value, "YYYY/MM/DD");
|
|||||||
{{ formattedDate }}
|
{{ formattedDate }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<Rating />
|
<Rating :rate="2"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="typo-p-md">
|
<div class="typo-p-md">
|
||||||
{{ content }}
|
{{ content }}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const onSwiper = (swiper: SwiperClass) => {
|
|||||||
<template>
|
<template>
|
||||||
<section
|
<section
|
||||||
ref="sectionTarget"
|
ref="sectionTarget"
|
||||||
class="flex flex-col justify-center gap-4 bg-black h-[150svh] mt-40 relative overflow-hidden"
|
class="flex flex-col justify-center gap-4 bg-black h-[150svh] relative overflow-hidden"
|
||||||
>
|
>
|
||||||
|
|
||||||
<div class="w-full flex justify-center items-center relative z-10">
|
<div class="w-full flex justify-center items-center relative z-10">
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ onUnmounted(() => {
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
id="header-slider-container"
|
id="header-slider-container"
|
||||||
class="w-full mb-20 z-50 max-md:mt-[80px]"
|
class="w-full z-50"
|
||||||
>
|
>
|
||||||
<div id="header-slider-wrapper" class="relative">
|
<div id="header-slider-wrapper" class="relative">
|
||||||
<Swiper
|
<Swiper
|
||||||
|
|||||||
@@ -15,16 +15,17 @@ await suspense();
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<section class="mt-20 container">
|
<section class="mt-20 container">
|
||||||
<div class="flex items-center justify-between mb-20">
|
<div class="flex items-center justify-between mb-12 md:mb-20">
|
||||||
<span class="typo-h-6 max-sm:text-xl md:typo-h-5 lg:typo-h-4 text-black">
|
<span class="typo-h-6 max-sm:text-xl md:typo-h-5 lg:typo-h-4 text-black">
|
||||||
مقالات اخیر سایت
|
مقالات اخیر سایت
|
||||||
</span>
|
</span>
|
||||||
<NuxtLink to="/articles">
|
<NuxtLink to="/articles">
|
||||||
<Button variant="outlined" class="rounded-full max-sm:typo-label-sm max-sm:py-2" end-icon="ci:arrow-left">
|
<Button variant="outlined" class="rounded-full max-sm:typo-label-sm max-sm:py-2"
|
||||||
|
end-icon="ci:arrow-left">
|
||||||
نمایش همه
|
نمایش همه
|
||||||
</Button>
|
</Button>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
<ArticlesList :articles="articles!.results" />
|
<ArticlesList :articles="[...articles!.results,...articles!.results,...articles!.results,...articles!.results,...articles!.results,...articles!.results]" />
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
@@ -51,7 +51,7 @@ const onSwiper = (swiper: SwiperClass) => {
|
|||||||
<div class="flex justify-center items-center">
|
<div class="flex justify-center items-center">
|
||||||
<div class="max-w-[900px] px-4 text-white flex flex-col items-center gap-4">
|
<div class="max-w-[900px] px-4 text-white flex flex-col items-center gap-4">
|
||||||
<Icon name="ci:instagram" size="28" class="**:stroke-white" />
|
<Icon name="ci:instagram" size="28" class="**:stroke-white" />
|
||||||
<p class="text-base xs:text-lg sm:typo-h-6 lg:typo-h-5 !font-medium leading-[150%] lg:leading-[175%] max-sm:px-4 sm:max-w-[600px] lg:max-w-[800px] text-center">
|
<p class="text-base xs:text-lg sm:typo-h-6 lg:typo-h-5 !font-normal !leading-[150%] lg:leading-[175%] max-sm:px-4 sm:max-w-[600px] lg:max-w-[800px] text-center">
|
||||||
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
|
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
|
||||||
استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله
|
استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله
|
||||||
در ستون و سطرآنچنان که لازم.
|
در ستون و سطرآنچنان که لازم.
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ watch(
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<div>
|
||||||
<div class="flex flex-col items-center gap-3 mb-10 lg:mb-16">
|
<div class="flex flex-col items-center gap-3 mb-10 lg:mb-16">
|
||||||
<span class="typo-p-sm md:typo-p-md text-slate-500">مقایسه محصولات</span>
|
<span class="typo-p-sm md:typo-p-md text-slate-500">مقایسه محصولات</span>
|
||||||
<span class="typo-h-6 md:typo-h-5 lg:typo-h-3 text-black">
|
<span class="typo-h-6 md:typo-h-5 lg:typo-h-3 text-black">
|
||||||
@@ -136,6 +137,10 @@ watch(
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="h-80"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ onUnmounted(() => {
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
id="products-showcase-container"
|
id="products-showcase-container"
|
||||||
class="mb-40 perspective-midrange w-full h-[125svh] bg-black flex items-center justify-center"
|
class="perspective-midrange w-full h-[125svh] bg-black flex items-center justify-center"
|
||||||
>
|
>
|
||||||
<NuxtLink
|
<NuxtLink
|
||||||
v-for="slide in homeData!.show_case_slider"
|
v-for="slide in homeData!.show_case_slider"
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ const submitComment = async () => {
|
|||||||
>
|
>
|
||||||
<h3 class="typo-h-3">نظرات کاربران</h3>
|
<h3 class="typo-h-3">نظرات کاربران</h3>
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
<Rating />
|
<Rating :rate="2" />
|
||||||
<span class="typo-p-sm">
|
<span class="typo-p-sm">
|
||||||
بر اساس {{ comments?.count }} نظر
|
بر اساس {{ comments?.count }} نظر
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ watch(() => selectedVariant.value, (newValue) => {
|
|||||||
درصد تخفیف
|
درصد تخفیف
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Rating />
|
<Rating :rate="3" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -25,14 +25,18 @@ if (response.isError) {
|
|||||||
<template>
|
<template>
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
<LoadingOverlay />
|
<LoadingOverlay />
|
||||||
<Hero />
|
<Hero class="mb-20 max-md:mt-[80px]" />
|
||||||
<Preview />
|
<Preview />
|
||||||
<ProductsShowcase />
|
<ProductsShowcase class="mb-40" />
|
||||||
<!-- <ProductsSlider title="محصولات پرفروش" />-->
|
<ProductsGrid
|
||||||
<ProductsGrid title="محصولات پرفروش" :products="[...homeData!.products,...homeData!.products]"/>
|
title="محصولات پرفروش"
|
||||||
<Categories />
|
:products="[...homeData!.products,...homeData!.products]"
|
||||||
|
/>
|
||||||
|
<Categories class="mt-40" />
|
||||||
<Brands />
|
<Brands />
|
||||||
<MostRecentComments />
|
<MostRecentComments />
|
||||||
<LatestStories />
|
<ClientOnly>
|
||||||
|
<LatestStories class="mb-20" />
|
||||||
|
</ClientOnly>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 7.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.7 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.9 MiB |
Binary file not shown.
Vendored
+1
-1
@@ -106,7 +106,7 @@ declare global {
|
|||||||
full_name: string;
|
full_name: string;
|
||||||
profile_photo: string;
|
profile_photo: string;
|
||||||
};
|
};
|
||||||
category: number;
|
category: SubCategory;
|
||||||
};
|
};
|
||||||
|
|
||||||
type UserComment = {
|
type UserComment = {
|
||||||
|
|||||||
Reference in New Issue
Block a user