v3 debug panel + more course header variants
This commit is contained in:
parent
4466c3ddb0
commit
0fadb006d7
@ -28,6 +28,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id="debug" class="debug-section hidden">
|
||||||
|
<div class="debug-box">
|
||||||
|
<h3>Распознанные столбцы:</h3>
|
||||||
|
<p id="debugColumns"></p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id="dashboard" class="dashboard hidden">
|
<section id="dashboard" class="dashboard hidden">
|
||||||
<div class="stats-row">
|
<div class="stats-row">
|
||||||
<div class="stat-card">
|
<div class="stat-card">
|
||||||
|
|||||||
16
script.js
16
script.js
@ -16,6 +16,20 @@ document.getElementById('excelFile').addEventListener('change', function(e) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sampleRow = jsonData[0] || {};
|
||||||
|
const rawCols = Object.keys(sampleRow);
|
||||||
|
const normalized = normalizeHeaders([sampleRow])[0];
|
||||||
|
const mapping = rawCols.map(k => {
|
||||||
|
const nk = k.toLowerCase().trim();
|
||||||
|
const mapped = headerMap[nk] || nk;
|
||||||
|
const val = normalized[mapped] || '(пусто)';
|
||||||
|
return `<b>${k}</b> → ${mapped} = "${val}"`;
|
||||||
|
}).join('<br>');
|
||||||
|
|
||||||
|
document.getElementById('debug').classList.remove('hidden');
|
||||||
|
document.getElementById('debugColumns').innerHTML =
|
||||||
|
`<strong>Оригинальные столбцы:</strong> ${rawCols.join(', ')}<br><br>${mapping}`;
|
||||||
|
|
||||||
processAndRender(jsonData);
|
processAndRender(jsonData);
|
||||||
};
|
};
|
||||||
reader.readAsArrayBuffer(file);
|
reader.readAsArrayBuffer(file);
|
||||||
@ -26,6 +40,8 @@ function normalizeHeaders(rows) {
|
|||||||
'фио': 'name', 'ф.и.о': 'name', 'сотрудник': 'name', 'employee': 'name', 'имя': 'name',
|
'фио': 'name', 'ф.и.о': 'name', 'сотрудник': 'name', 'employee': 'name', 'имя': 'name',
|
||||||
'дивизион': 'division', 'подразделение': 'division', 'отдел': 'division', 'division': 'division', 'department': 'division',
|
'дивизион': 'division', 'подразделение': 'division', 'отдел': 'division', 'division': 'division', 'department': 'division',
|
||||||
'курс': 'course', 'обучение': 'course', 'training': 'course', 'программа': 'course',
|
'курс': 'course', 'обучение': 'course', 'training': 'course', 'программа': 'course',
|
||||||
|
'тренинг': 'course', 'тренинг/курс': 'course', 'название тренинга': 'course', 'название курса': 'course',
|
||||||
|
'what': 'course', 'название': 'course', 'тема': 'course', 'дисциплина': 'course', 'module': 'course', 'модуль': 'course',
|
||||||
'статус': 'status', 'status': 'status', 'состояние': 'status',
|
'статус': 'status', 'status': 'status', 'состояние': 'status',
|
||||||
'оценка': 'score', 'ball': 'score', 'score': 'score', 'рейтинг': 'score', 'балл': 'score',
|
'оценка': 'score', 'ball': 'score', 'score': 'score', 'рейтинг': 'score', 'балл': 'score',
|
||||||
'тренер': 'trainer', 'trainer': 'coach', 'преподаватель': 'trainer', 'coach': 'trainer',
|
'тренер': 'trainer', 'trainer': 'coach', 'преподаватель': 'trainer', 'coach': 'trainer',
|
||||||
|
|||||||
28
style.css
28
style.css
@ -95,6 +95,34 @@ main {
|
|||||||
margin-top: 16px !important;
|
margin-top: 16px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.debug-section {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.debug-section.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.debug-box {
|
||||||
|
background: #1a2a3a;
|
||||||
|
border: 1px solid #ff9800;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 16px 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.debug-box h3 {
|
||||||
|
color: #ff9800;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.debug-box p {
|
||||||
|
color: #e0e0e0;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: monospace;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
.dashboard.hidden {
|
.dashboard.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user