update
This commit is contained in:
+9
-19
@@ -3,10 +3,10 @@
|
||||
<div class="relative text-center h-[56.154vw] md:h-[11.406vw]">
|
||||
<p
|
||||
class="post w-[30.769vw] md:w-[6.979vw] h-[9.487vw] md:h-[2.24vw] flexBox text-[3.59vw] md:text-[0.938vw] absolute left-0 bottom-0 bg-white rounded-tr-[3.59vw] md:rounded-tr-[0.781vw]">
|
||||
{{props.course?.price == 0 ? 'رایگان' : numberFormat(props.course?.price) }}
|
||||
<span v-if="!props.course?.price == 0" class="ms-[1vw] md:ms-[0.2vw] text-[2.236vw] md:text-[0.585vw]">تومان</span>
|
||||
{{props?.course?.price == 0 ? 'رایگان' : numberFormat(props?.course?.price) }}
|
||||
<span v-if="!props?.course?.price == 0" class="ms-[1vw] md:ms-[0.2vw] text-[2.236vw] md:text-[0.585vw]">تومان</span>
|
||||
</p>
|
||||
<NuxtImg style="object-fit: cover;" :src="props.course?.image" alt="laravel"
|
||||
<NuxtImg style="object-fit: cover;" :src="props?.course?.image" alt="laravel"
|
||||
:placeholder="[30, 20]"
|
||||
|
||||
class="h-[56.154vw] md:h-[11.406vw] w-full rounded-[3.846vw] md:rounded-[0.781vw]" />
|
||||
@@ -19,7 +19,7 @@
|
||||
<div class="w-[69.231vw] md:w-[16vw] space-y-[9vw] md:space-y-[1.4vw] mt-[4vw] md:mt-[0vw] xl:mt-[0.7vw]">
|
||||
<h1
|
||||
class="hover:text-primaryGreen text-[3.59vw] md:text-[0.833vw] text-[#383E43] w-full">
|
||||
{{hideEndOfString(props.course?.name)}}
|
||||
{{hideEndOfString(props?.course?.name)}}
|
||||
</h1>
|
||||
<div class="flex justify-between text-[3.614vw] md:text-[0.658vw]">
|
||||
<p class="flex items-center text-[#878787]">
|
||||
@@ -40,20 +40,10 @@
|
||||
</svg>
|
||||
|
||||
<span class="md:ms-[0.2vw]"
|
||||
v-for="category in props.course?.categories"
|
||||
v-for="category in props?.course?.categories"
|
||||
:key="category.id"
|
||||
>
|
||||
{{category.name}}
|
||||
|
||||
<!-- <span v-if="props.course?.categories[0] === '66587a9498d0a0db14693a5b'">
|
||||
بک اند
|
||||
</span>
|
||||
<span v-if="props.course?.categories[0] === '66587ae698d0a0db14693a5e'">
|
||||
فرانت اند
|
||||
</span>
|
||||
<span v-else>
|
||||
{{props.course?.categories}}
|
||||
</span> -->
|
||||
{{category?.name}}
|
||||
</span>
|
||||
</p>
|
||||
<p class="flex items-center text-[#878787]">
|
||||
@@ -75,7 +65,7 @@
|
||||
fill="#E5E5E5" />
|
||||
</svg>
|
||||
|
||||
<span class="md:ms-[0.2vw]">{{props.course?.studentsCount}} دانشجو</span>
|
||||
<span class="md:ms-[0.2vw]">{{props?.course?.studentsCount}} دانشجو</span>
|
||||
</p>
|
||||
<p class="flex items-center text-[#878787]">
|
||||
<svg
|
||||
@@ -87,12 +77,12 @@
|
||||
fill="#E5E5E5" />
|
||||
</svg>
|
||||
|
||||
<span class="md:ms-[0.2vw]">{{props.course?.duration}} ساعت</span>
|
||||
<span class="md:ms-[0.2vw]">{{props?.course?.duration}} ساعت</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="flex justify-between">
|
||||
|
||||
<NuxtLink :to="`${props.course?._id}`"
|
||||
<NuxtLink :to="`${props?.course?._id}`"
|
||||
class="font-[500] mt-[0.5vw] flex items-center justify-center gap-[0.417vw] md:h-[2.292vw] px-[4.103vw] md:px-0 py-[2.308vw] md:py-[0.521vw] bg-primaryGreen text-white text-[3.19vw] md:text-[0.833vw] rounded-[2.564vw] md:rounded-[0.521vw] md:w-[7.917vw]">
|
||||
شروع دوره
|
||||
<svg
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
<p
|
||||
class="text-black post w-[30.769vw] md:w-[6.979vw] h-[9.487vw] md:h-[2.24vw] flexBox text-[3.59vw] md:text-[0.938vw] absolute left-0 bottom-0 bg-white rounded-tr-[3.59vw] md:rounded-tr-[0.781vw]">
|
||||
|
||||
{{ props.item?.item.price > 0 ? numberFormat(props.item?.item.price) + 'تومان' : 'رایگان' }}
|
||||
{{ props?.item?.item.price > 0 ? numberFormat(props?.item?.item.price) + 'تومان' : 'رایگان' }}
|
||||
|
||||
</p>
|
||||
<NuxtImg style="object-fit: cover;" :src="props.item?.item.image"
|
||||
<NuxtImg style="object-fit: cover;" :src="props?.item?.item.image"
|
||||
:placeholder="[30, 20]"
|
||||
alt="laravel"
|
||||
class="h-[56.154vw] md:h-[11.406vw] w-full rounded-[3.846vw] md:rounded-[0.781vw]"
|
||||
@@ -20,7 +20,7 @@
|
||||
<p @click="change"
|
||||
class="cursor-pointer mb-[15vw] md:mb-[2.5vw] text-[14px] md:text-[0.833vw] text-[#383E43] ] mt-[4vw] md:mt-[1.042vw] ms-[3vw] md:ms-[0.625vw]"
|
||||
>
|
||||
{{ props.item?.item.name }}
|
||||
{{ props?.item?.item.name }}
|
||||
</p>
|
||||
|
||||
<div
|
||||
@@ -28,7 +28,7 @@
|
||||
>
|
||||
<div class="flex justify-between w-full mb-[0.417vw]">
|
||||
<p class="text-[2.836vw] md:text-[0.658vw] text-[#383E43]">میزان مشاهده</p>
|
||||
<p class="text-[3.19vw] md:text-[0.741vw] text-[#383E43]">{{ Math.floor(props.item.completionPercentage) }} %</p>
|
||||
<p class="text-[3.19vw] md:text-[0.741vw] text-[#383E43]">{{ Math.floor(props?.item?.completionPercentage) }} %</p>
|
||||
</div>
|
||||
<div
|
||||
id="progressbar"
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
const props = defineProps(['item']);
|
||||
|
||||
const activeClass = ref(props.item.completionPercentage);
|
||||
const activeClass = ref(props?.item?.completionPercentage);
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const change = () =>{
|
||||
|
||||
@@ -3,19 +3,19 @@
|
||||
class="flex flex-col md:flex-row justify-between items-center py-[10vw] md:py-0 absolute top-[140vw] md:top-[54.3vw] w-full z-[3] border-y h-[133.846vw] md:h-[9.115vw] text-[#383E43] px-[10vw]"
|
||||
>
|
||||
<div class="flexBox flex-col">
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{info.data.value.expertise}}</p>
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{info?.data?.value?.expertise}}</p>
|
||||
<p class="text-[3.59vw] md:text-[0.938vw]">حوزه تخصصی</p>
|
||||
</div>
|
||||
<div class="flexBox flex-col">
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{ numberFormat(info.data.value.student) }}</p>
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{ numberFormat(info?.data?.value?.student) }}</p>
|
||||
<p class="text-[3.59vw] md:text-[0.938vw]">دانشجو</p>
|
||||
</div>
|
||||
<div class="flexBox flex-col">
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{ numberFormat(info.data.value.title) }}</p>
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{ numberFormat(info?.data?.value?.title) }}</p>
|
||||
<p class="text-[3.59vw] md:text-[0.938vw]">عنوان آموزشی</p>
|
||||
</div>
|
||||
<div class="flexBox flex-col">
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{ numberFormat(info.data.value.hours) }}</p>
|
||||
<p class="text-[8.318vw] md:text-[2.344vw]">{{ numberFormat(info?.data?.value?.hours) }}</p>
|
||||
<p class="text-[3.59vw] md:text-[0.938vw]">ساعت آموزش</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -22,30 +22,10 @@
|
||||
</div>
|
||||
<div class="w-full md:w-[60%] mt-[6vw] md:mt-0 text-[3.59vw] md:text-[1.055vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw]">
|
||||
<p>
|
||||
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
|
||||
استفاده از طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در
|
||||
ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و
|
||||
کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد کتابهای زیادی
|
||||
در شصت و سه درصد گذشته حال و آینده شناخت فراوان جامعه و متخصصان را
|
||||
می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی
|
||||
الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد در این
|
||||
صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و
|
||||
شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی
|
||||
دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا
|
||||
مورد استفاده قرار گیرد. و جوابگوی سوالات پیوسته اهل دنیای موجود
|
||||
طراحی اساسا مورد استفاده قرار گیرد. و جوابگوی سوالات پیوسته اهل
|
||||
دنیای موجود طراحی اساسا مورد استفاده قرار گیرد. و جوابگوی سوالات
|
||||
پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
|
||||
ماموریت وبسایت ما ارائهی دورههای آموزشی با کیفیت بالا و محتوای بهروز است که به کاربران کمک کند تا مهارتهای خود را در زمینههای مختلف توسعه دهند. ما با استفاده از ویدیوهای آموزشی حرفهای و متدهای تدریس کارآمد، تلاش داریم تا فرآیند یادگیری را برای تمام افراد آسانتر و جذابتر کنیم. هدف اصلی ما، ارتقاء سطح دانش و توانمندی افراد در سراسر ایران است تا با داشتن دسترسی به منابع آموزشی معتبر، بتوانند در زندگی حرفهای و شخصی خود موفقتر باشند.
|
||||
</p>
|
||||
<p class="mt-[2vw]">
|
||||
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
|
||||
استفاده از طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در
|
||||
ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و
|
||||
کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد کتابهای زیادی
|
||||
در شصت و سه درصد گذشته حال و آینده شناخت فراوان جامعه و متخصصان را
|
||||
می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی
|
||||
الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد در این
|
||||
صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها
|
||||
ما به دنبال ایجاد یک محیط یادگیری تعاملی و کاربرپسند هستیم که افراد از هر سن و موقعیتی بتوانند در آن رشد کنند و مهارتهای جدیدی کسب کنند. هدف ما این است که از طریق نوآوری و استفاده از تکنولوژیهای پیشرفته، به دانشپژوهان این امکان را بدهیم که به راحتی به بهترین دورههای آموزشی دسترسی داشته باشند و با یادگیری مستمر، به توسعه فردی و حرفهای خود ادامه دهند.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -30,14 +30,7 @@
|
||||
</div>
|
||||
<div class="mt-[6vw] md:mt-0 w-full md:w-[60%] text-[3.59vw] md:text-[1.055vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw]">
|
||||
<p>
|
||||
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
|
||||
استفاده از طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در
|
||||
ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و
|
||||
کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد کتابهای زیادی
|
||||
در شصت و سه درصد گذشته حال و آینده شناخت فراوان جامعه و متخصصان را
|
||||
می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی
|
||||
الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد در این
|
||||
صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها
|
||||
رویای آغاز کار ما این بود که دورههای آموزشی با بالاترین کیفیت و در عین حال با کمترین قیمت ممکن تولید کنیم تا همه افراد، فارغ از شرایط مالی و موقعیت اجتماعی، بتوانند از این فرصتهای یادگیری بهرهمند شوند. ما به این باور رسیدهایم که آموزش باید در دسترس همه قرار داشته باشد و هدف ما این است که با ارائه محتوای آموزشی حرفهای و مقرونبهصرفه، به همه افراد کمک کنیم تا بتوانند مهارتهای جدیدی کسب کرده و در مسیر پیشرفت فردی و شغلی خود گام بردارند.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -53,16 +46,7 @@
|
||||
</div>
|
||||
<div class="mt-[6vw] md:mt-0 w-full md:w-[60%] text-[3.59vw] md:text-[1.055vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw]">
|
||||
<p>
|
||||
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
|
||||
استفاده از طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در
|
||||
ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و
|
||||
کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد کتابهای زیادی
|
||||
در شصت و سه درصد گذشته حال و آینده شناخت فراوان جامعه و متخصصان را
|
||||
می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی
|
||||
الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد در این
|
||||
صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و
|
||||
شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل حروفچینی
|
||||
دستاوردهای اصلی
|
||||
آرمان و هدف ما این است که هر فردی، در هر زمان که اراده کرد، بتواند به راحتی و بدون هیچ محدودیتی به دورههای آموزشی دسترسی پیدا کند و از محتوای آموزشی با همان کیفیت جهانی بهرهمند شود. ما معتقدیم که آموزش باید حق همه باشد و به همین دلیل تلاش میکنیم تا با فراهم کردن دورههای با کیفیت بالا و دسترسی آسان، فرصتهای یادگیری را برای تمامی افراد در هر نقطه از جهان فراهم کنیم.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+178
-93
@@ -1,96 +1,181 @@
|
||||
<template>
|
||||
<div class="flexBox flex-col mt-[20vw] md:mt-[8.5vw] mb-[6.5vw] relative">
|
||||
<div class="w-[81.2vw] flex justify-between">
|
||||
<div class="w-full md:w-[30.5%] flex gap-[1vw]">
|
||||
<div class="w-full md:w-[70%] flex gap-[3vw] md:gap-[1vw] border-b h-[13.077vw] md:h-[6.4vw]">
|
||||
<svg
|
||||
class="h-[8.462vw] md:h-[2.76vw] w-[1.538vw] md:w-[0.521vw]"
|
||||
viewBox="0 0 10 53"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M0 5C0 2.23858 2.23858 0 5 0H10V53H5C2.23858 53 0 50.7614 0 48V5Z"
|
||||
fill="#0D3F40"
|
||||
/>
|
||||
</svg>
|
||||
<p class="w-full md:w-[18vw] text-[4.8vw] md:text-[1.69vw] text-[#383E43] font-semibold">
|
||||
بخشی از فعالیت های ShinanLearning
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex gap-[2vw] md:gap-[0.6vw] absolute md:left-[0.5vw] top-[20vw] md:top-[3.2vw]">
|
||||
<svg
|
||||
class="h-[12.308vw] md:h-[3.125vw] w-[12.308vw] md:w-[3.125vw]"
|
||||
viewBox="0 0 60 60"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="30"
|
||||
cy="30"
|
||||
r="29.5"
|
||||
transform="rotate(-180 30 30)"
|
||||
stroke="#878787"
|
||||
/>
|
||||
<path
|
||||
d="M26.9999 22.0802L33.5199 28.6002C34.2899 29.3702 34.2899 30.6302 33.5199 31.4002L26.9999 37.9202"
|
||||
stroke="#878787"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<svg
|
||||
class="h-[12.308vw] md:h-[3.125vw] w-[12.308vw] md:w-[3.125vw]"
|
||||
viewBox="0 0 60 60"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle cx="30" cy="30" r="29.5" stroke="#383E43" />
|
||||
<g clip-path="url(#clip0_1_1122)">
|
||||
<path
|
||||
d="M33.0001 37.9198L26.4801 31.3998C25.7101 30.6298 25.7101 29.3698 26.4801 28.5998L33.0001 22.0798"
|
||||
stroke="#383E43"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1_1122">
|
||||
<rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="white"
|
||||
transform="translate(18 18)"
|
||||
/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="flexBox flex-col mt-[20vw] md:mt-[8.5vw] mb-[6.5vw] relative">
|
||||
<div class="w-[81.2vw] flex justify-between">
|
||||
<div class="w-full md:w-[30.5%] flex gap-[1vw]">
|
||||
<div
|
||||
class="w-full md:w-[70%] flex gap-[3vw] md:gap-[1vw] border-b h-[13.077vw] md:h-[6.4vw]"
|
||||
>
|
||||
<svg
|
||||
class="h-[8.462vw] md:h-[2.76vw] w-[1.538vw] md:w-[0.521vw]"
|
||||
viewBox="0 0 10 53"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M0 5C0 2.23858 2.23858 0 5 0H10V53H5C2.23858 53 0 50.7614 0 48V5Z"
|
||||
fill="#0D3F40"
|
||||
/>
|
||||
</svg>
|
||||
<p
|
||||
class="w-full md:w-[18vw] text-[4.8vw] md:text-[1.69vw] text-[#383E43] font-semibold"
|
||||
>
|
||||
بخشی از فعالیت های ShinanLearning
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex flex-col flex-col-reverse md:flex-row items-center justify-between mt-[25vw] md:mt-[1.6vw] w-full md:w-[81.2%]">
|
||||
<div>
|
||||
<h2 class="text-[4.544vw] mt-[10vw] md:mt-0 md:text-[1.502vw] text-[#383E43] ">آموزش آنلاین</h2>
|
||||
<p class="text-[3.59vw] md:text-[1.186vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw] mt-[3vw] md:mt-[1vw] w-[81.2vw] md:w-[39.844vw]">
|
||||
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده
|
||||
از طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در ستون و
|
||||
سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای
|
||||
متنوع با هدف بهبود ابزارهای کاربردی می باشد
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<img
|
||||
class="h-[85.692vw] md:h-[20.469vw] w-[87.692vw] md:w-[20.469vw] rounded-[50%] object-cover"
|
||||
src="/public/images/about-slider.jpg"
|
||||
alt=""
|
||||
</div>
|
||||
<div
|
||||
class="flex gap-[2vw] md:gap-[0.6vw] absolute md:left-[0.5vw] top-[20vw] md:top-[3.2vw]"
|
||||
>
|
||||
<svg
|
||||
@click="change_step('prev')"
|
||||
class="h-[12.308vw] cursor-pointer md:h-[3.125vw] w-[12.308vw] md:w-[3.125vw]"
|
||||
viewBox="0 0 60 60"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle
|
||||
cx="30"
|
||||
cy="30"
|
||||
r="29.5"
|
||||
transform="rotate(-180 30 30)"
|
||||
stroke="#878787"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<path
|
||||
d="M26.9999 22.0802L33.5199 28.6002C34.2899 29.3702 34.2899 30.6302 33.5199 31.4002L26.9999 37.9202"
|
||||
stroke="#878787"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
|
||||
<svg
|
||||
@click="change_step('next')"
|
||||
class="h-[12.308vw] cursor-pointer md:h-[3.125vw] w-[12.308vw] md:w-[3.125vw]"
|
||||
viewBox="0 0 60 60"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<circle cx="30" cy="30" r="29.5" stroke="#878787" />
|
||||
<g clip-path="url(#clip0_1_1122)">
|
||||
<path
|
||||
d="M33.0001 37.9198L26.4801 31.3998C25.7101 30.6298 25.7101 29.3698 26.4801 28.5998L33.0001 22.0798"
|
||||
stroke="#878787"
|
||||
stroke-width="2"
|
||||
stroke-miterlimit="10"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1_1122">
|
||||
<rect
|
||||
width="24"
|
||||
height="24"
|
||||
fill="white"
|
||||
transform="translate(18 18)"
|
||||
/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-show="step === 1"
|
||||
class="flex flex-col flex-col-reverse md:flex-row items-center justify-between mt-[25vw] md:mt-[1.6vw] w-full md:w-[81.2%]"
|
||||
>
|
||||
<div>
|
||||
<h2
|
||||
class="text-[4.544vw] mt-[10vw] md:mt-0 md:text-[1.502vw] text-[#383E43]"
|
||||
>
|
||||
آموزش آنلاین
|
||||
</h2>
|
||||
<p
|
||||
class="text-[3.59vw] md:text-[1.186vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw] mt-[3vw] md:mt-[1vw] w-[81.2vw] md:w-[39.844vw]"
|
||||
>
|
||||
یکی از فعالیتهای اصلی ما آموزش آنلاین است که به افراد این امکان را
|
||||
میدهد تا در هر زمان و مکانی، به محتوای آموزشی با کیفیت دسترسی پیدا
|
||||
کنند. با استفاده از فناوریهای روز و پلتفرمهای تعاملی، ما دورههای
|
||||
آموزشی را به گونهای طراحی کردهایم که دانشپذیران بتوانند با راحتی و
|
||||
انعطافپذیری کامل، مهارتهای جدید بیاموزند و به اهداف شخصی و حرفهای
|
||||
خود برسند. آموزش آنلاین به ما این فرصت را میدهد که به صورت گسترده و
|
||||
بیمرز، به افراد در سراسر جهان کمک کنیم تا بدون نیاز به حضور فیزیکی در
|
||||
کلاسها، از بهترین منابع آموزشی بهرهمند شوند.
|
||||
</p>
|
||||
</div>
|
||||
<img
|
||||
class="border h-[85.692vw] md:h-[20.469vw] w-[87.692vw] md:w-[20.469vw] rounded-[50%] object-cover"
|
||||
src="/public/images/ban1.jpg"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-show="step === 2"
|
||||
class="flex flex-col flex-col-reverse md:flex-row items-center justify-between mt-[25vw] md:mt-[1.6vw] w-full md:w-[81.2%]"
|
||||
>
|
||||
<div>
|
||||
<h2
|
||||
class="text-[4.544vw] mt-[10vw] md:mt-0 md:text-[1.502vw] text-[#383E43]"
|
||||
>
|
||||
فروش محصولات ارگانیک
|
||||
</h2>
|
||||
<p
|
||||
class="text-[3.59vw] md:text-[1.186vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw] mt-[3vw] md:mt-[1vw] w-[81.2vw] md:w-[39.844vw]"
|
||||
>
|
||||
یکی دیگر از فعالیتهای ما فروش محصولات ارگانیک است که با هدف ارتقاء سلامت و تندرستی افراد ارائه میشود. ما مجموعهای از محصولات ارگانیک با بالاترین کیفیت را از منابع معتبر و پایدار انتخاب کردهایم تا به مشتریان خود امکان دسترسی به مواد غذایی و محصولات مراقبتی سالم و طبیعی را فراهم کنیم. تمامی محصولات ما بدون استفاده از مواد شیمیایی یا فرآیندهای صنعتی تولید میشوند، بهطوری که نه تنها سلامت فردی را تضمین میکنند، بلکه از حفظ محیطزیست و منابع طبیعی نیز حمایت میکنند.
|
||||
</p>
|
||||
</div>
|
||||
<img
|
||||
class="h-[85.692vw] md:h-[20.469vw] border w-[87.692vw] md:w-[20.469vw] rounded-[50%] object-cover"
|
||||
src="/public/images/ban3.jpg"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-show="step === 3"
|
||||
class="flex flex-col flex-col-reverse md:flex-row items-center justify-between mt-[25vw] md:mt-[1.6vw] w-full md:w-[81.2%]"
|
||||
>
|
||||
<div>
|
||||
<h2
|
||||
class="text-[4.544vw] mt-[10vw] md:mt-0 md:text-[1.502vw] text-[#383E43]"
|
||||
>
|
||||
همکاری در فروش
|
||||
</h2>
|
||||
<p
|
||||
class="text-[3.59vw] md:text-[1.186vw] text-[#878787] leading-[7.692vw] md:leading-[2.083vw] mt-[3vw] md:mt-[1vw] w-[81.2vw] md:w-[39.844vw]"
|
||||
>
|
||||
این فرصت برای کسبوکارها و تولیدکنندگان فراهم شده است تا بهراحتی محصولات خود را ثبتنام کرده و از طریق پلتفرم ما به فروش برسانند. ما فضایی کاربرپسند و امن ایجاد کردهایم که فروشندگان بتوانند محصولات خود را به مخاطبان گسترده معرفی کنند و با استفاده از ابزارهای مدیریتی حرفهای، فروش خود را بهینه کنند. این بخش برای آن دسته از افرادی است که میخواهند محصولات خود را در یک بازار آنلاین معتبر و پررونق عرضه کنند و از مزایای دسترسی به مشتریان جدید و گسترش کسبوکار بهرهمند شوند.
|
||||
</p>
|
||||
</div>
|
||||
<img
|
||||
class="h-[85.692vw] md:h-[20.469vw] border w-[87.692vw] md:w-[20.469vw] rounded-[50%] object-cover"
|
||||
src="/public/images/ban2.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const step = ref(1);
|
||||
const change_step = (target) => {
|
||||
|
||||
if (target === "next") {
|
||||
if (step.value < 3) {
|
||||
step.value++;
|
||||
} else {
|
||||
step.value = 1;
|
||||
}
|
||||
} else {
|
||||
if (step.value > 1) {
|
||||
step.value--;
|
||||
} else {
|
||||
step.value = 3;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -11,7 +11,7 @@
|
||||
درباره ما
|
||||
</h2>
|
||||
<div
|
||||
v-html="info.data.value.about"
|
||||
v-html="info?.data?.value?.about"
|
||||
class="about text-[#383E43] max-w-[766px] text-[3.59vw] md:text-[16px] mt-[4vw] md:mt-[1.354vw] mb-[6vw] md:mb-0 leading-[7.179vw] font-light md:leading-[1.865vw]"
|
||||
>
|
||||
</div>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
</defs>
|
||||
</svg>
|
||||
<div class="text-[#383E43] font-semibold">
|
||||
<p class="text-[5.11vw] md:text-[1.979vw]">{{info.data.value.student}} +</p>
|
||||
<p class="text-[5.11vw] md:text-[1.979vw]">{{info?.data?.value?.student}} +</p>
|
||||
<p class="text-[3.59vw] md:text-[1.502vw]">دانشجو</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -78,7 +78,7 @@
|
||||
</svg>
|
||||
|
||||
<div class="text-[#383E43] font-semibold">
|
||||
<p class="text-[5.11vw] md:text-[1.979vw]">{{info.data.value.expertise}}</p>
|
||||
<p class="text-[5.11vw] md:text-[1.979vw]">{{info?.data?.value?.expertise}}</p>
|
||||
<p class="text-[3.59vw] md:text-[1.502vw]">ویدئوی آموزشی</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -114,7 +114,7 @@
|
||||
</svg>
|
||||
|
||||
<div class="text-[#383E43] font-semibold">
|
||||
<p class="text-[5.11vw] md:text-[1.979vw]">{{info.data.value.rate}}</p>
|
||||
<p class="text-[5.11vw] md:text-[1.979vw]">{{info?.data?.value?.rate}}</p>
|
||||
<p class="text-[3.59vw] md:text-[1.502vw]">امتیاز دانشجویان به ما</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
<div class=" flex w-[81.04%] text-white">
|
||||
<div class="flex flex-col text-start">
|
||||
<h2 class="md:w-[25vw] text-[5.751vw] md:text-[2.188vw] font-bold mt-[25vw] md:mt-[0.052vw]">
|
||||
{{ headers.data?.value.header }}
|
||||
{{ headers.data?.value?.header }}
|
||||
</h2>
|
||||
<p class="hidden md:block mt-[1.25vw] text-[1.055vw] leading-[30.38px] mb-[2.917vw]">
|
||||
{{ headers.data?.value.titleText }}
|
||||
{{ headers.data?.value?.titleText }}
|
||||
</p>
|
||||
<nuxt-link to="/courses"
|
||||
class="greenButton h-[8.974vw] md:h-[3.125vw] px-0 flexBox rounded-[2.051vw] md:rounded-[0.521vw] w-[26.41vw] md:w-[14.01vw] text-[3.19vw] md:text-[1.055vw] mt-[10vw] md:mt-0">شروع
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<div
|
||||
class="mt-[4.051vw] md:mt-[2.1vw] grid gap-[4vw] md:gap-[1.25vw] grid-cols-1 md:grid-cols-4"
|
||||
>
|
||||
<div v-for="(course, index) in data.courses"
|
||||
<div v-for="(course, index) in data?.courses"
|
||||
:key="index">
|
||||
<Card :course="course" />
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ async function resendCall() {
|
||||
} catch (error) {
|
||||
loading.value = false;
|
||||
// return errors.value.push(error.data.data.error);
|
||||
return toast.error(error.data.data.error)
|
||||
return toast.error(error?.data?.data?.error)
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
|
||||
@@ -275,13 +275,13 @@
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
v-for="item in activeHead.Comment"
|
||||
:key="item.id"
|
||||
v-for="item in activeHead?.Comment"
|
||||
:key="item?.id"
|
||||
class="mt-[1vw] relative bg-[#F8F8F8] rounded-[3.846vw] md:rounded-[0.781vw] flex justify-between p-[4vw] md:p-[1.55vw]"
|
||||
>
|
||||
<img
|
||||
v-if="item.user?.avatarMedia"
|
||||
:src="item.user?.avatarMedia"
|
||||
v-if="item?.user?.avatarMedia"
|
||||
:src="item?.user?.avatarMedia"
|
||||
alt="profile"
|
||||
class="w-[10.256vw] md:w-[3.958vw] h-[10.256vw] md:h-[3.958vw] rounded-[50%]"
|
||||
/>
|
||||
@@ -295,7 +295,7 @@
|
||||
|
||||
<div class="ps-[3vw] md:ps-[1vw] w-full">
|
||||
<p class="text-[3.59vw] md:text-[0.938vw] text-[#383E43]">
|
||||
{{ item.user.name ? item.user.name : "کاربر مهمان" }}
|
||||
{{ item?.user?.name ? item?.user?.name : "کاربر مهمان" }}
|
||||
</p>
|
||||
<div class="thin mt-[4vw] md:mt-0">
|
||||
<p class="text-[2.836vw] md:text-[0.741vw] text-[#878787]">
|
||||
@@ -304,7 +304,7 @@
|
||||
<p
|
||||
class="w-[98%] text-[3.19vw] md:text-[0.833vw] text-[#383E43] leading-[4.785vw] md:leading-[1.25vw] mt-[2vw] md:mt-[0.5vw]"
|
||||
>
|
||||
{{ item.text }}
|
||||
{{ item?.text }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -339,8 +339,8 @@
|
||||
<div class="space-y-[5vw] md:space-y-[1vw]">
|
||||
<div class="flex gap-[1vw]">
|
||||
<img
|
||||
v-if="authUser.user.avatarMedia"
|
||||
:src="authUser.user.avatarMedia"
|
||||
v-if="authUser?.user?.avatarMedia"
|
||||
:src="authUser?.user?.avatarMedia"
|
||||
alt=""
|
||||
class="h-[10.256vw0] md:h-[3.385vw] w-[10.256vw] md:w-[3.385vw] rounded-[50%]"
|
||||
/>
|
||||
@@ -354,7 +354,7 @@
|
||||
class="space-y-[4vw] mt-[1vw] md:mt-0 ms-[1vw] md:ms-0 md:space-y-0"
|
||||
>
|
||||
<p class="text-[3.59vw] md:text-[0.938vw]">
|
||||
{{ authUser?.user.name ? authUser.user.name : "کاربر مهمان" }}
|
||||
{{ authUser?.user?.name ? authUser?.user?.name : "کاربر مهمان" }}
|
||||
</p>
|
||||
<p class="text-[2.836vw] md:text-[0.741vw] text-[#878787]">
|
||||
پرسش جدید
|
||||
@@ -405,13 +405,13 @@
|
||||
<input
|
||||
type="radio"
|
||||
@click="chengeVideo(item)"
|
||||
:checked="item.headline === activeHead.headline"
|
||||
:checked="item?.headline === activeHead?.headline"
|
||||
class="accent-primaryGreen"
|
||||
/>
|
||||
{{ item.headline }}
|
||||
{{ item?.headline }}
|
||||
</div>
|
||||
<div class="flexBox gap-[1vw] md:gap-[0.3vw]">
|
||||
{{ convertStoMs(item.time) }}
|
||||
{{ convertStoMs(item?.time) }}
|
||||
<svg
|
||||
class="h-[4.359vw] w-[4.359vw] md:h-[0.99vw] md:w-[0.99vw]"
|
||||
viewBox="0 0 19 20"
|
||||
@@ -458,7 +458,7 @@
|
||||
class="flex justify-between text-[3.19vw] md:text-[0.833vw] font-semibold text-[#383E43]"
|
||||
>
|
||||
<span class="text-[3.59vw] md:text-[0.938vw]">پیشرفت شما</span>
|
||||
<span>{{ Math.floor(progress.completionPercentage) }}%</span>
|
||||
<span>{{ Math.floor(progress?.completionPercentage) }}%</span>
|
||||
</div>
|
||||
<div
|
||||
id="progressbar"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
<!-- comment 1 -->
|
||||
<div
|
||||
v-for="item in props.props" :key="item.id"
|
||||
v-for="item in props?.props" :key="item?.id"
|
||||
class="mt-[1vw] relative bg-[#F8F8F8] rounded-[3.846vw] md:rounded-[0.781vw] flex justify-between p-[4vw] md:p-[1.55vw]"
|
||||
>
|
||||
<img
|
||||
@@ -41,7 +41,7 @@
|
||||
<p
|
||||
class="w-[98%] text-[3.19vw] md:text-[0.833vw] text-[#383E43] leading-[4.785vw] md:leading-[1.25vw] mt-[2vw] md:mt-[0.5vw]"
|
||||
>
|
||||
{{ item.text }}
|
||||
{{ item?.text }}
|
||||
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
تعداد ویدیو ها
|
||||
</p>
|
||||
<p class="text-[#383E43] font-semibold">
|
||||
{{ props.props[0].countOfVideos }}
|
||||
{{ props?.props[0]?.countOfVideos }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="py-[3vw] md:py-[0.9vw] w-full border-b flex justify-between">
|
||||
@@ -113,7 +113,7 @@
|
||||
حجم فایل ها
|
||||
</p>
|
||||
<p class="text-[#383E43] font-semibold">
|
||||
{{ props.props[0].totalFileSize }} گیگابایت
|
||||
{{ props?.props[0]?.totalFileSize }} گیگابایت
|
||||
</p>
|
||||
</div>
|
||||
<div class="py-[3vw] md:py-[0.9vw] w-full border-b flex justify-between">
|
||||
@@ -148,7 +148,7 @@
|
||||
</svg>
|
||||
سطح دوره
|
||||
</p>
|
||||
<p class="text-[#383E43] font-semibold">{{ props.props[0].level }}</p>
|
||||
<p class="text-[#383E43] font-semibold">{{ props?.props[0]?.level }}</p>
|
||||
</div>
|
||||
<div class="py-[3vw] md:py-[0.9vw] w-full border-b flex justify-between">
|
||||
<p class="flex items-center gap-[0.8vw]">
|
||||
@@ -198,21 +198,21 @@
|
||||
زبان
|
||||
</p>
|
||||
<p class="text-[#383E43] font-semibold">
|
||||
{{ props.props[0].language }}
|
||||
{{ props?.props[0]?.language }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="py-[3vw] md:py-[0.9vw] w-full border-b flex justify-between">
|
||||
<p class="flex items-center gap-[0.8vw] ps-[2vw]">سطح رضایت</p>
|
||||
<p class="text-[#383E43] font-semibold">
|
||||
{{ props.props[0].satisfactionLevel }}
|
||||
{{ props?.props[0]?.satisfactionLevel }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<h2
|
||||
v-if="props.props[0].price > 0"
|
||||
v-if="props?.props[0]?.price > 0"
|
||||
class="my-[5vw] md:my-[1.25vw] text-[4.544vw] md:text-[1.502vw] text-[#383E43] font-semibold flex items-center justify-end w-full gap-[0.5vw]"
|
||||
>
|
||||
{{ numberFormat(props.props[0].price) }}
|
||||
{{ numberFormat(props?.props[0]?.price) }}
|
||||
<p class="text-[2.836vw] md:text-[0.741vw]">تومان</p>
|
||||
</h2>
|
||||
<h2
|
||||
@@ -223,7 +223,7 @@
|
||||
</h2>
|
||||
<button
|
||||
class="greenButton h-[11.795vw] md:h-auto w-full flexBox text-[4.038vw] md:text-[1.055vw] rounded-[2.564vw] md:rounded-[0.521vw]"
|
||||
@click="paymentHandler(props.props[0]._id)"
|
||||
@click="paymentHandler(props?.props[0]._id)"
|
||||
>
|
||||
<svg
|
||||
class="h-[5.641vw] md:h-[1.458vw] w-[5.641vw] md:w-[1.458vw]"
|
||||
@@ -253,7 +253,7 @@
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
{{ props.props[1] ? "مشاهده دوره" : "شرکت در دوره" }}
|
||||
{{ props?.props[1] ? "مشاهده دوره" : "شرکت در دوره" }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -267,27 +267,30 @@ const props = defineProps(["props"], ["access"]);
|
||||
|
||||
const toast = useToast();
|
||||
const router = useRouter();
|
||||
const paymentHandler = (id) => {
|
||||
const paymentHandler = async (id) => {
|
||||
if (authUser.value === null) {
|
||||
return router.push({
|
||||
path: "/login",
|
||||
});
|
||||
}
|
||||
const data = useFetch("/api/user/registerCourse", {
|
||||
method: "POST",
|
||||
body: {
|
||||
courseId: id,
|
||||
code: "",
|
||||
},
|
||||
});
|
||||
|
||||
if (data.data.value?.status === 406 || data.data.value?.status === 500) {
|
||||
toast.error(data.data.value.message);
|
||||
} else {
|
||||
toast.success("ثبت نام انجام شد");
|
||||
try {
|
||||
const data = await useFetch("/api/user/registerCurse", {
|
||||
method: "POST",
|
||||
body: {
|
||||
courseId: id,
|
||||
code: "",
|
||||
},
|
||||
});
|
||||
if (data?.data?.value?.status === 406 || data?.data?.value?.status === 500) {
|
||||
toast.error(data?.data?.value?.message);
|
||||
} else {
|
||||
toast.success("ثبت نام انجام شد");
|
||||
}
|
||||
setTimeout(() => {
|
||||
location.reload();
|
||||
}, 1000);
|
||||
} catch (error) {
|
||||
toast.error("خطا در برقراری ارتباط");
|
||||
}
|
||||
setTimeout(() => {
|
||||
location.reload();
|
||||
}, 1000);
|
||||
};
|
||||
</script>
|
||||
@@ -43,10 +43,10 @@
|
||||
/>
|
||||
</svg>
|
||||
</h2>
|
||||
<span v-if="props.props.completionPercentage > 99" class="text-[2.836vw] md:text-[0.741vw] text-[#878787]"
|
||||
<span v-if="props?.props?.completionPercentage > 99" class="text-[2.836vw] md:text-[0.741vw] text-[#878787]"
|
||||
>تکمیل شده</span
|
||||
>
|
||||
<span v-else-if="props.props.completionPercentage > 1 && props.props.completionPercentage < 99" class="text-[2.836vw] md:text-[0.741vw] text-[#878787]"
|
||||
<span v-else-if="props?.props?.completionPercentage > 1 && props?.props?.completionPercentage < 99" class="text-[2.836vw] md:text-[0.741vw] text-[#878787]"
|
||||
>در حال تکمیل</span
|
||||
>
|
||||
<span v-else class="text-[2.836vw] md:text-[0.741vw] text-[#878787]">در حال تولید</span>
|
||||
@@ -54,7 +54,7 @@
|
||||
<div>
|
||||
<div class="flex justify-between text-[3.19vw] md:text-[0.833vw]">
|
||||
<span class="text-[#383E43]">درصد تکمیل دوره</span>
|
||||
<span>{{props.props.completionPercentage}}٪</span>
|
||||
<span>{{props?.props?.completionPercentage}}٪</span>
|
||||
</div>
|
||||
<div
|
||||
id="progressbar"
|
||||
@@ -75,7 +75,7 @@
|
||||
<script setup>
|
||||
const adad = 2;
|
||||
const props = defineProps(['props'])
|
||||
const activeClass = ref(props.props.completionPercentage);
|
||||
const activeClass = ref(props?.props?.completionPercentage);
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
>توضیحات</span
|
||||
>
|
||||
</div>
|
||||
<div v-html="props.props.description" class="descriptions mt-[4vw] md:mt-[2.1vw] thin">
|
||||
<div v-html="props?.props?.description" class="descriptions mt-[4vw] md:mt-[2.1vw] thin">
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
<div class="w-full relative flex h-[86.41vw] md:h-[40.625vw]">
|
||||
<NuxtImg
|
||||
:placeholder="[30, 20]"
|
||||
:src="props.props?.image"
|
||||
:src="props?.props?.image"
|
||||
alt="html"
|
||||
class="absolute h-[86.41vw] md:h-[40.625vw] top-0 left-0 w-full object-cover brightness-75"
|
||||
/>
|
||||
<div class="mt-[14vw] ms-[9.5vw] z-[1] text-white">
|
||||
<h1 class="text-[5.751vw] md:text-[1.69vw] font-[600] -tracking-[0.05vw]">
|
||||
{{ props.props?.name }}
|
||||
{{ props?.props?.name }}
|
||||
</h1>
|
||||
<p class="text-[3.19vw] md:text-[0.833vw] mt-[0.6vw] text-[#E5E5E5]">
|
||||
{{ props.props?.categories[0].name }}
|
||||
{{ props?.props?.categories[0]?.name }}
|
||||
</p>
|
||||
<div
|
||||
v-html="describe"
|
||||
@@ -22,7 +22,7 @@
|
||||
>
|
||||
مدرس دوره :
|
||||
<span class="text-[3.59vw] md:text-[1.055vw] text-white ms-[1vw]"
|
||||
>{{props.props?.teacher.name}}</span
|
||||
>{{props?.props?.teacher?.name}}</span
|
||||
>
|
||||
</p>
|
||||
<div
|
||||
@@ -112,7 +112,7 @@
|
||||
</svg>
|
||||
<div class="space-y-[0.3vw]">
|
||||
<p class="text-[3.59vw] md:text-[1.055vw]">آخرین بروزرسانی</p>
|
||||
<p class="text-[2.518vw] md:text-[0.741vw]">{{jDate(props.props?.updatedAt)}}</p>
|
||||
<p class="text-[2.518vw] md:text-[0.741vw]">{{jDate(props?.props?.updatedAt)}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="border-l"></div>
|
||||
@@ -142,7 +142,7 @@
|
||||
<div class="space-y-[0.3vw]">
|
||||
<p class="text-[3.59vw] md:text-[1.055vw]">مدت زمان دوره</p>
|
||||
<p class="text-[2.518vw] md:text-[0.741vw]">
|
||||
{{ props.props?.duration }} ساعت
|
||||
{{ props?.props?.duration }} ساعت
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
<div class="space-y-[0.3vw]">
|
||||
<p class="text-[3.59vw] md:text-[1.055vw]">
|
||||
{{ props.props?.studentsCount }}
|
||||
{{ props?.props?.studentsCount }}
|
||||
</p>
|
||||
<p class="text-[2.518vw] md:text-[0.741vw]">دانشجو</p>
|
||||
</div>
|
||||
@@ -210,6 +210,6 @@ import {jDate} from "@/utils/jDate"
|
||||
return inputString;
|
||||
}
|
||||
}
|
||||
const describe = hideEndOfString(props.props.description);
|
||||
const describe = hideEndOfString(props?.props?.description);
|
||||
|
||||
</script>
|
||||
@@ -19,19 +19,19 @@
|
||||
</div>
|
||||
<div class="mt-[6vw] md:mt-[2.1vw] space-y-[3vw] md:space-y-[1vw] thin">
|
||||
<div
|
||||
v-for="headline in props.props.courseHeadlines" :key="headline.id"
|
||||
v-for="headline in props?.props?.courseHeadlines" :key="headline.id"
|
||||
class="px-[3vw] md:px-[0.4vw] flex items-center bg-[#F4FDFD] rounded-[3.846vw] md:rounded-[0.781vw] h-[15.385vw] md:h-[3.438vw] w-full smallShadow"
|
||||
>
|
||||
<div class="flex items-center relative basis-5/6 md:basis-3/6 w-full">
|
||||
<span
|
||||
class=" border-b-[0.15vw] border-[#878787] px-[1vw] md:px-[0.5vw] ms-[0.3vw] me-[2vw] md:me-[0.5vw] text-[4.038vw] md:text-[1.055vw] font-black text-[#878787]"
|
||||
>
|
||||
{{ props.props.courseHeadlines.indexOf(headline)+1 }}
|
||||
{{ props?.props?.courseHeadlines?.indexOf(headline)+1 }}
|
||||
</span>
|
||||
<h2 class="border-r ps-[2.2vw]">{{ headline.headline }}</h2>
|
||||
<h2 class="border-r ps-[2.2vw]">{{ headline?.headline }}</h2>
|
||||
</div>
|
||||
<div class="hidden md:flex items-center text-[0.833vw] w-full md:basis-2/6">
|
||||
<span>{{ convertStoMs(headline.time) }}</span>
|
||||
<span>{{ convertStoMs(headline?.time) }}</span>
|
||||
<svg
|
||||
class="ms-[0.3vw] h-[1.042vw] w-[1.042vw]"
|
||||
viewBox="0 0 20 20"
|
||||
|
||||
Reference in New Issue
Block a user