Большое обновление
This commit is contained in:
94
src/Otchinslator/Components/Pages/Statement.razor.js
Normal file
94
src/Otchinslator/Components/Pages/Statement.razor.js
Normal 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();
|
||||
}
|
||||
Reference in New Issue
Block a user