123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- // Функция открытия всплывающего окна
- 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 = '<thead><tr>';
- // Заголовки таблицы (первая строка CSV)
- let headers = rows[0].split(',');
- headers.forEach(header => {
- tableContent += `<th>${header}</th>`;
- });
- tableContent += '</tr></thead><tbody>';
- // Данные таблицы (остальные строки CSV)
- for (let i = 1; i < rows.length; i++) {
- let rowData = rows[i].split(',');
- tableContent += '<tr>';
- rowData.forEach(cellData => {
- tableContent += `<td>${cellData}</td>`;
- });
- tableContent += '</tr>';
- }
- tableContent += '</tbody>';
- document.getElementById('appointmentsTable').innerHTML = tableContent;
- }
|