update cards
BIN
public/icons/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/icons/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 13 KiB |
BIN
public/icons/favicon-128x128.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
public/icons/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 352 B |
BIN
public/icons/favicon-256x256.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
public/icons/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 988 B |
BIN
public/icons/favicon-48x48.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/icons/favicon-64x64.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
11
public/icons/favicon-tags.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!-- Place these tags in your HTML head section -->
|
||||||
|
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="64x64" href="/favicon-64x64.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="128x128" href="/favicon-128x128.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="256x256" href="/favicon-256x256.png">
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||||
|
<link rel="apple-touch-icon" sizes="192x192" href="/android-chrome-192x192.png">
|
||||||
|
<link rel="manifest" href="/site.webmanifest">
|
||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 32 KiB |
@@ -1,18 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "MyWebSite",
|
"name": "Your Website",
|
||||||
"short_name": "MySite",
|
"short_name": "Website",
|
||||||
|
"description": "Description of your website",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "/web-app-manifest-192x192.png",
|
"src": "/android-chrome-192x192.png",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png"
|
||||||
"purpose": "maskable"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/web-app-manifest-512x512.png",
|
"src": "/android-chrome-512x512.png",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png"
|
||||||
"purpose": "maskable"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"theme_color": "#ffffff",
|
"theme_color": "#ffffff",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 50 KiB |
@@ -5,7 +5,7 @@
|
|||||||
'is-animated': animated,
|
'is-animated': animated,
|
||||||
'hide-bg': !withBackground
|
'hide-bg': !withBackground
|
||||||
}"
|
}"
|
||||||
:style="{ color: iconColor, transform: 'scale(1.08)', height: '1cap' }"
|
:style="iconStyle"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -20,26 +20,41 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { computed } from 'vue'
|
||||||
|
import { getCssVar } from 'quasar'
|
||||||
import LogoIcon from 'components/BaseLogoSvg.vue'
|
import LogoIcon from 'components/BaseLogoSvg.vue'
|
||||||
defineProps({
|
const props = defineProps({
|
||||||
textColor: {
|
textColor: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'primary'
|
default: 'primary'
|
||||||
},
|
},
|
||||||
iconColor: {
|
iconColor: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'white'
|
default: 'primary'
|
||||||
},
|
},
|
||||||
withBackground: {
|
withBackground: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: false
|
||||||
},
|
},
|
||||||
animated: {
|
animated: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const iconStyle = computed(() => {
|
||||||
|
const color = getCssVar(props.iconColor) || props.iconColor
|
||||||
|
|
||||||
|
return {
|
||||||
|
color: color,
|
||||||
|
transform: 'scale(1.08)',
|
||||||
|
height: '1cap'
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.hide-bg :deep(.logo-bg) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,79 +1,85 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="w100 flex justify-between text-caption q-pa-md q-gutter-y-md text-grey-9">
|
<div>
|
||||||
<div class="flex column col-12 col-sm">
|
<div class="w100 flex items-center justify-between q-px-md">
|
||||||
<div class="q-pl-sm">
|
<div id="contact-block" class="flex column items-start q-py-sm">
|
||||||
<base-logo
|
<base-logo
|
||||||
withBackground
|
animated
|
||||||
animated
|
class="text-h6"
|
||||||
class="text-h4"
|
/>
|
||||||
/>
|
|
||||||
<div class="flex items-center no-wrap">
|
<div class="flex items-center no-wrap">
|
||||||
<q-icon name="mdi-map-marker-outline" color="brand" class="q-pr-sm"/>
|
<q-icon name="mdi-map-marker-outline" color="brand" class="q-pr-xs"/>
|
||||||
<span>{{ $t('footer__contacts_location') }}</span>
|
<span>{{ $t('footer__contacts_location') }}</span>
|
||||||
</div>
|
|
||||||
<div class="flex items-center no-wrap">
|
|
||||||
<q-icon name="mdi-phone-outline" color="brand" class="q-pr-sm" />
|
|
||||||
<span>+7 (916) 439-04-25</span>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center no-wrap">
|
|
||||||
<q-icon name="mdi-email-outline" color="brand" class="q-pr-sm"/>
|
|
||||||
<a
|
|
||||||
href="mailto:info@tgcrew.ru"
|
|
||||||
style="text-decoration: none; color: inherit"
|
|
||||||
>
|
|
||||||
info@tgcrew.ru
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<div class="">
|
|
||||||
{{ $t('footer__contacts_ogrnip') + ' ' }}
|
|
||||||
<span class="text-no-wrap">
|
|
||||||
318774600262084
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="">
|
|
||||||
{{ $t('footer__contacts_inn') + ' ' }}
|
|
||||||
<span class="text-no-wrap">
|
|
||||||
366316608346
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="">
|
|
||||||
{{ $t('footer__contacts_pdn') + ' ' }}
|
|
||||||
<span class="text-no-wrap">
|
|
||||||
77-25-471585
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex column col-12 col-sm">
|
<div class="flex items-center no-wrap">
|
||||||
<div class="q-pl-sm">
|
<q-icon name="mdi-phone-outline" color="brand" class="q-pr-xs"/>
|
||||||
<span class="text-body1 text-bold">
|
<span>+7 (916) 439-04-25</span>
|
||||||
{{ $t('footer__docs') }}
|
</div>
|
||||||
</span>
|
|
||||||
<div
|
<div class="flex items-center no-wrap">
|
||||||
v-for="item in docs"
|
<q-icon name="mdi-email-outline" color="brand" class="q-pr-xs"/>
|
||||||
:key="item.id"
|
<a
|
||||||
class="text-caption"
|
href="mailto:info@tgcrew.ru"
|
||||||
|
style="text-decoration: none; color: inherit"
|
||||||
>
|
>
|
||||||
<span
|
info@tgcrew.ru
|
||||||
@click="router.push({ name: item.route })"
|
</a>
|
||||||
class="cursor-pointer"
|
|
||||||
style="text-decoration: underline; color: inherit"
|
|
||||||
>
|
|
||||||
{{ $t(item.translationKey) }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex column col-12 col-sm">
|
<div id="doc-block" class="text-grey q-py-sm">
|
||||||
<div class="text-grey q-pl-sm">
|
<div
|
||||||
{{ $t('footer__description_user_data') }}
|
v-for="item in docs"
|
||||||
|
:key="item.id"
|
||||||
|
class="text-caption"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
@click="router.push({ name: item.route })"
|
||||||
|
class="cursor-pointer"
|
||||||
|
style="color: inherit"
|
||||||
|
>
|
||||||
|
{{ $t(item.translationKey) }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<q-separator/>
|
||||||
|
|
||||||
|
<div class="column q-py-sm q-px-md" id="law-block">
|
||||||
|
<div class="flex justify-center text-caption text-grey">
|
||||||
|
<span class="q-pr-md">
|
||||||
|
<span class="text-no-wrap">
|
||||||
|
{{ $t('footer__contacts_ip') }}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="q-pr-md">
|
||||||
|
{{ $t('footer__contacts_ogrnip') + ' ' }}
|
||||||
|
<span class="text-no-wrap">
|
||||||
|
318774600262084
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="q-pr-md">
|
||||||
|
{{ $t('footer__contacts_inn') + ' ' }}
|
||||||
|
<span class="text-no-wrap">
|
||||||
|
366316608346
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span class="q-pr-md">
|
||||||
|
{{ $t('footer__contacts_pdn') + ' ' }}
|
||||||
|
<span class="text-no-wrap">
|
||||||
|
77-25-471585
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-grey-5 text-center text-caption">
|
||||||
|
{{ $t('footer__description_user_data') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|||||||
@@ -18,9 +18,9 @@
|
|||||||
object-position: center center;
|
object-position: center center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
filter: blur(2px) brightness(0.75);
|
filter: blur(2px) brightness(0.9);
|
||||||
"
|
"
|
||||||
@canplay="$event.target.playbackRate = 0.5"
|
@canplay="$event.target.playbackRate = 0.4"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class="column items-center no-wrap"
|
class="column items-center no-wrap"
|
||||||
@@ -33,8 +33,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="text-white text-center q-py-lg center-block"
|
class="text-white text-center q-py-lg center-block text-bold"
|
||||||
:class="$q.screen.lt.sm ? 'text-h4' : 'text-h3'"
|
:class="$q.screen.lt.sm ? 'text-h4' : 'text-h3'"
|
||||||
|
style="line-height: 1.5em;"
|
||||||
>
|
>
|
||||||
{{ $t('banner__slogan_body') }}
|
{{ $t('banner__slogan_body') }}
|
||||||
<span class="text-no-wrap" color="primary">
|
<span class="text-no-wrap" color="primary">
|
||||||
@@ -62,7 +63,7 @@
|
|||||||
<q-icon name="keyboard_arrow_right"/>
|
<q-icon name="keyboard_arrow_right"/>
|
||||||
</div>
|
</div>
|
||||||
</q-btn>
|
</q-btn>
|
||||||
<div class="text-white q-pt-sm edge-block justify-start text-grey-2">
|
<div class="text-white q-pt-sm edge-block justify-start text-grey-4">
|
||||||
{{ $t('banner__main_btn_description')}}
|
{{ $t('banner__main_btn_description')}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -12,12 +12,23 @@
|
|||||||
<div class="relative-position w60 q-pt-md">
|
<div class="relative-position w60 q-pt-md">
|
||||||
<div style="height: 60vh; position: relative;">
|
<div style="height: 60vh; position: relative;">
|
||||||
<iframe
|
<iframe
|
||||||
|
v-if="item.name === 'intro'"
|
||||||
:key="item.name"
|
:key="item.name"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
allow="autoplay; fullscreen; picture-in-picture; encrypted-media; gyroscope; accelerometer; clipboard-write; screen-wake-lock; fullscreen;"
|
allow="autoplay; fullscreen; picture-in-picture; encrypted-media; gyroscope; accelerometer; clipboard-write; screen-wake-lock; fullscreen;"
|
||||||
frameborder="0"
|
frameborder="0"
|
||||||
style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;"
|
style="position: absolute; width: 100%; height: 100%; top: 0; left: 0;"
|
||||||
/>
|
/>
|
||||||
|
<div v-else class="relative-position fit">
|
||||||
|
<q-skeleton
|
||||||
|
type="rect"
|
||||||
|
class="fit"
|
||||||
|
style="border-radius: var(--base-radius);"
|
||||||
|
/>
|
||||||
|
<div class="absolute-center text-h4 text-uppercase text-grey-8">
|
||||||
|
{{ $t('how_it_works__coming_soon') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -84,10 +84,10 @@
|
|||||||
]
|
]
|
||||||
|
|
||||||
const tariffs = [
|
const tariffs = [
|
||||||
{ id: 1, name: 'TEST', price: null, price_rub: null, chatsQty: 5 },
|
{ id: 1, name: 'TEST', price: 0, price_rub: 0, chatsQty: 5 },
|
||||||
{ id: 2, name: 'START', price: 1000, price_rub: 2000, chatsQty: 15 },
|
{ id: 2, name: 'START', price: 1000, price_rub: 2000, chatsQty: 15 },
|
||||||
{ id: 3, name: 'PRO', price: 5000, price_rub: 10000, chatsQty: 40 },
|
{ id: 3, name: 'PRO', price: 5000, price_rub: 10000, chatsQty: 40 },
|
||||||
{ id: 4, name: 'VIP', price: 12000, price_rub: 24000, chatsQty: null }
|
{ id: 4, name: 'VIP', price: 12000, price_rub: null, chatsQty: null }
|
||||||
]
|
]
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex column items-center bg-white rounded-card q-pa-md">
|
<div
|
||||||
|
class="flex column items-center bg-white rounded-card q-pa-md crew-card fit"
|
||||||
|
>
|
||||||
<div class="text-h5 text-primary text-bold">
|
<div class="text-h5 text-primary text-bold">
|
||||||
{{ name }}
|
{{ name }}
|
||||||
</div>
|
</div>
|
||||||
@@ -23,9 +25,23 @@
|
|||||||
</div>
|
</div>
|
||||||
<span class="text-caption">{{ $t('price__per_month') }}</span>
|
<span class="text-caption">{{ $t('price__per_month') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="text-bold text-h5">
|
<div v-else-if="price === 0" class="text-bold text-h5">
|
||||||
{{ $t('price__free_tax') }}
|
{{ $t('price__free_tax') }}
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
|
||||||
|
<div class="text-center q-pt-md">
|
||||||
|
<a
|
||||||
|
href="mailto:info@tgcrew.ru"
|
||||||
|
style="text-decoration: none; color: inherit"
|
||||||
|
>
|
||||||
|
{{ $t('price__request') }}<br>
|
||||||
|
info@tgcrew.ru
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center q-pt-md" style="min-height: 50px;">
|
<div class="flex items-center q-pt-md" style="min-height: 50px;">
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
<div
|
<div
|
||||||
class="fit row"
|
class="fit row"
|
||||||
>
|
>
|
||||||
<div class="col-sm-6 col-xs-12 q-pa-lg"
|
<div
|
||||||
|
class="flex col-sm-6 col-xs-12 q-pa-lg"
|
||||||
v-for="(item, idx) in problems"
|
v-for="(item, idx) in problems"
|
||||||
:key="idx"
|
:key="idx"
|
||||||
>
|
>
|
||||||
@@ -11,6 +12,7 @@
|
|||||||
:icon="item.icon"
|
:icon="item.icon"
|
||||||
:title="item.title"
|
:title="item.title"
|
||||||
:description="item.description"
|
:description="item.description"
|
||||||
|
class="bg-red"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="column items-center bg-white fit q-pa-lg rounded-card fit">
|
<div
|
||||||
|
class="crew-card column items-center q-pa-xl cursor-pointer fit"
|
||||||
|
>
|
||||||
<q-icon
|
<q-icon
|
||||||
:name="icon"
|
:name="icon"
|
||||||
size="xl"
|
size="xl"
|
||||||
color="primary"
|
color="primary"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="text-bold text-h5 text-center q-pt-md">
|
<div class="text-bold text-h5 text-center q-pt-md">
|
||||||
{{ $t(title ?? '') }}
|
{{ $t(title ?? '') }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-grey text-body1 text-center q-pt-sm text-wrap">
|
<div class="text-grey text-body1 text-center q-pt-sm text-wrap">
|
||||||
{{ $t(description ?? '') }}
|
{{ $t(description ?? '') }}
|
||||||
</div>
|
</div>
|
||||||
@@ -15,12 +19,14 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
icon: String,
|
icon: String,
|
||||||
title: String,
|
title: String,
|
||||||
description: String
|
description: String
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped lang="scss">
|
||||||
</style>
|
</style>
|
||||||
@@ -107,6 +107,24 @@ body, html, #q-app {
|
|||||||
border-radius: var(--base-radius);
|
border-radius: var(--base-radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.crew-card {
|
||||||
|
background: linear-gradient(
|
||||||
|
135deg,
|
||||||
|
rgba(255, 255, 255, 0.9) 0%,
|
||||||
|
rgba(255, 255, 255, 0.5) 100%
|
||||||
|
) !important;
|
||||||
|
backdrop-filter: blur(12px);
|
||||||
|
-webkit-backdrop-filter: blur(12px);
|
||||||
|
border-radius: 24px;
|
||||||
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||||
|
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||||
|
|
||||||
|
&.is-hovered {
|
||||||
|
transform: translateY(-1px);
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'myFont';
|
font-family: 'myFont';
|
||||||
src: url(./fonts/Inter-Regular.woff2);
|
src: url(./fonts/Inter-Regular.woff2);
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
<base-logo
|
<base-logo
|
||||||
ref="logo"
|
ref="logo"
|
||||||
class="text-h5"
|
class="text-h5"
|
||||||
|
:icon-color="isHeroScroll ? 'white' : 'primary'"
|
||||||
:text-color="isHeroScroll ? 'white' : 'primary'"
|
:text-color="isHeroScroll ? 'white' : 'primary'"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
|
|||||||