12 changed files with 862 additions and 26 deletions
@ -1,3 +0,0 @@
|
||||
# Default ignored files |
||||
/shelf/ |
||||
/workspace.xml |
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="Black"> |
||||
<option name="sdkName" value="Python 3.8 (tgflaskform)" /> |
||||
<option name="sdkName" value="Python 3.8 (tgFlaskFormPolimed)" /> |
||||
</component> |
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (tgFlaskForm)" project-jdk-type="Python SDK" /> |
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (tgFlaskFormPolimed)" project-jdk-type="Python SDK" /> |
||||
</project> |
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="ProjectModuleManager"> |
||||
<modules> |
||||
<module fileurl="file://$PROJECT_DIR$/.idea/tgflaskform.iml" filepath="$PROJECT_DIR$/.idea/tgflaskform.iml" /> |
||||
</modules> |
||||
</component> |
||||
</project> |
@ -1,10 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<module type="PYTHON_MODULE" version="4"> |
||||
<component name="NewModuleRootManager"> |
||||
<content url="file://$MODULE_DIR$"> |
||||
<excludeFolder url="file://$MODULE_DIR$/.venv" /> |
||||
</content> |
||||
<orderEntry type="jdk" jdkName="Python 3.8 (tgFlaskForm)" jdkType="Python SDK" /> |
||||
<orderEntry type="sourceFolder" forTests="false" /> |
||||
<module version="4"> |
||||
<component name="PyDocumentationSettings"> |
||||
<option name="format" value="PLAIN" /> |
||||
<option name="myDocStringFormat" value="Plain" /> |
||||
</component> |
||||
</module> |
@ -0,0 +1,102 @@
|
||||
include 2.0/application |
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/choices.js/public/assets/styles/choices.min.css"> |
||||
<script src="https://cdn.jsdelivr.net/npm/choices.js/public/assets/scripts/choices.min.js"></script> |
||||
|
||||
link(rel="stylesheet" href="/css/1_model_app.css?q="~randomString()) |
||||
link(rel="stylesheet" href="/css/1_model_icons.css?q="~randomString()) |
||||
script(type="text/javascript", src="/js/UFMS.js?q="~randomString()) |
||||
script(type="text/javascript", src="/js/2.0.dashboard.fns.js?q="~randomString()) |
||||
|
||||
.enterblock.custom-font.py-5 |
||||
.row.mx-auto(style='max-width: 448px; vertical-align: middle; padding-bottom: 120%;') |
||||
.col-12.my-md-auto.p-0.card.shadow.rounded-3(style='min-height: 500px;') |
||||
.card-body.px-0.pb-0 |
||||
h5.mx-4.fw-bold Заказать справку ФНС |
||||
input.tg_input#user_id(type="hidden", value=user_id) |
||||
|
||||
//-.my-3.mx-4.success-field.primary-field |
||||
label.form-label.m-0(for="taxpayer_fio") Выберите налогоплательщика |
||||
select.form-control.tg_input#taxpayer_fio(name="taxpayer_fio" required) |
||||
option(value="") -- Выберите налогоплательщика -- |
||||
each user in users |
||||
option(value=user) #{user} |
||||
|
||||
.my-3.mx-4.success-field.primary-field |
||||
label.form-label.m-0(for="patient_fio") Выберите пациента, на данный момент можно заказать справку только для налогоплательщика |
||||
select.form-control.tg_input#patient_fio(name="patient_fio" required) |
||||
option(value="") Выберите пациента |
||||
each user in users |
||||
option(value=user) #{user} |
||||
|
||||
.my-3.mx-4.primary-field |
||||
button.btn.btn-success.float-end.mb-3#form_submit(type="submit") |
||||
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true") |
||||
span Отправить |
||||
|
||||
|
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="fio")='Фамилия Имя Отчество' |
||||
input.form-control.tg_input#fio(type="text" name="fio") |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="birthdate")='Дата рождения' |
||||
input.form-control.tg_input#dob(type="date") |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="passport")='Серия и номер паспорта' |
||||
input.form-control.tg_input#passport |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="passport_date")='Дата выдачи паспорта' |
||||
input.form-control.tg_input#passport_date(type="date") |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="postal_code")='Код подразделения' |
||||
input.form-control.tg_input#postal_code |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="passport_issued_by")='Кем выдан паспорт' |
||||
select.form-select.tg_input#passport_issued_by(style="") |
||||
option(disabled, selected)="Кем выдан паспорт" |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="inn")='ИНН' |
||||
input.form-control.tg_input#inn(type="text" name="#inn") |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0(for="email")='Электронная почта' |
||||
input.form-control.tg_input#email(type="text" name="email" value=pct_email) |
||||
small="(Пожалуйста, проверьте правильность данных)" |
||||
|
||||
|
||||
.my-3.mx-4.success-field.verification(style="display: none;") |
||||
label.form-label.m-0 За какой год выдать данные |
||||
.checkbox-container |
||||
each year in [2025, 2024, 2023, 2022] |
||||
label.checkbox-item |
||||
input(type="checkbox" name="god_zapros" value=year) |
||||
span= year |
||||
button.btn.btn-primary#select-all Выбрать все |
||||
|
||||
|
||||
.my-3.mx-4.primary-field.verification(style="display: none;") |
||||
button.btn.btn-success.float-end.mb-3#code_submit |
||||
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true") |
||||
span="Заказать справку" |
||||
|
||||
.my-3.mx-4.primary-field.success_window(style="display: none;") |
||||
h3="Отлично!" |
||||
p="Справка заказана." |
@ -0,0 +1,521 @@
|
||||
function show_error(message){ |
||||
$('#error_alert').slideDown(500); |
||||
$('#success_alert').hide(); |
||||
$('#error_alert').delay(5000).slideUp(); |
||||
$('#alert_error_text').empty(); |
||||
if (message) |
||||
$('#alert_error_text').append(message) |
||||
} |
||||
|
||||
function show_success(message){ |
||||
$('#success_alert').slideDown(500); |
||||
$('#success_alert').delay(5000).slideUp(); |
||||
$('#alert_success_text').empty(); |
||||
if (message) |
||||
$('#alert_success_text').append(message); |
||||
} |
||||
|
||||
|
||||
|
||||
function validate_length(val, dest_len){ |
||||
if(val.length < dest_len){ |
||||
return false; |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){ |
||||
|
||||
$("#postal_code").change(function(){ |
||||
$('#passport_issued_by').empty(); |
||||
$('#passport_issued_by').append('<option disabled="" selected="">Кем выдан паспорт</option>') |
||||
for(i in UFMS_list[$(this).val()]) |
||||
{ |
||||
item = UFMS_list[$(this).val()][i]; |
||||
$('#passport_issued_by').append('<option>'+item+'</option>'); |
||||
} |
||||
// $('#passport_issued_by').select2("change");
|
||||
}); |
||||
|
||||
$("#select-all").on("click", function() { |
||||
$("input[name='god_zapros']").prop("checked", true); |
||||
}); |
||||
|
||||
const validateEmail = (email) => { |
||||
return email.match( |
||||
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ |
||||
); |
||||
}; |
||||
|
||||
const validate = () => { |
||||
const email = $('#email').val(); |
||||
if(validateEmail(email)){ |
||||
$('#email').parent().removeClass('errors-field').addClass('success-field'); |
||||
} else{ |
||||
$('#email').parent().removeClass('success-field').addClass('errors-field'); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
$('#email').on('input', validate); |
||||
|
||||
$('#email').on('input', function() { |
||||
let input = $(this).val(); |
||||
// Разрешаем только буквы, цифры, точки, дефисы и подчеркивания
|
||||
input = input.replace(/[^a-zA-Z0-9._@-]/g, ''); |
||||
// Обновляем поле ввода
|
||||
$(this).val(input); |
||||
}); |
||||
|
||||
$('body').append('<div id="error_alert" class="alert alert-danger" role="alert" style="position: fixed; top: 50px; left: 10%; right: 10%; z-index: 9999; display: none;">Ошибка<br><small id="alert_error_text"></small></div>'); |
||||
$('body').append('<div id="success_alert" class="alert alert-success" role="alert" style="position: fixed; top: 50px; left: 10%; right: 10%; z-index: 9999; display: none;">Успех<br><small id="alert_success_text"></small></div>'); |
||||
|
||||
$('#fio').on('input', function () { |
||||
let input = $(this).val(); |
||||
|
||||
// Убираем все лишние символы, кроме букв и пробелов
|
||||
input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, ''); |
||||
|
||||
// Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
|
||||
let formattedInput = input.split(' ').map(word => { |
||||
if (word.length > 0) { |
||||
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); |
||||
} |
||||
return ''; // Пустые слова не трогаем
|
||||
}).join(' '); // Объединяем обратно с пробелами
|
||||
|
||||
// Обновляем поле ввода с отформатированным текстом
|
||||
$(this).val(formattedInput); |
||||
|
||||
// Проверяем количество слов
|
||||
let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
|
||||
if (words.length < 3 || words.some(word => word.length < 2)) { |
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
|
||||
} else { |
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
|
||||
} |
||||
}); |
||||
|
||||
|
||||
|
||||
$('#tel').on('change', function() { |
||||
if($(this).val().length != 16){ |
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); |
||||
} else{ |
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); |
||||
} |
||||
}); |
||||
|
||||
|
||||
|
||||
// Проверка на дату рождения (не старше 80 лет)
|
||||
$('#dob').on('change', function() { |
||||
const dob = new Date($(this).val()); |
||||
const currentDate = new Date(); |
||||
const age = currentDate.getFullYear() - dob.getFullYear(); |
||||
|
||||
// Проверка на возраст (не старше 80 лет)
|
||||
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) { |
||||
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
|
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); |
||||
} else { |
||||
// Если возраст нормален, подсвечиваем ячейку как успешную
|
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); |
||||
} |
||||
}); |
||||
|
||||
$('#postal_code').on('input', function() { |
||||
let input = $(this).val(); |
||||
// Удаляем все символы, кроме цифр
|
||||
input = input.replace(/\D/g, ''); |
||||
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
|
||||
if (input.length > 3) { |
||||
input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2'); |
||||
} |
||||
// Ограничиваем длину до "000-000"
|
||||
if (input.length > 7) { |
||||
input = input.slice(0, 7); |
||||
} |
||||
// Обновляем поле ввода
|
||||
$(this).val(input); |
||||
|
||||
// Проверка на минимальную длину (не менее 11 символов)
|
||||
if (input.length < 7) { |
||||
// Если введено меньше цифр, показываем ошибку
|
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); |
||||
} else { |
||||
// Если введено достаточно цифр, показываем успех
|
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); |
||||
} |
||||
}); |
||||
|
||||
|
||||
$('#passport').on('input', function() { |
||||
let input = $(this).val(); |
||||
// Удаляем все символы, кроме цифр
|
||||
input = input.replace(/\D/g, ''); |
||||
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
|
||||
if (input.length > 4) { |
||||
input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2'); |
||||
} |
||||
// Ограничиваем длину до "000-000"
|
||||
if (input.length > 11) { |
||||
input = input.slice(0, 11); |
||||
} |
||||
// Обновляем поле ввода
|
||||
$(this).val(input); |
||||
|
||||
// Проверка на минимальную длину (не менее 11 символов)
|
||||
if (input.length < 11) { |
||||
// Если введено меньше цифр, показываем ошибку
|
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); |
||||
} else { |
||||
// Если введено достаточно цифр, показываем успех
|
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); |
||||
} |
||||
}); |
||||
|
||||
$("#inn").attr('maxlength','12'); |
||||
$('#inn').on('input', function() { |
||||
let input = $(this).val(); |
||||
// Убираем все символы, кроме цифр
|
||||
input = input.replace(/\D/g, ''); |
||||
// Ограничиваем длину до 12 символов
|
||||
if (input.length > 12) { |
||||
input = input.slice(0, 12); |
||||
} |
||||
// Обновляем значение в поле ввода
|
||||
$(this).val(input); |
||||
if (input.length < 12) { |
||||
// Если введено меньше цифр, показываем ошибку
|
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); |
||||
} else { |
||||
// Если введено достаточно цифр, показываем успех
|
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); |
||||
} |
||||
}); |
||||
|
||||
|
||||
$('#passport_date').on('change', function() { |
||||
const dob = new Date($(this).val()); |
||||
const currentDate = new Date(); |
||||
const age = currentDate.getFullYear() - dob.getFullYear(); |
||||
|
||||
// Проверка на возраст (не старше 80 лет)
|
||||
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) { |
||||
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
|
||||
$(this).parent().removeClass('success-field').addClass('errors-field'); |
||||
} else { |
||||
// Если возраст нормален, подсвечиваем ячейку как успешную
|
||||
$(this).parent().removeClass('errors-field').addClass('success-field'); |
||||
} |
||||
}); |
||||
|
||||
|
||||
|
||||
// function verification(){
|
||||
// $("#form_submit").children(".spinner-border").removeClass('d-none');
|
||||
// $("#form_submit").attr("disabled", true);
|
||||
// message = {}
|
||||
|
||||
|
||||
|
||||
// if(!(validate_length($('#fio').val(), 3)))
|
||||
// {
|
||||
// show_error('Введите ФИО', false);
|
||||
// $("#form_submit").children(".spinner-border").addClass('d-none');
|
||||
// $("#form_submit").removeAttr("disabled");
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// if(!(validate_length($('#tel').val(), 16)))
|
||||
// {
|
||||
// show_error('Введите Телефон', false);
|
||||
// $("#form_submit").children(".spinner-border").addClass('d-none');
|
||||
// $("#form_submit").removeAttr("disabled");
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
|
||||
// show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
|
||||
// $("#form_submit").children(".spinner-border").addClass('d-none');
|
||||
// $("#form_submit").removeAttr("disabled");
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// if ($('#dob').val().length !== 10 || new Date().getFullYear() < new Date($('#dob').val()).getFullYear()) {
|
||||
// show_error('Проверьте дату ввода, вы указали дату больше чем сегодняшняя дата', false);
|
||||
// $("#form_submit").children(".spinner-border").addClass('d-none');
|
||||
// $("#form_submit").removeAttr("disabled");
|
||||
// return;
|
||||
// }
|
||||
|
||||
function verification(){ |
||||
$("#form_submit").children(".spinner-border").removeClass('d-none'); |
||||
$("#form_submit").attr("disabled", true); |
||||
|
||||
let message = {}; |
||||
$('.tg_input').each(function() { |
||||
message[$(this).attr("id")] = $(this).val(); |
||||
}); |
||||
|
||||
show_success("Ваши данные отправлены на проверку."); |
||||
|
||||
$.ajax({ |
||||
type: "POST", |
||||
url: "/request_patient", |
||||
contentType: "application/json", // <-- Указываем JSON
|
||||
data: JSON.stringify(message), // <-- Преобразуем объект в JSON
|
||||
success: function(data) { |
||||
console.log(data); |
||||
if (data.success) { |
||||
$('.primary-field').hide(); |
||||
$('.verification').show(); |
||||
$('#fio').val(data.fio); |
||||
$('#fio').prop('readonly', true); |
||||
|
||||
$('#dob').val(data.js_formatted_birthdate); |
||||
$('#dob').prop('readonly', true); |
||||
|
||||
$('#passport').val(data.pct_doc_ser + ' ' + data.pct_doc_nom); |
||||
|
||||
$('#passport_date').val(data.formatted_passport_date); |
||||
|
||||
$('#postal_code').val(data.pct_doc_org_kod); |
||||
|
||||
for(i in UFMS_list[data.pct_doc_org_kod]) |
||||
{ |
||||
item = UFMS_list[data.pct_doc_org_kod][i]; |
||||
console.log(item.toLowerCase()) |
||||
console.log(data.pct_doc_org_name.toLowerCase()) |
||||
console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase()) |
||||
if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase()) |
||||
{ |
||||
$('#passport_issued_by').append('<option selected>'+item+'</option>'); |
||||
} |
||||
else{ |
||||
$('#passport_issued_by').append('<option>'+item+'</option>'); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$('#inn').val(data.pct_inn); |
||||
|
||||
$('#email').val(data.pct_email); |
||||
|
||||
} else { |
||||
show_error(data.error); |
||||
} |
||||
$("#form_submit").children(".spinner-border").addClass('d-none'); |
||||
$("#form_submit").removeAttr("disabled"); |
||||
}, |
||||
error: function(jqXHR) { |
||||
show_error('Что-то пошло не так'); |
||||
$("#form_submit").children(".spinner-border").addClass('d-none'); |
||||
$("#form_submit").removeAttr("disabled"); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
|
||||
$("#form_submit").click(function(){ |
||||
// show_success("Hello <br> world");
|
||||
verification(); |
||||
}); |
||||
|
||||
$("#code_submit").click(function(){ |
||||
|
||||
$(this).children(".spinner-border").removeClass('d-none'); |
||||
$(this).attr("disabled", true); |
||||
message = {} |
||||
|
||||
|
||||
|
||||
if(!(validate_length($('#fio').val(), 3))) |
||||
{ |
||||
show_error('Введите ФИО', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if(!(validateEmail($('#email').val()))){ |
||||
show_error('Введите корректный Email', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) { |
||||
show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if ($('#passport_date').val().length !== 10 || (new Date($('#passport_date').val()).getFullYear() - new Date($('#dob').val()).getFullYear()) < 13) { |
||||
show_error('Проверьте дату выдачи паспорта, паспорт РФ может быть выдан с 14 лет', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if(!(validate_length($('#postal_code').val(), 7))) |
||||
{ |
||||
show_error('Введите код подразделения', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if(!(validate_length($('#passport').val(), 11))) |
||||
{ |
||||
show_error('Введите серию и номер паспорта', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if($('#passport_issued_by').val() == null){ |
||||
show_error("Выберите кем выдан паспорт"); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
if(!(validate_length($('#inn').val(), 12))) |
||||
{ |
||||
show_error('Введите ИНН', false); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
return; |
||||
} |
||||
|
||||
// Добавление значений с чекбоксов (годы)
|
||||
let selectedYears = []; |
||||
$("input[name='god_zapros']:checked").each(function() { |
||||
selectedYears.push($(this).val()); |
||||
}); |
||||
|
||||
if (selectedYears.length > 0) { |
||||
message['selected_years'] = selectedYears; |
||||
} |
||||
|
||||
$.each($('.tg_input'), function(e) { |
||||
message[$(this).prop("id")] = $(this).val(); |
||||
}); |
||||
|
||||
|
||||
$.ajax({ |
||||
type: "post", |
||||
url: "/sending_patient", |
||||
processData: false, // tell jQuery not to process the data
|
||||
contentType: false, // tell jQuery not to set contentType
|
||||
async: true, |
||||
data: JSON.stringify(message), |
||||
success: (data) => { |
||||
if(data.success==true){ |
||||
$('.primary-field').hide(); |
||||
$('.verification').hide(); |
||||
$('.success_window').show(); |
||||
} |
||||
else{ |
||||
show_error(data.error); |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
} |
||||
}, |
||||
error:function (jqXHR, exception) { |
||||
$(this).children(".spinner-border").addClass('d-none'); |
||||
$(this).removeAttr("disabled"); |
||||
show_error('Что-то пошло не так', false) |
||||
} |
||||
}); |
||||
}); |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// $('.alert-placeholder').mouseenter(function(){
|
||||
// var popOverSettings = {
|
||||
// placement: 'bottom',
|
||||
// content: $(this).data('content'),
|
||||
// trigger: 'hover',
|
||||
// container: this,
|
||||
// offset: '0'
|
||||
// }
|
||||
// $(this).popover(popOverSettings);
|
||||
// $(this).popover('show');
|
||||
// $('.popover').addClass('alert-popover');
|
||||
// });
|
||||
// $('.alert-placeholder').mouseleave(function(){
|
||||
// $('.alert-popover').remove()
|
||||
// });
|
||||
|
||||
|
||||
|
||||
let phoneStr = ''; |
||||
let formattedStr = ''; |
||||
let deleteMode = false; |
||||
const phoneInput = document.querySelector('#tel'); |
||||
const defaultFormat = '+7({0}{1}{2}){3}{4}{5}-{6}{7}-{8}{9}'; |
||||
// phoneInput.value = formatPhoneString();
|
||||
|
||||
// phoneInput.addEventListener('keydown', (e) => {
|
||||
// if (e.key === 'Backspace')
|
||||
// deleteMode = true;
|
||||
// else
|
||||
// deleteMode = false;
|
||||
// });
|
||||
//
|
||||
// phoneInput.addEventListener('input', (e) => {
|
||||
// if (deleteMode) {
|
||||
// phoneInput.value = phoneInput.value;
|
||||
// phoneStr = parsePhoneString(phoneInput.value.replace("+7", "").replace("-", ""));
|
||||
// } else {
|
||||
// if (e.inputType == 'insertText' && !isNaN(parseInt(e.data))) {
|
||||
// if (phoneStr.length <= 9)
|
||||
// phoneStr += e.data;
|
||||
// }
|
||||
// phoneInput.value = formatPhoneString();
|
||||
// }
|
||||
// });
|
||||
|
||||
function formatPhoneString() { |
||||
let strArr = phoneStr.split(''); |
||||
formattedStr = defaultFormat; |
||||
for (let i = 0; i < strArr.length; i++) { |
||||
formattedStr = formattedStr.replace(`{${i}}`, strArr[i]); |
||||
} |
||||
|
||||
if (formattedStr.indexOf('{') === -1) |
||||
{ |
||||
return formattedStr; |
||||
} |
||||
else |
||||
{ |
||||
return formattedStr.substring(0, formattedStr.indexOf('{')); |
||||
} |
||||
} |
||||
|
||||
function parsePhoneString(str) { |
||||
return str.replace(' ', '').replace('(', '').replace(')', '').replace('-', ''); |
||||
} |
||||
}); |
||||
|
||||
|
Loading…
Reference in new issue