Добавил поддержку компонента даты в отчетах

This commit is contained in:
brusnitsyn
2026-06-22 16:55:58 +09:00
parent a47c2ad9b1
commit 372fc34493
2 changed files with 13 additions and 4 deletions

View File

@@ -23,6 +23,12 @@ const props = defineProps({
hint: { hint: {
type: Boolean, type: Boolean,
default: false default: false
},
// Локальный режим: не делать router.reload при смене даты — только обновлять модель
// (для конструктора отчётов, где период применяется по кнопке «Сформировать»).
local: {
type: Boolean,
default: false
} }
}) })
@@ -174,7 +180,7 @@ const shortcuts = {
const handleDateUpdate = (value) => { const handleDateUpdate = (value) => {
if (!value || !Array.isArray(value) || !value[0] || !value[1]) return if (!value || !Array.isArray(value) || !value[0] || !value[1]) return
isLoading.value = true if (!props.local) isLoading.value = true
// Нормализуем в мс-таймстемпы: шорткаты/быстрый выбор отдают Date, календарь — число. // Нормализуем в мс-таймстемпы: шорткаты/быстрый выбор отдают Date, календарь — число.
// Иначе Date уходит в URL как ISO (...Z), а число остаётся числом → рассинхрон startAt/endAt. // Иначе Date уходит в URL как ISO (...Z), а число остаётся числом → рассинхрон startAt/endAt.
@@ -189,6 +195,9 @@ const handleDateUpdate = (value) => {
modelValue.value = finalValue modelValue.value = finalValue
// Локальный режим — без навигации, период применит кнопка «Сформировать отчёт»
if (props.local) return
// Дебаунс для предотвращения двойной отправки // Дебаунс для предотвращения двойной отправки
setTimeout(() => { setTimeout(() => {
if (JSON.stringify(modelValue.value) === JSON.stringify(finalValue)) { if (JSON.stringify(modelValue.value) === JSON.stringify(finalValue)) {

View File

@@ -76,6 +76,9 @@ const onSelectRole = (roleId) => {
<!-- Аватар + имя --> <!-- Аватар + имя -->
<NFlex align="center" :size="8" :wrap="false"> <NFlex align="center" :size="8" :wrap="false">
<NText style="white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis;">
{{ authStore.user?.name }}
</NText>
<NAvatar <NAvatar
round :size="28" round :size="28"
style=" style="
@@ -83,9 +86,6 @@ const onSelectRole = (roleId) => {
font-size: 11px; font-weight: 700; flex-shrink: 0; font-size: 11px; font-weight: 700; flex-shrink: 0;
" "
>{{ initials }}</NAvatar> >{{ initials }}</NAvatar>
<NText style="white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis;">
{{ authStore.user?.name }}
</NText>
</NFlex> </NFlex>
</NFlex> </NFlex>