110 lines
4.6 KiB
Markdown
110 lines
4.6 KiB
Markdown
# Диагностика проблемы с отображением данных
|
||
|
||
## ✅ Текущий статус
|
||
|
||
В консоли браузера:
|
||
- ✅ Нет ошибок загрузки данных
|
||
- ⚠️ Предупреждения React Router (не критично)
|
||
- ⚠️ 404 для favicon.ico (не критично)
|
||
|
||
## 🔍 Проверка данных
|
||
|
||
### Шаг 1: Проверка через консоль браузера
|
||
|
||
Выполните в консоли браузера (не в терминале):
|
||
|
||
```javascript
|
||
// Проверка загрузки данных через API
|
||
fetch('/api/v1/aircraft', {
|
||
headers: { 'Authorization': 'Bearer dev' }
|
||
})
|
||
.then(r => {
|
||
console.log('✅ Status:', r.status);
|
||
if (!r.ok) throw new Error(`HTTP ${r.status}`);
|
||
return r.json();
|
||
})
|
||
.then(data => {
|
||
console.log('✅ Всего ВС:', data.length);
|
||
if (data.length > 0) {
|
||
const first = data[0];
|
||
console.log('✅ Первое ВС:', first.registration_number);
|
||
console.log('operator_name:', first.operator_name || '❌ ОТСУТСТВУЕТ');
|
||
console.log('serial_number:', first.serial_number || '❌ ОТСУТСТВУЕТ');
|
||
|
||
// Проверка всех ВС
|
||
const withOperator = data.filter(a => a.operator_name).length;
|
||
const withSerial = data.filter(a => a.serial_number).length;
|
||
console.log(`✅ ВС с operator_name: ${withOperator}/${data.length}`);
|
||
console.log(`✅ ВС с serial_number: ${withSerial}/${data.length}`);
|
||
|
||
// Показываем первые 3 ВС для проверки
|
||
console.log('Первые 3 ВС:');
|
||
data.slice(0, 3).forEach((a, i) => {
|
||
console.log(` ${i+1}. ${a.registration_number}: operator=${a.operator_name || 'НЕТ'}, serial=${a.serial_number || 'НЕТ'}`);
|
||
});
|
||
}
|
||
})
|
||
.catch(err => console.error('❌ Ошибка:', err));
|
||
```
|
||
|
||
### Шаг 2: Проверка Network tab
|
||
|
||
1. Откройте вкладку **Network** в DevTools
|
||
2. Обновите страницу (F5)
|
||
3. Найдите запрос `aircraft`
|
||
4. Проверьте:
|
||
- **Status**: должен быть `200 OK`
|
||
- **Response**: кликните на запрос → вкладка Response → должен быть JSON с данными
|
||
|
||
### Шаг 3: Проверка отображения в таблице
|
||
|
||
1. Перейдите на страницу "Воздушные суда"
|
||
2. Проверьте консоль - должны появиться логи (в dev режиме):
|
||
- `✅ Загружено ВС: 51`
|
||
- `✅ Первое ВС: {registration_number: "RA-12345", ...}`
|
||
3. Проверьте таблицу - должны отображаться:
|
||
- Колонка "Оператор" с названиями организаций
|
||
- Колонка "Серийный номер" с номерами
|
||
|
||
## 🐛 Если данные не отображаются
|
||
|
||
### Проблема 1: Данные приходят, но не отображаются в таблице
|
||
|
||
**Решение:**
|
||
1. Очистите кэш: `Cmd + Shift + R` (Mac) или `Ctrl + Shift + R` (Windows)
|
||
2. Проверьте консоль на ошибки рендеринга
|
||
3. Проверьте вкладку **Elements** - есть ли таблица с данными
|
||
|
||
### Проблема 2: Данные не приходят
|
||
|
||
**Решение:**
|
||
1. Проверьте Network tab - есть ли запрос к `/api/v1/aircraft`
|
||
2. Проверьте Status - должен быть `200 OK`
|
||
3. Проверьте Response - должен быть JSON массив
|
||
4. Проверьте Headers - должен быть `Authorization: Bearer dev`
|
||
|
||
### Проблема 3: Ошибка CORS
|
||
|
||
**Решение:**
|
||
1. Проверьте консоль на ошибки CORS
|
||
2. Проверьте настройки CORS в backend (должно быть `allow_origins=["*"]`)
|
||
|
||
## 📊 Ожидаемый результат
|
||
|
||
После выполнения кода в консоли должно быть:
|
||
- ✅ Status: 200
|
||
- ✅ Всего ВС: 51
|
||
- ✅ ВС с operator_name: 51/51
|
||
- ✅ ВС с serial_number: 51/51
|
||
- ✅ Первое ВС: RA-12345
|
||
- ✅ operator_name: Аэрофлот - Российские авиалинии
|
||
- ✅ serial_number: 08-001
|
||
|
||
## 🔧 Дополнительная диагностика
|
||
|
||
Если проблема сохраняется:
|
||
1. Выполните код проверки в консоли
|
||
2. Пришлите результат выполнения
|
||
3. Пришлите скриншот Network tab с запросом aircraft
|
||
4. Пришлите скриншот таблицы (если она отображается)
|