dev #26
|
@ -174,6 +174,9 @@ label {
|
||||||
input {
|
input {
|
||||||
@apply bg-neutral-200 border border-gray-300 text-gray-900 rounded focus:ring-blue-500 focus:border-blue-500 text-lg p-2.5 disabled:cursor-not-allowed;
|
@apply bg-neutral-200 border border-gray-300 text-gray-900 rounded focus:ring-blue-500 focus:border-blue-500 text-lg p-2.5 disabled:cursor-not-allowed;
|
||||||
}
|
}
|
||||||
|
input[type=checkbox] {
|
||||||
|
@apply w-4 h-4;
|
||||||
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
@apply block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 max-w-full min-h-10 max-h-40;
|
@apply block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 focus:ring-blue-500 focus:border-blue-500 max-w-full min-h-10 max-h-40;
|
||||||
|
|
|
@ -178,6 +178,14 @@ const modalStatus = {
|
||||||
'success': ["mdi:check-circle-outline", 'Данные отправлены'],
|
'success': ["mdi:check-circle-outline", 'Данные отправлены'],
|
||||||
'error': ["mdi:close-circle-outline", 'Ошибка отправки'],
|
'error': ["mdi:close-circle-outline", 'Ошибка отправки'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const policy = () => {
|
||||||
|
navigateTo('/policy', {
|
||||||
|
open: {
|
||||||
|
target: "_blank",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div v-if="isModalOpen" class="modal-backdrop" @click.self="toggleModal">
|
<div v-if="isModalOpen" class="modal-backdrop" @click.self="toggleModal">
|
||||||
|
@ -199,6 +207,11 @@ const modalStatus = {
|
||||||
@keypress="validateInput" @keyup="validate" />
|
@keypress="validateInput" @keyup="validate" />
|
||||||
<input type="e-mail" placeholder="Ваш e-mail" v-model="modal_data.email" @keypress="validateInput"
|
<input type="e-mail" placeholder="Ваш e-mail" v-model="modal_data.email" @keypress="validateInput"
|
||||||
@keyup="validate" />
|
@keyup="validate" />
|
||||||
|
<div class="flex gap-4 justify-between items-center">
|
||||||
|
<input type="checkbox" id="policy" />
|
||||||
|
<label for="policy">Соглашение... <NuxtLink to="policy" @click="policy">cсылка</NuxtLink>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
{{ total_txt && total_txt.total[0] }}
|
{{ total_txt && total_txt.total[0] }}
|
||||||
<div class="flex gap-4">
|
<div class="flex gap-4">
|
||||||
<button class="not-prose" :disabled="modal_form.disabled" type="submit">Отправить</button>
|
<button class="not-prose" :disabled="modal_form.disabled" type="submit">Отправить</button>
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
const config = useRuntimeConfig()
|
||||||
|
const imgBase = config.public.imgBase
|
||||||
|
|
||||||
|
import { apiFetch } from '~/utils/apiFetch';
|
||||||
|
import { marked } from 'marked';
|
||||||
|
|
||||||
|
import og_img from '/og_img.png'
|
||||||
|
|
||||||
|
const { data: seoData } = await apiFetch<ApiKpType>(`kp/1`)
|
||||||
|
useSeoMeta({
|
||||||
|
title: seoData.value?.title,
|
||||||
|
ogTitle: seoData.value?.title,
|
||||||
|
description: seoData.value?.content,
|
||||||
|
ogDescription: seoData.value?.content,
|
||||||
|
ogImage: config.public.baseUrl + og_img,
|
||||||
|
// twitterCard: 'summary_large_image',
|
||||||
|
})
|
||||||
|
|
||||||
|
const { data: policyData } = await apiFetch<ApiPagesType[]>(`pages/1`)
|
||||||
|
const policyText = computed(() => {
|
||||||
|
let c = policyData?.value.content || ''
|
||||||
|
return marked.parse(c)
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="siteblock bg-white">
|
||||||
|
<div class="container">
|
||||||
|
<h1 class="siteblock-title">{{ policyData.title }}</h1>
|
||||||
|
<div class="col-span-full prose max-w-full" v-html="policyText" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="siteblock siteblock_calc bg-white">
|
||||||
|
<Suspense>
|
||||||
|
<CalcModels />
|
||||||
|
</Suspense>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
Loading…
Reference in New Issue