Большое обновление

This commit is contained in:
2025-01-02 14:42:15 +03:00
parent 4428052d78
commit 098eeb468e
14 changed files with 633 additions and 118 deletions

View File

@@ -0,0 +1,94 @@
export function onLoad() {
const statementField = document.querySelector('textarea[name="statement"]');
const generateButton = document.querySelector('button[id="gen"]');
const optionMapping = {
"Баклан": 1,
"Маг": 2,
"Спец": 3
};
function loadFromLocalStorage() {
const statement = localStorage.getItem('statement');
if (statement) {
statementField.value = statement;
}
}
generateButton.addEventListener('click', async () => {
hideLoadingModal(false);
console.log('Начата генерация заявления');
generateStatementModal.showModal();
const data = {
"phone": "+7" + localStorage.getItem('phoneNumber'),
"kurs": localStorage.getItem('kurs'),
"isFreeEducation": localStorage.getItem('paid') === "false",
"isOchno": false,
"speciality": optionMapping[localStorage.getItem('option')],
"reason": localStorage.getItem('statement')
}
try {
const response = await fetch("generateStatement", {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
if (response.ok) {
console.log('Заявление успешно сгенерировано');
location.href='otchislenie/result';
} else {
hideLoadingModal();
console.log('Ошибка при генерации заявления');
console.log(response);
}
} catch (error) {
hideLoadingModal();
console.log('Ошибка при генерации заявления');
console.log(response);
}
});
function hideLoadingModal(hide = true) {
var loadingAnim = document.getElementById('loadingAnim');
var failBlock = document.getElementById('failBlock');
if (hide) {
loadingAnim.classList.add('hidden');
failBlock.classList.remove('hidden');
} else {
loadingAnim.classList.remove('hidden');
failBlock.classList.add('hidden');
}
}
function validateField() {
// если первая буква в lowerCase, то превращаем ее в upperCase
if (statementField.value.length > 0 && statementField.value[0] === statementField.value[0].toLowerCase()) {
statementField.value = statementField.value[0].toUpperCase() + statementField.value.slice(1);
}
// удаляем пробелы если их больше одного подряд
statementField.value = statementField.value.replace(/\s{2,}/g, ' ');
localStorage.setItem('statement', statementField.value);
if (statementField.value.length > 50) {
// удаляем пробелы в начале и в конце строки
statementField.value = statementField.value.trim();
generateButton.classList.remove('btn-disabled');
} else
generateButton.classList.add('btn-disabled');
}
statementField.addEventListener('input', validateField);
loadFromLocalStorage();
validateField();
}