* вывод данных из отчетов для ролей адм и зав * поправил ширину стобцов ввода * добавил календарь на страницу статистики * переделал календарь у заведующего на странице отчета * добавил и привязал метрики в статистику
47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
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)
|
||
}
|