feat: улучшена информативность ошибок при импорте CSV
- В сообщениях об ошибках теперь отображается содержимое проблемной строки - Добавлена специальная обработка ошибки Data truncated (обрезание данных) - Показывается конкретное значение поля, вызвавшего ошибку - Добавлена информация о типе и размере столбца при truncation - Улучшено форматирование вывода ошибок (JSON для больших данных) - Номер строки теперь соответствует номеру в исходном CSV файле (+2 для учета заголовка)
This commit is contained in:
@@ -791,13 +791,36 @@ document.getElementById('csvFileInput').addEventListener('change', async (e) =>
|
||||
rows: records
|
||||
});
|
||||
|
||||
if (result.errorMessages && result.errorMessages.length > 0) {
|
||||
const errorsToShow = result.errorMessages.slice(0, 10);
|
||||
const moreErrors = result.errorMessages.length > 10 ? `\n... и еще ${result.errorMessages.length - 10} ошибок` : '';
|
||||
alert(`Импортировано строк: ${result.inserted}\nОшибок: ${result.errors}\n\nПервые ошибки:\n${errorsToShow.join('\n')}${moreErrors}`);
|
||||
} else {
|
||||
alert(`✓ Импортировано строк: ${result.inserted}\nОшибок: ${result.errors}`);
|
||||
}
|
||||
if (result.errorMessages && result.errorMessages.length > 0) {
|
||||
// Показываем только первые 10 ошибок
|
||||
const errorsToShow = result.errorMessages.slice(0, 10);
|
||||
const moreErrors = result.errorMessages.length > 10
|
||||
? `\n... и еще ${result.errorMessages.length - 10} ошибок`
|
||||
: '';
|
||||
|
||||
// Создаем детальное сообщение
|
||||
let errorDetails = `Импортировано строк: ${result.inserted}\nОшибок: ${result.errors}\n\n`;
|
||||
errorDetails += 'ПЕРВЫЕ ОШИБКИ:\n';
|
||||
errorDetails += '═══════════════════════════════════════\n';
|
||||
errorDetails += errorsToShow.join('\n\n');
|
||||
errorDetails += moreErrors;
|
||||
|
||||
// Выводим в alert (для больших сообщений можно использовать модальное окно)
|
||||
alert(errorDetails);
|
||||
|
||||
// Также выводим в консоль для детального анализа
|
||||
console.group('📋 Детали импорта CSV');
|
||||
console.log(`✅ Импортировано: ${result.inserted}`);
|
||||
console.log(`❌ Ошибок: ${result.errors}`);
|
||||
console.log('\nВсе ошибки:');
|
||||
result.errorMessages.forEach((msg, idx) => {
|
||||
console.log(`${idx + 1}. ${msg}`);
|
||||
});
|
||||
console.groupEnd();
|
||||
} else {
|
||||
alert(`✓ Импортировано строк: ${result.inserted}\nОшибок: ${result.errors}`);
|
||||
}
|
||||
|
||||
|
||||
await table.replaceData();
|
||||
e.target.value = '';
|
||||
|
||||
Reference in New Issue
Block a user