lk.zachem.info/resources/views/livewire/create-client-form.blade.php
2025-03-06 11:09:08 +08:00

193 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div>
<div class="w-100 text-center" wire:loading wire:target="save, resetData, back">
<div class="spinner-border " style="width: 4rem; height: 4rem;" role="status">
<span class="visually-hidden">Загрузка формы...</span>
</div>
</div>
<div class="w-100" wire:loading.remove wire:target="save, resetData, back">
@if ($status == self::NEW || $status == self::READY)
<div class="h4 pb-2 mb-4 fw-bold ">
<small>Добавить клиента</small>
</div>
<div class="row">
<div class="col">
<div class="form-floating mb-3">
<input wire:model.live="client.firstName" id="client.firstName" type="text"
class="form-control rounded-4 @error('client.firstName') is-invalid @enderror"
name="client.firstName" required autocomplete="client.firstName" placeholder="Имя">
<label for="firstName">Имя</label>
@error('client.firstName')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col">
<div class="form-floating mb-3">
<input wire:model.live="client.secondName" id="client.secondName" type="text"
class="form-control rounded-4 @error('client.secondName') is-invalid @enderror"
name="client.secondName" required autocomplete="client.secondName" placeholder="Фамилия">
<label for="secondName">Фамилия</label>
@error('client.secondName')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
</div>
<div class="row">
<div class="col">
<div class="form-floating mb-3">
<input wire:model.live="client.phone" id="client.phone" type="tel"
class="form-control rounded-4 @error('client.phone') is-invalid @enderror"
name="client.phone" required autocomplete="phone" placeholder="Телефон клиента">
<label for="client.phone">Телефон</label>
@error('client.phone')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col">
<div class="form-floating mb-3">
<input wire:model.live="client.city" disabled id="client.city" type="text"
class="form-control rounded-4 @error('client.city') is-invalid @enderror" name="client.city"
required autocomplete="city" placeholder="Город">
<label for="client.city">Город</label>
@error('client.city')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
</div>
<div class="form-floating mb-3">
<select wire:model.live="client.complexId"
class="form-select rounded-4 @error('client.complexId') is-invalid @enderror" id="client.complexId"
name="client.complexId" aria-label="Жилой комплекс">
<option selected></option>
@foreach ($complexes as $complex)
<option value="{{ $complex->id }}">
{{ $complex->name }}
</option>
@endforeach
</select>
<label for="client.complexId">Жилой комплекс</label>
@error('client.complexId')
<span class="invalid-feedback " role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@if($adminAccount)
<div class="form-floating mb-3">
<select wire:model.live="agent"
class="form-select rounded-4 @error('agent') is-invalid @enderror" id="agent"
name="agent" aria-label="Агент">
<option selected></option>
@foreach ($agents as $agent)
<option value="{{ $agent->id }}">
{{ $agent->user->name }}
</option>
@endforeach
</select>
<label for="client.complexId">Агент</label>
@error('agent')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@endif
@if ($status == self::READY && !$errors->any())
<div class="">
<button wire:click="save" class="btn btn-secondary rounded-4 fw-bold fs-5 w-100 py-3"
style="background-color: #20184d;">
Создать нового клиента
</button>
</div>
@else
<div class="">
<button disabled class="btn btn-secondary disabled rounded-4 fw-bold fs-5 w-100 py-3"
style="background-color: #20184d;">
Создать нового клиента
</button>
</div>
@endif
@endif
@if ($status == self::SUCCESS)
<div class="text-center fs-1">
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" fill="currentColor"
class="bi bi-check-circle-fill" viewBox="0 0 16 16">
<path
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z">
</path>
</svg>
</div>
<div class="text-center fs-3">Клиент добавлен</div>
<div class="text-center fs-5 ">Мы проверим его уникальность и направим Вам информацию в личном
кабинете</div>
<div class="text-center mt-3">
<button wire:click="resetData"
class="btn active border-white border-3 rounded">Продолжить</button>
</div>
@endif
@if ($status == self::ERROR)
<div class="text-center fs-1 mt-3">
<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" fill="currentColor"
class="bi bi-emoji-astonished" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" />
<path
d="M7 6.5C7 7.328 6.552 8 6 8s-1-.672-1-1.5S5.448 5 6 5s1 .672 1 1.5m4 0c0 .828-.448 1.5-1 1.5s-1-.672-1-1.5S9.448 5 10 5s1 .672 1 1.5M4.884 4.022a2 2 0 0 1 1.458-.048.5.5 0 0 0 .316-.948 3 3 0 0 0-2.167.077 3.1 3.1 0 0 0-.773.478q-.036.03-.07.064l-.002.001a.5.5 0 0 0 .707.708l-.001.002.001-.002a2 2 0 0 1 .122-.1 2 2 0 0 1 .41-.232Zm6.232 0a2 2 0 0 0-1.458-.048.5.5 0 1 1-.316-.948 3 3 0 0 1 2.168.077 3 3 0 0 1 .773.478l.07.064v.001a.5.5 0 0 1-.706.708l.002.002-.002-.002a2 2 0 0 0-.122-.1 2 2 0 0 0-.41-.232ZM8 10c-.998 0-1.747.623-2.247 1.246-.383.478.08 1.06.687.98q1.56-.202 3.12 0c.606.08 1.07-.502.687-.98C9.747 10.623 8.998 10 8 10" />
</svg>
</div>
<div class="text-center fs-3">Ой!</div>
<div class="text-center fs-5 ">Кажется, возникла проблема на нашей стороне, мы уже ее решаем.
Попробуйте зайти сюда позже.</div>
<div class="text-center my-3">
<button wire:click="back"
class="btn btn-lg active border-2 rounded">Повторить</button>
</div>
@endif
</div>
@script
<script>
function checkPhoneFormat()
{
alert(1);return;
var digits = phone.replace(/^8/, '7').replace(/[^\d]+/, '');
if (digits.length < 11) {
return phone;
}
// Домашний?
if (digits.substr(0, 2) === '74') {
// Для белгородских (и похожих) домашних возвращаем нормальное форматирование
// Для остальных пытаемся
return digits.substr(0, 3) === '747' ?
digits.replace(/^(\d)(\d+)(\d\d)(\d\d)(\d\d)$/, '+$1 ($2) $3$4$5') :
digits.replace(/^(\d)(\d+)(\d\d\d)(\d\d)(\d\d)$/, '+$1 ($2) $3$4$5');
}
// Для русских мобильных возвращаем нормальное форматирование
// Для остальных пытаемся
return digits.substr(0, 2) === '79' ?
digits.replace(/^(\d)(\d+)(\d\d\d)(\d\d)(\d\d)$/, '+$1 $2 $3$4$5') :
digits.replace(/^(\d)(\d+)(\d\d\d)(\d\d)(\d\d)$/, '+$1$2 $3$4$5');
}
</script>
@endscript
</div>