Пре альфа макета сайта v2
This commit is contained in:
@@ -3,18 +3,23 @@
|
|||||||
<SiteHeader />
|
<SiteHeader />
|
||||||
<main class="container">
|
<main class="container">
|
||||||
<TariffCards />
|
<TariffCards />
|
||||||
|
<MarqueeBar />
|
||||||
<PriceTable />
|
<PriceTable />
|
||||||
<ServicesGrid />
|
<ServicesGrid />
|
||||||
<Footer />
|
<AdvantagesSection />
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
<Footer />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import SiteHeader from './components/SiteHeader.vue'
|
import SiteHeader from './components/SiteHeader.vue'
|
||||||
import TariffCards from './components/TariffCards.vue'
|
import TariffCards from './components/TariffCards.vue'
|
||||||
|
import MarqueeBar from './components/MarqueeBar.vue'
|
||||||
import PriceTable from './components/PriceTable.vue'
|
import PriceTable from './components/PriceTable.vue'
|
||||||
import ServicesGrid from './components/ServicesGrid.vue'
|
import ServicesGrid from './components/ServicesGrid.vue'
|
||||||
|
import AdvantagesSection from './components/AdvantagesSection.vue'
|
||||||
import Footer from './components/Footer.vue'
|
import Footer from './components/Footer.vue'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
129
src/components/AdvantagesSection.vue
Normal file
129
src/components/AdvantagesSection.vue
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
<template>
|
||||||
|
<section class="advantages">
|
||||||
|
<h2 class="section-title">
|
||||||
|
Преимущества аутсорсинга бухгалтерии «Моё дело»
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="card" v-for="item in items" :key="item.title">
|
||||||
|
<div class="icon">
|
||||||
|
<component :is="item.icon" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 class="card-title">{{ item.title }}</h3>
|
||||||
|
|
||||||
|
<div class="divider"></div>
|
||||||
|
|
||||||
|
<p class="text">{{ item.text }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
const CoinIcon = {
|
||||||
|
template: `
|
||||||
|
<svg viewBox="0 0 24 24" width="28" height="28" fill="white">
|
||||||
|
<circle cx="12" cy="12" r="8"/>
|
||||||
|
</svg>`
|
||||||
|
}
|
||||||
|
|
||||||
|
const FlashIcon = {
|
||||||
|
template: `
|
||||||
|
<svg viewBox="0 0 24 24" width="28" height="28" fill="white">
|
||||||
|
<polygon points="13 2 3 14 11 14 9 22 21 8 13 8"/>
|
||||||
|
</svg>`
|
||||||
|
}
|
||||||
|
|
||||||
|
const UsersIcon = {
|
||||||
|
template: `
|
||||||
|
<svg viewBox="0 0 24 24" width="28" height="28" fill="white">
|
||||||
|
<circle cx="8" cy="10" r="3"/>
|
||||||
|
<circle cx="16" cy="10" r="3"/>
|
||||||
|
<rect x="5" y="14" width="14" height="4"/>
|
||||||
|
</svg>`
|
||||||
|
}
|
||||||
|
|
||||||
|
const ChatIcon = {
|
||||||
|
template: `
|
||||||
|
<svg viewBox="0 0 24 24" width="28" height="28" fill="white">
|
||||||
|
<rect x="3" y="4" width="18" height="12" rx="2"/>
|
||||||
|
<polygon points="8,16 10,20 14,16"/>
|
||||||
|
</svg>`
|
||||||
|
}
|
||||||
|
|
||||||
|
const items = [
|
||||||
|
{
|
||||||
|
title: "Предоставляем финансовые гарантии",
|
||||||
|
text: "Наша ответственность застрахована на 100 млн ₽. Если по нашей вине возникнут убытки, мы их компенсируем. Ваша безопасность — наш приоритет.",
|
||||||
|
icon: CoinIcon
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Прозрачное ценообразование",
|
||||||
|
text: "Вы платите только за те услуги, которые вам действительно нужны. Мы не навязываем лишнее и можем оказать услуги единоразово.",
|
||||||
|
icon: FlashIcon
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Подбираем экспертов под ваш бизнес",
|
||||||
|
text: "Учитываем специфику вашей сферы и подбираем бухгалтеров с нужной квалификацией. Повышаем навыки сотрудников регулярно.",
|
||||||
|
icon: UsersIcon
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Мы рядом",
|
||||||
|
text: "Берём на себя всю рутину и сложные задачи. Всегда на связи в чате или по телефону — решаем вопросы оперативно.",
|
||||||
|
icon: ChatIcon
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.advantages {
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-size: 40px;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
gap: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
background: #f3f3f3;
|
||||||
|
padding: 50px;
|
||||||
|
border-radius: 6px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
background: #ff4d2f;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-title {
|
||||||
|
font-size: 24px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
height: 1px;
|
||||||
|
background: #ddd;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
78
src/components/MarqueeBar.vue
Normal file
78
src/components/MarqueeBar.vue
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<div class="marquee">
|
||||||
|
<div class="track">
|
||||||
|
<div class="content">
|
||||||
|
<template v-for="(word, index) in words" :key="index">
|
||||||
|
<span class="word">{{ word }}</span>
|
||||||
|
<span class="divider"></span>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- дублируем для бесконечной анимации -->
|
||||||
|
<div class="content">
|
||||||
|
<template v-for="(word, index) in words" :key="'dup-' + index">
|
||||||
|
<span class="word">{{ word }}</span>
|
||||||
|
<span class="divider"></span>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
const words = [
|
||||||
|
"Бухгалтерия",
|
||||||
|
"Налоги",
|
||||||
|
"Отчётность",
|
||||||
|
"Аутсорсинг",
|
||||||
|
"Оптимизация",
|
||||||
|
"Консультации",
|
||||||
|
"Финансы",
|
||||||
|
"Контроль",
|
||||||
|
"Поддержка",
|
||||||
|
"Экспертиза"
|
||||||
|
]
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.marquee {
|
||||||
|
width: 100%;
|
||||||
|
background: #000;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 18px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.track {
|
||||||
|
display: flex;
|
||||||
|
width: max-content;
|
||||||
|
animation: scroll 25s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.word {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 18px;
|
||||||
|
margin: 0 20px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
background: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes scroll {
|
||||||
|
from {
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user