Compare commits
No commits in common. "3c4ec7aadac014ecadcb15f1fbfb18d6bc35161d" and "f487750473f6460a727dd5eeddcd6d88beb0e462" have entirely different histories.
3c4ec7aada
...
f487750473
2
.env
2
.env
@ -1,4 +1,2 @@
|
||||
VITE_BASE_URL=http://localhost:3000
|
||||
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 VITE_BASE_URL=https://rental.koptilnya.xyz
|
||||
ENV VITE_YANDEX_MAPS_KEY=13f4c06b-cb7e-4eeb-81f1-af52f12587b2
|
||||
ENV SMTP_USER=rentalservicekg@yandex.ru
|
||||
ENV SMTP_APP_PASSWORD=uljislsoihthciju
|
||||
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
|
||||
@ -43,7 +43,9 @@
|
||||
</div>
|
||||
|
||||
<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-2">
|
||||
Как к вам обращаться
|
||||
@ -199,16 +201,20 @@ const [service, serviceAttrs] = defineField('service')
|
||||
const [comment, commentAttrs] = defineField('comment')
|
||||
|
||||
const onSubmit = handleSubmit(async (values) => {
|
||||
const res = await $fetch('/api/send_mail', {
|
||||
method: 'POST',
|
||||
body: values,
|
||||
const payload = new FormData()
|
||||
payload.append('form-name', 'contacts')
|
||||
Object.entries(values).forEach(([key, value]) => {
|
||||
payload.append(key, value as any)
|
||||
})
|
||||
|
||||
if (res.ok) {
|
||||
toast.add({
|
||||
title: 'Заявка успешно отправлена!',
|
||||
})
|
||||
}
|
||||
await fetch('/', {
|
||||
method: 'POST',
|
||||
body: payload,
|
||||
})
|
||||
|
||||
toast.add({
|
||||
title: 'Заявка успешно отправлена!',
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@ -1,31 +1,29 @@
|
||||
<template>
|
||||
<div class="layout">
|
||||
<ClientOnly>
|
||||
<UHeader
|
||||
title="Rental"
|
||||
:toggle="false"
|
||||
:ui="{
|
||||
root: 'fixed bg-transparent w-full',
|
||||
left: 'relative flex items-center w-full',
|
||||
container: 'gap-0',
|
||||
right: 'hidden',
|
||||
}"
|
||||
>
|
||||
<template #left>
|
||||
<div class="text-lg">
|
||||
Rental
|
||||
</div>
|
||||
<UHeader
|
||||
title="Rental"
|
||||
:toggle="false"
|
||||
:ui="{
|
||||
root: 'fixed bg-transparent w-full',
|
||||
left: 'relative flex items-center w-full',
|
||||
container: 'gap-0',
|
||||
right: 'hidden',
|
||||
}"
|
||||
>
|
||||
<template #left>
|
||||
<div class="text-lg">
|
||||
Rental
|
||||
</div>
|
||||
|
||||
<div class="absolute left-1/2 transform -translate-x-1/2">
|
||||
<UTabs v-model="activeTab" :size="isMobile ? 'md' : 'xl'" :content="false" :items="tabs" />
|
||||
</div>
|
||||
<div class="absolute left-1/2 transform -translate-x-1/2">
|
||||
<UTabs v-model="activeTab" :size="isMobile ? 'md' : 'xl'" :content="false" :items="tabs" />
|
||||
</div>
|
||||
|
||||
<div class="ml-auto">
|
||||
<UButton href="#contacts" :size="isMobile ? 'md' : 'xl'" label="Связаться" />
|
||||
</div>
|
||||
</template>
|
||||
</UHeader>
|
||||
</ClientOnly>
|
||||
<div class="ml-auto">
|
||||
<UButton href="#contacts" :size="isMobile ? 'md' : 'xl'" label="Связаться" />
|
||||
</div>
|
||||
</template>
|
||||
</UHeader>
|
||||
|
||||
<UMain>
|
||||
<slot />
|
||||
|
||||
@ -5,7 +5,7 @@ import { process } from 'std-env'
|
||||
const { resolve } = createResolver(import.meta.url)
|
||||
|
||||
export default defineNuxtConfig({
|
||||
ssr: true,
|
||||
ssr: false,
|
||||
compatibilityDate: '2025-05-15',
|
||||
devtools: { enabled: true },
|
||||
modules: [
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@nuxt/content": "^3.7.1",
|
||||
"gsap": "3.13",
|
||||
"@nuxt/fonts": "0.11.4",
|
||||
"@nuxt/icon": "1.15.0",
|
||||
"@nuxt/image": "1.10.0",
|
||||
@ -25,9 +26,7 @@
|
||||
"axios": "^1.12.2",
|
||||
"dayjs": "^1.11.13",
|
||||
"decimal.js": "^10.5.0",
|
||||
"gsap": "3.13",
|
||||
"maska": "^3.2.0",
|
||||
"nodemailer": "^7.0.11",
|
||||
"nuxt": "^4.1.3",
|
||||
"swiper": "^12.0.2",
|
||||
"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"
|
||||
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:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-9.0.0.tgz#6bff0836b2964d24508b6b41b5a9a49c4f4a1f96"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user