Добавил поддержку компонента даты в отчетах
This commit is contained in:
@@ -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)) {
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user