clinical-dashboard/index.html

114 lines
4.9 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Дашборд кафедры — преподаватели</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="topbar">
<div class="topbar-inner">
<div class="brand">
<div class="brand-mark"></div>
<div>
<h1>Клиническая кафедра</h1>
<p class="brand-sub">Дашборд преподавателей</p>
</div>
</div>
<div class="topbar-actions">
<button class="btn ghost" id="btnFields">⚙ Настроить поля</button>
<button class="btn ghost" id="btnExport">⤓ Экспорт CSV</button>
<button class="btn ghost" id="btnImport">⤒ Импорт</button>
<button class="btn primary" id="btnAdd">+ Преподаватель</button>
</div>
</div>
</header>
<nav class="tabs">
<div class="container">
<button class="tab active" data-tab="teachers">Преподаватели</button>
<button class="tab" data-tab="reports">Отчёты</button>
</div>
</nav>
<main class="container">
<!-- ===== Вкладка: Преподаватели ===== -->
<section id="tab-teachers" class="tabpanel active">
<div class="stats-grid" id="statsGrid"></div>
<div class="toolbar">
<input type="search" id="search" class="input" placeholder="🔍 Поиск по ФИО, образованию, базе…">
<select id="filterDegree" class="input"></select>
<select id="filterCategory" class="input"></select>
<select id="filterBase" class="input"></select>
<span class="count-pill" id="countPill"></span>
</div>
<div class="table-wrap">
<table class="data-table" id="teacherTable">
<thead><tr id="tableHead"></tr></thead>
<tbody id="tableBody"></tbody>
</table>
<div class="empty-state" id="emptyState" hidden>
<p>Пока нет ни одного преподавателя.</p>
<button class="btn primary" onclick="addRow()">+ Добавить первого</button>
</div>
</div>
<p class="info-banner"> Данные сохраняются в этом браузере. Чтобы собрать анкеты нескольких преподавателей: каждый вводит свою строку и жмёт <b></b> в конце строки → отправляет файл вам → вы жмёте <b>⤒ Импорт</b> (данные добавятся к таблице).</p>
</section>
<!-- ===== Вкладка: Отчёты ===== -->
<section id="tab-reports" class="tabpanel">
<div class="report-controls">
<div class="report-fields">
<span class="rf-title">Параметры отчёта — отметьте несколько:</span>
<div class="rf-list" id="reportFieldsList"></div>
</div>
<button class="btn outline" id="btnReportCsv">⤓ Скачать отчёт (CSV)</button>
</div>
<div class="report-grid" id="reportGrid"></div>
<div class="crosstab-wrap" id="crosstabWrap"></div>
<div class="report-summary" id="reportSummary"></div>
</section>
</main>
<!-- ===== Модалка: настройка полей ===== -->
<div class="modal-overlay" id="fieldsModal" hidden>
<div class="modal">
<div class="modal-head">
<h2>Параметры преподавателя</h2>
<button class="icon-btn" onclick="closeFields()"></button>
</div>
<div class="modal-body">
<p class="hint">Базовые поля нельзя удалить. Ниже — дополнительные параметры, которые вы добавляете сами.</p>
<ul class="field-list" id="fieldList"></ul>
<div class="field-adder">
<h3>Добавить параметр</h3>
<div class="row">
<input type="text" id="newFieldLabel" class="input" placeholder="Название (напр. Стаж работы)">
<select id="newFieldType" class="input">
<option value="text">Текст</option>
<option value="date">Дата</option>
<option value="number">Число</option>
<option value="select">Выпадающий список</option>
<option value="textarea">Длинный текст</option>
<option value="checkbox">Да/Нет</option>
</select>
</div>
<input type="text" id="newFieldOptions" class="input" placeholder="Варианты через запятую (только для списка)" hidden>
<button class="btn primary" id="btnAddField">+ Добавить поле</button>
</div>
</div>
</div>
</div>
<input type="file" id="importFile" accept="application/json" hidden>
<div id="datalists" hidden></div>
<script src="app.js"></script>
</body>
</html>