init
Some checks failed
Deploy / build (push) Failing after 12s

This commit is contained in:
alsaze 2025-12-02 17:31:34 +03:00
parent fbc06718de
commit 130a88d4a3

View File

@ -43,41 +43,71 @@
</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 @submit.prevent="onSubmit">
<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">
Как к вам обращаться Как к вам обращаться
<UInput <UInput
id="name"
v-model="name"
v-bind="nameAttrs"
name="name"
placeholder="Имя" placeholder="Имя"
size="xl" size="xl"
class="w-full" class="w-full"
autofocus
/> />
<div v-if="errors?.name" style="color: #ff6467">
{{ errors?.name }}
</div>
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
Телефон Телефон
<UInput <UInput
id="phone"
v-model="phone"
v-maska="'+7 (###) ###-##-##'" v-maska="'+7 (###) ###-##-##'"
name="phone"
v-bind="phoneAttrs"
placeholder="+7 (___) __-__-__" placeholder="+7 (___) __-__-__"
size="xl" size="xl"
class="w-full" class="w-full"
/> />
<div v-if="errors?.phone" style="color: #ff6467">
{{ errors?.phone }}
</div>
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
Что вас интересует? Что вас интересует?
<div> <div>
<USelect <USelect
id="service"
v-model="service"
v-bind="serviceAttrs"
name="service"
:items="services" :items="services"
class="w-full" class="w-full"
size="xl" size="xl"
placeholder="выберите услугу" placeholder="выберите услугу"
/> />
<div v-if="errors?.service" style="color: #ff6467">
{{ errors?.service }}
</div>
</div> </div>
</div> </div>
<div class="flex flex-col gap-2"> <div class="flex flex-col gap-2">
Комментарий Комментарий
<UTextarea <UTextarea
id="comment"
v-model="comment"
v-bind="commentAttrs"
name="comment"
size="xl" size="xl"
placeholder="расскажите о ваших требованиях.." placeholder="расскажите о ваших требованиях.."
/> />
@ -88,16 +118,23 @@
size="xl" size="xl"
class="flex place-content-center w-full" class="flex place-content-center w-full"
label="Отправить заявку" label="Отправить заявку"
type="submit"
:disabled="errors && Object.keys(errors).length > 0"
/> />
</div> </div>
</div> </div>
</form>
</UCard> </UCard>
</div> </div>
</template> </template>
</UPageSection> </UPageSection>
<UButton label="pizda" @click="pizda()" />
</template> </template>
<script setup> <script setup lang="ts">
const toast = useToast()
const contacts = [ const contacts = [
{ {
label: 'Телефон', label: 'Телефон',
@ -124,6 +161,53 @@ const services = [
'продажа недвижимости', 'продажа недвижимости',
'аренда недвижимости', 'аренда недвижимости',
] ]
const { errors, handleSubmit, defineField } = useForm({
initialValues: {
name: '',
phone: '',
service: '',
comment: '',
},
validationSchema: {
name(value: string) {
if (!value)
return 'Укажите имя'
if (value.trim().length < 2)
return 'Минимум 2 символа'
if (/\d/.test(value)) {
return 'Укажите корректное имя'
}
return true
},
phone(value: string) {
if (!value)
return 'Укажите телефон'
const digits = (value || '').replace(/\D/g, '')
if (digits.length < 11)
return 'Введите корректный телефон'
return true
},
service(value: string) {
if (!value)
return 'Укажите услугу'
return true
},
},
})
const [name, nameAttrs] = defineField('name')
const [phone, phoneAttrs] = defineField('phone')
const [service, serviceAttrs] = defineField('service')
const [comment, commentAttrs] = defineField('comment')
const onSubmit = handleSubmit((values) => {
console.log('onSubmit', values)
toast.add({
title: 'Заявка успешно отправлена, мы скоро с вами свяжемся !',
})
})
</script> </script>
<style lang="scss"> <style lang="scss">