Compare commits
No commits in common. "3c4ec7aadac014ecadcb15f1fbfb18d6bc35161d" and "f487750473f6460a727dd5eeddcd6d88beb0e462" have entirely different histories.
3c4ec7aada
...
f487750473
4
.env
4
.env
@ -1,4 +1,2 @@
|
|||||||
VITE_BASE_URL=http://localhost:3000
|
VITE_BASE_URL=http://localhost:3000
|
||||||
VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
||||||
SMTP_USER=rentalservicekg@yandex.ru
|
|
||||||
SMTP_APP_PASSWORD=uljislsoihthciju
|
|
||||||
@ -13,9 +13,6 @@ COPY --from=build /app/.output/ ./
|
|||||||
ENV PORT=80
|
ENV PORT=80
|
||||||
ENV VITE_BASE_URL=https://rental.koptilnya.xyz
|
ENV VITE_BASE_URL=https://rental.koptilnya.xyz
|
||||||
ENV VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
ENV VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
||||||
ENV SMTP_USER=rentalservicekg@yandex.ru
|
|
||||||
ENV SMTP_APP_PASSWORD=uljislsoihthciju
|
|
||||||
|
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<UCard variant="subtle" class="w-full" :ui="{ root: 'max-w-[500px]' }">
|
<UCard variant="subtle" class="w-full" :ui="{ root: 'max-w-[500px]' }">
|
||||||
<form name="contacts" method="POST" @submit.prevent="onSubmit">
|
<form name="contacts" method="POST" netlify @submit.prevent="onSubmit">
|
||||||
|
<input type="hidden" name="form-name" value="contacts">
|
||||||
|
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
Как к вам обращаться
|
Как к вам обращаться
|
||||||
@ -199,16 +201,20 @@ const [service, serviceAttrs] = defineField('service')
|
|||||||
const [comment, commentAttrs] = defineField('comment')
|
const [comment, commentAttrs] = defineField('comment')
|
||||||
|
|
||||||
const onSubmit = handleSubmit(async (values) => {
|
const onSubmit = handleSubmit(async (values) => {
|
||||||
const res = await $fetch('/api/send_mail', {
|
const payload = new FormData()
|
||||||
method: 'POST',
|
payload.append('form-name', 'contacts')
|
||||||
body: values,
|
Object.entries(values).forEach(([key, value]) => {
|
||||||
|
payload.append(key, value as any)
|
||||||
})
|
})
|
||||||
|
|
||||||
if (res.ok) {
|
await fetch('/', {
|
||||||
toast.add({
|
method: 'POST',
|
||||||
title: 'Заявка успешно отправлена!',
|
body: payload,
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
toast.add({
|
||||||
|
title: 'Заявка успешно отправлена!',
|
||||||
|
})
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,31 +1,29 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<ClientOnly>
|
<UHeader
|
||||||
<UHeader
|
title="Rental"
|
||||||
title="Rental"
|
:toggle="false"
|
||||||
:toggle="false"
|
:ui="{
|
||||||
:ui="{
|
root: 'fixed bg-transparent w-full',
|
||||||
root: 'fixed bg-transparent w-full',
|
left: 'relative flex items-center w-full',
|
||||||
left: 'relative flex items-center w-full',
|
container: 'gap-0',
|
||||||
container: 'gap-0',
|
right: 'hidden',
|
||||||
right: 'hidden',
|
}"
|
||||||
}"
|
>
|
||||||
>
|
<template #left>
|
||||||
<template #left>
|
<div class="text-lg">
|
||||||
<div class="text-lg">
|
Rental
|
||||||
Rental
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="absolute left-1/2 transform -translate-x-1/2">
|
<div class="absolute left-1/2 transform -translate-x-1/2">
|
||||||
<UTabs v-model="activeTab" :size="isMobile ? 'md' : 'xl'" :content="false" :items="tabs" />
|
<UTabs v-model="activeTab" :size="isMobile ? 'md' : 'xl'" :content="false" :items="tabs" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ml-auto">
|
<div class="ml-auto">
|
||||||
<UButton href="#contacts" :size="isMobile ? 'md' : 'xl'" label="Связаться" />
|
<UButton href="#contacts" :size="isMobile ? 'md' : 'xl'" label="Связаться" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</UHeader>
|
</UHeader>
|
||||||
</ClientOnly>
|
|
||||||
|
|
||||||
<UMain>
|
<UMain>
|
||||||
<slot />
|
<slot />
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { process } from 'std-env'
|
|||||||
const { resolve } = createResolver(import.meta.url)
|
const { resolve } = createResolver(import.meta.url)
|
||||||
|
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
ssr: true,
|
ssr: false,
|
||||||
compatibilityDate: '2025-05-15',
|
compatibilityDate: '2025-05-15',
|
||||||
devtools: { enabled: true },
|
devtools: { enabled: true },
|
||||||
modules: [
|
modules: [
|
||||||
|
|||||||
@ -14,6 +14,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nuxt/content": "^3.7.1",
|
"@nuxt/content": "^3.7.1",
|
||||||
|
"gsap": "3.13",
|
||||||
"@nuxt/fonts": "0.11.4",
|
"@nuxt/fonts": "0.11.4",
|
||||||
"@nuxt/icon": "1.15.0",
|
"@nuxt/icon": "1.15.0",
|
||||||
"@nuxt/image": "1.10.0",
|
"@nuxt/image": "1.10.0",
|
||||||
@ -25,9 +26,7 @@
|
|||||||
"axios": "^1.12.2",
|
"axios": "^1.12.2",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"decimal.js": "^10.5.0",
|
"decimal.js": "^10.5.0",
|
||||||
"gsap": "3.13",
|
|
||||||
"maska": "^3.2.0",
|
"maska": "^3.2.0",
|
||||||
"nodemailer": "^7.0.11",
|
|
||||||
"nuxt": "^4.1.3",
|
"nuxt": "^4.1.3",
|
||||||
"swiper": "^12.0.2",
|
"swiper": "^12.0.2",
|
||||||
"typescript": "^5.6.3",
|
"typescript": "^5.6.3",
|
||||||
|
|||||||
@ -1,29 +0,0 @@
|
|||||||
import nodemailer from 'nodemailer'
|
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
|
||||||
const body = await readBody(event)
|
|
||||||
|
|
||||||
const transporter = nodemailer.createTransport({
|
|
||||||
host: 'smtp.yandex.ru',
|
|
||||||
port: 465,
|
|
||||||
secure: true,
|
|
||||||
auth: {
|
|
||||||
user: process.env.SMTP_USER,
|
|
||||||
pass: process.env.SMTP_APP_PASSWORD,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
await transporter.sendMail({
|
|
||||||
from: `"Rental Concierge" <${process.env.SMTP_USER}>`,
|
|
||||||
to: 'info@rental-concierge.com',
|
|
||||||
subject: 'Новая заявка',
|
|
||||||
html: `
|
|
||||||
<b>Имя:</b> ${body.name}<br>
|
|
||||||
<b>Телефон:</b> ${body.phone}<br>
|
|
||||||
<b>Услуга:</b> ${body.service}<br>
|
|
||||||
<b>Комментарий:</b> ${body.comment}
|
|
||||||
`,
|
|
||||||
})
|
|
||||||
|
|
||||||
return { ok: true }
|
|
||||||
})
|
|
||||||
@ -7068,11 +7068,6 @@ node-releases@^2.0.27:
|
|||||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
|
||||||
integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
|
integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
|
||||||
|
|
||||||
nodemailer@^7.0.11:
|
|
||||||
version "7.0.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-7.0.11.tgz#5f7b06afaec20073cff36bea92d1c7395cc3e512"
|
|
||||||
integrity sha512-gnXhNRE0FNhD7wPSCGhdNh46Hs6nm+uTyg+Kq0cZukNQiYdnCsoQjodNP9BQVG9XrcK/v6/MgpAPBUFyzh9pvw==
|
|
||||||
|
|
||||||
nopt@^9.0.0:
|
nopt@^9.0.0:
|
||||||
version "9.0.0"
|
version "9.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-9.0.0.tgz#6bff0836b2964d24508b6b41b5a9a49c4f4a1f96"
|
resolved "https://registry.yarnpkg.com/nopt/-/nopt-9.0.0.tgz#6bff0836b2964d24508b6b41b5a9a49c4f4a1f96"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user