Рабочая активность сотрудников
загрузка, простои, перегруз и дисциплина процессовИндекс активности
@@ -370,6 +487,7 @@ function renderManager(data, policyExplain) { } function renderDepartments(report) { + report = periodReport(report); const departments = report?.workforce?.department_comparison || []; const owners = report?.workforce?.owner_comparison || []; const insights = report?.workforce?.insights || []; @@ -381,6 +499,7 @@ function renderDepartments(report) {Рейтинг подразделений
@@ -410,6 +529,7 @@ function renderEmployees(data, policyExplain) {Сотрудники пока не найдены.
`}Обновление периода...
`; + refresh().catch(showError); +}); + document.addEventListener("click", event => { const button = event.target.closest("[data-incident-action]"); if (!button) return; @@ -926,12 +1056,13 @@ async function verifyReadinessBundle(button) { async function anonymizeReport(button) { button.disabled = true; const data = await loadJson("/reports?anonymize=1"); + state.reports = data; document.getElementById("content").innerHTML = renderReports(data); } async function exportMarkdown() { const data = state.reports || await loadJson("/reports"); - const markdown = displayText(data.markdown || ""); + const markdown = displayText(periodReport(data)?.markdown || data.markdown || ""); const blob = new Blob([markdown], { type: "text/markdown;charset=utf-8" }); const url = URL.createObjectURL(blob); const link = document.createElement("a"); diff --git a/docs/PORTAL_WORKCABINET_UI_2026-06-04_RU.md b/docs/PORTAL_WORKCABINET_UI_2026-06-04_RU.md index 078e7ee..d4fbfe1 100644 --- a/docs/PORTAL_WORKCABINET_UI_2026-06-04_RU.md +++ b/docs/PORTAL_WORKCABINET_UI_2026-06-04_RU.md @@ -27,6 +27,11 @@ - экран подразделений: рейтинг групп, ответственные, просадки и отклонения; - экран сотрудников: карточка сотрудника, активность, сессии, плановое время, последнее событие; - экран сетевого периметра: режим наблюдения без управления сетевыми правилами. +- Селектор периода подключен к интерфейсу: + - `Сегодня` показывает текущий дневной срез; + - `Неделя` и `Месяц` пересчитывают управленческие карточки по накопленной истории тренда; + - если истории недостаточно, портал явно показывает `накоплено N/M дней`; + - детальные дневные экраны маркируются плашкой `дневная детализация`. - Первый экран показывает executive summary: - индекс активности за день; - активные сотрудники; @@ -43,7 +48,7 @@ ## Важные ограничения -- Фильтры периода, подразделения и ответственного пока являются UI-контролами. Backend-фильтрация должна добавляться отдельным изменением, чтобы не искажать текущие данные. +- Фильтр периода влияет на управленческие представления портала. Фильтры подразделения и ответственного пока являются UI-контролами; backend-фильтрация должна добавляться отдельным изменением. - `Индекс активности` остается расчетной метрикой: активное время / плановое время. Взвешенный показатель объясняется отдельно через правила ролей и приложений. - Разделы рисков и расследований показывают риск-срез и материалы проверки. Это не заявляется как сертифицированная СЗИ. - Раздел сетевого периметра работает как витрина наблюдения. Он не меняет правила сети и не выполняет блокировки. @@ -85,3 +90,4 @@ Playwright smoke: - JS-ошибок нет; - API-ответов с кодом 400+ нет; - раздел рисков включает темную тему. +- смена периода `Сегодня` -> `Неделя` меняет содержимое страницы и показывает плашку периода.