// Функция открытия всплывающего окна function showPopup(popupId) { document.getElementById(popupId).style.display = "block"; } // Функция закрытия всплывающего окна function closePopup(popupId) { document.getElementById(popupId).style.display = "none"; } // Обработчик события submit для формы document.getElementById("loginForm").addEventListener("submit", function(event) { event.preventDefault(); // Предотвращаем стандартную отправку формы // Получаем значения из полей формы const name = document.getElementById("name").value; const phone = document.getElementById("phone").value; const email = document.getElementById("email").value; const date = document.getElementById("date").value; const time = document.getElementById("time").value; const comment = document.getElementById("comment").value; // Проверяем, заполнены ли все поля формы if (name === "" || phone === "" || email === "" || date === "" || time === "" || comment === "") { // Если поля не заполнены, показываем ошибку document.getElementById("errorMessage").textContent = "Пожалуйста, заполните все поля формы."; showPopup("errorPopup"); return; } // Проверяем, не является ли дата и время прошедшими const currentDate = new Date(); const selectedDate = new Date(date + "T" + time); if (selectedDate < currentDate) { // Если дата и время прошедшие, показываем ошибку document.getElementById("errorMessage").textContent = "Выбрана прошедшая дата и/или время. Пожалуйста, выберите дату и время в будущем."; showPopup("errorPopup"); return; } // Сохраняем данные в localStorage saveRecordToLocalStorage(name, phone, email, date, time, comment); // Показываем всплывающее окно с успешным сообщением showPopup("successPopup"); loginForm.reset(); // Очистка формы }); // Сохраняем данные в localStorage function saveRecordToLocalStorage(name, phone, email, date, time, comment) { let records = localStorage.getItem('priem'); if (!records) { records = []; } else { records = JSON.parse(records); } records.push({ name, phone, email, date, time, comment }); localStorage.setItem('priem', JSON.stringify(records)); } // Функция для скачивания CSV-файла function tableToCSV() { const records = JSON.parse(localStorage.getItem('priem')); if (!records) { alert('Нет записей для сохранения!'); return; } // Создаем объект Blob с типом данных "text/csv" и кодировкой "windows-1251" const blob = new Blob([ "\uFEFF" + // BOM для корректного отображения кириллицы в Excel "ФИО,Номер телефона,Email,Дата,Время,Комментарий\n" + records.map(record => `${record.name},${record.phone},${record.email},${record.date},${record.time},${record.comment}`).join('\n') ], { type: 'text/csv;charset=windows-1251;' }); // Создаем URL-адрес для объекта Blob const url = window.URL.createObjectURL(blob); // Создаем ссылку для скачивания файла const link = document.createElement("a"); link.setAttribute("href", url); link.setAttribute("download", "прием.csv"); // Добавляем ссылку на страницу, кликаем по ней и удаляем document.body.appendChild(link); link.click(); document.body.removeChild(link); } // Чтение данных из csv файла document.getElementById('csvFileInput').addEventListener('change', function() { if (this.files && this.files[0]) { let reader = new FileReader(); reader.onload = function(e) { let csvData = e.target.result; createTableFromCSV(csvData); }; reader.readAsText(this.files[0]); } }); function createTableFromCSV(csvData) { let rows = csvData.split('\n'); let tableContent = ''; // Заголовки таблицы (первая строка CSV) let headers = rows[0].split(','); headers.forEach(header => { tableContent += `${header}`; }); tableContent += ''; // Данные таблицы (остальные строки CSV) for (let i = 1; i < rows.length; i++) { let rowData = rows[i].split(','); tableContent += ''; rowData.forEach(cellData => { tableContent += `${cellData}`; }); tableContent += ''; } tableContent += ''; document.getElementById('appointmentsTable').innerHTML = tableContent; }