* блокировка изменения отчета для врача

* вывод данных из отчетов для ролей адм и зав
* поправил ширину стобцов ввода
* добавил календарь на страницу статистики
* переделал календарь у заведующего на странице отчета
* добавил и привязал метрики в статистику
This commit is contained in:
brusnitsyn
2026-02-03 17:03:37 +09:00
parent 2805e5e4bc
commit 9ee33bc517
20 changed files with 889 additions and 159 deletions

View File

@@ -0,0 +1,46 @@
import { format } from 'date-fns'
import { ru } from 'date-fns/locale'
/**
* Делает первую букву строки заглавной
*/
const capitalizeFirst = (str) => {
if (!str) return ''
return str.charAt(0).toUpperCase() + str.slice(1)
}
/**
* Форматирует дату по-русски: "Вторник, 3 февраля 2026 г."
*/
export const formatRussianDate = (date) => {
if (!date) return ''
const formatted = format(new Date(date), 'EEEE, d MMMM yyyy г.', { locale: ru })
return capitalizeFirst(formatted)
}
/**
* Форматирует диапазон дат по-русски:
* "С понедельника, 2 февраля 2026 г. по вторник, 3 февраля 2026 г."
*/
export const formatRussianDateRange = (dateRange) => {
if (!dateRange || !Array.isArray(dateRange) || dateRange.length < 2) {
return ''
}
const [startDate, endDate] = dateRange
if (!startDate || !endDate) return ''
const formattedStart = format(new Date(startDate), 'd MMMM yyyy г.', { locale: ru })
const formattedEnd = format(new Date(endDate), 'd MMMM yyyy г.', { locale: ru })
return `С ${formattedStart.toLowerCase()} по ${formattedEnd.toLowerCase()}`
}
/**
* Для совместимости со старым кодом
*/
export const formatDateWithCapital = (date) => {
return formatRussianDate(date)
}