hfcg
This commit is contained in:
committed by
GitVerse
parent
ae3227f127
commit
2d007d2359
@@ -66,7 +66,7 @@ async function loadRegistrations() {
|
||||
document.getElementById('recordsCount').innerText = `Найдено: ${currentRegistrations.length}`;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
document.getElementById('tableBody').innerHTML = '<tr><td colspan="9">Ошибка загрузки</td></tr>';
|
||||
document.getElementById('tableBody').innerHTML = '<td><td colspan="9">Ошибка загрузки</td></tr>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,19 +76,29 @@ function renderTable(registrations) {
|
||||
tbody.innerHTML = '<tr><td colspan="9">Нет записей</td></tr>';
|
||||
return;
|
||||
}
|
||||
tbody.innerHTML = registrations.map(reg => `
|
||||
<tr>
|
||||
<td>${escapeHtml(reg.parent_name)}</td>
|
||||
<td>${escapeHtml(reg.parent_phone)}</td>
|
||||
<td>${escapeHtml(reg.class_name)}</td>
|
||||
<td>${escapeHtml(reg.subject)}</td>
|
||||
<td>${escapeHtml(reg.teacher)}</td>
|
||||
<td>${escapeHtml(reg.topic || '—')}</td>
|
||||
<td>${escapeHtml(reg.date)}</td>
|
||||
<td>${escapeHtml(reg.time)}</td>
|
||||
<td>${new Date(reg.created_at).toLocaleString()}</td>
|
||||
</tr>
|
||||
`).join('');
|
||||
tbody.innerHTML = registrations.map(reg => {
|
||||
let dateStr = '', timeStr = '';
|
||||
if (reg.topic === 'Консультация' && reg.date && reg.time) {
|
||||
dateStr = escapeHtml(reg.date);
|
||||
timeStr = escapeHtml(reg.time);
|
||||
} else {
|
||||
dateStr = 'Согласно расписания';
|
||||
timeStr = '';
|
||||
}
|
||||
return `
|
||||
<tr>
|
||||
<td>${escapeHtml(reg.parent_name)}</td>
|
||||
<td>${escapeHtml(reg.parent_phone)}</td>
|
||||
<td>${escapeHtml(reg.class_name)}</td>
|
||||
<td>${escapeHtml(reg.subject)}</td>
|
||||
<td>${escapeHtml(reg.teacher)}</td>
|
||||
<td>${escapeHtml(reg.topic || '—')}</td>
|
||||
<td>${dateStr}</td>
|
||||
<td>${timeStr}</td>
|
||||
<td>${new Date(reg.created_at).toLocaleString()}</td>
|
||||
</tr>
|
||||
`;
|
||||
}).join('');
|
||||
}
|
||||
|
||||
function escapeHtml(str) {
|
||||
@@ -106,23 +116,31 @@ function exportToCSV() {
|
||||
alert('Нет данных для экспорта');
|
||||
return;
|
||||
}
|
||||
// Заголовки
|
||||
const headers = ['ФИО родителя', 'Телефон', 'Класс', 'Предмет', 'Учитель', 'Тема урока', 'Дата урока', 'Время', 'Дата регистрации'];
|
||||
const rows = currentRegistrations.map(reg => [
|
||||
reg.parent_name,
|
||||
reg.parent_phone,
|
||||
reg.class_name,
|
||||
reg.subject,
|
||||
reg.teacher,
|
||||
reg.topic || '',
|
||||
reg.date,
|
||||
reg.time,
|
||||
new Date(reg.created_at).toLocaleString()
|
||||
]);
|
||||
const rows = currentRegistrations.map(reg => {
|
||||
let dateVal = '', timeVal = '';
|
||||
if (reg.topic === 'Консультация' && reg.date && reg.time) {
|
||||
dateVal = reg.date;
|
||||
timeVal = reg.time;
|
||||
} else {
|
||||
dateVal = 'Согласно расписания';
|
||||
timeVal = '';
|
||||
}
|
||||
return [
|
||||
reg.parent_name,
|
||||
reg.parent_phone,
|
||||
reg.class_name,
|
||||
reg.subject,
|
||||
reg.teacher,
|
||||
reg.topic || '',
|
||||
dateVal,
|
||||
timeVal,
|
||||
new Date(reg.created_at).toLocaleString()
|
||||
];
|
||||
});
|
||||
const csvContent = [headers, ...rows]
|
||||
.map(row => row.map(cell => `"${String(cell).replace(/"/g, '""')}"`).join(';'))
|
||||
.join('\n');
|
||||
// Добавляем BOM для корректной поддержки кириллицы в Excel
|
||||
const blob = new Blob(['\uFEFF' + csvContent], { type: 'text/csv;charset=utf-8;' });
|
||||
const link = document.createElement('a');
|
||||
const url = URL.createObjectURL(blob);
|
||||
|
||||
Reference in New Issue
Block a user