diff --git a/resources/js/Pages/Statistic/Components/ModalDeathPatients.vue b/resources/js/Pages/Statistic/Components/ModalDeathPatients.vue
index ed1bb1b..a4a69c5 100644
--- a/resources/js/Pages/Statistic/Components/ModalDeathPatients.vue
+++ b/resources/js/Pages/Statistic/Components/ModalDeathPatients.vue
@@ -7,11 +7,7 @@ import { format, formatDistanceStrict } from 'date-fns'
import { ru } from 'date-fns/locale'
import { computed, h, ref, watch } from 'vue'
import TooltipColumn from '../../Report/Components/DataTableColumns/TooltipColumn.vue'
-
-const props = defineProps({
- startAt: { required: true },
- endAt: { required: true },
-})
+import {usePage} from "@inertiajs/vue3";
const open = defineModel('open')
const loading = ref(true)
@@ -19,6 +15,16 @@ const deadPatients = ref([])
const currentPatient = ref(null)
const showDrawer = ref(false)
+const startAt = computed(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ return urlParams.get('startAt')
+})
+
+const endAt = computed(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ return urlParams.get('endAt')
+})
+
// Получаем уникальные отделения для фильтра
const departmentOptions = computed(() => {
const departments = new Set()
@@ -31,6 +37,7 @@ const departmentOptions = computed(() => {
label: dept,
value: dept
}))
+ .sort((a, b) => a.label.localeCompare(b.label))
})
// Состояние для выбранных фильтров
@@ -92,10 +99,10 @@ const columns = computed(() => [
},
])
-const fetch = () => {
+const fetch = (startAt, endAt) => {
loading.value = true
axios.get('/api/statistics/reports/dead-patients', {
- params: { startAt: props.startAt, endAt: props.endAt }
+ params: { startAt, endAt }
}).then((res) => {
deadPatients.value = res.data ?? []
@@ -106,9 +113,9 @@ const fetch = () => {
})
}
-watch(open, (isOpen) => {
- if (isOpen && props.endAt && props.startAt) {
- fetch()
+watch(open, (open) => {
+ if (open) {
+ fetch(startAt.value, endAt.value)
}
})
diff --git a/resources/js/Pages/Statistic/Components/ModalObservablePatients.vue b/resources/js/Pages/Statistic/Components/ModalObservablePatients.vue
index d74fa30..9e8c99d 100644
--- a/resources/js/Pages/Statistic/Components/ModalObservablePatients.vue
+++ b/resources/js/Pages/Statistic/Components/ModalObservablePatients.vue
@@ -10,8 +10,6 @@ import TooltipColumn from '../../Report/Components/DataTableColumns/TooltipColum
const props = defineProps({
departmentId: { required: true },
- startAt: { required: true },
- endAt: { required: true },
})
const open = defineModel('open')
@@ -84,10 +82,20 @@ const columns = [
},
]
-const fetch = () => {
+const startAt = computed(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ return urlParams.get('startAt')
+})
+
+const endAt = computed(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ return urlParams.get('endAt')
+})
+
+const fetch = (startAt, endAt) => {
loading.value = true
axios.get('/api/statistics/reports/observable-patients', {
- params: { startAt: props.startAt, endAt: props.endAt, departmentId: props.departmentId }
+ params: { startAt, endAt, departmentId: props.departmentId }
}).then((res) => {
observablePatients.value = res.data ?? []
}).finally(() => {
@@ -95,8 +103,8 @@ const fetch = () => {
})
}
-watch(() => [props.departmentId, props.endAt, props.startAt], () => {
- if (props.departmentId && props.endAt && props.startAt) fetch()
+watch([open, () => props.departmentId], ([open, departmentId]) => {
+ if (open && departmentId) fetch(startAt.value, endAt.value)
}, { immediate: true, deep: true })
diff --git a/resources/js/Pages/Statistic/Components/ModalUnwantedEvents.vue b/resources/js/Pages/Statistic/Components/ModalUnwantedEvents.vue
index 7aaeb9c..cf4f016 100644
--- a/resources/js/Pages/Statistic/Components/ModalUnwantedEvents.vue
+++ b/resources/js/Pages/Statistic/Components/ModalUnwantedEvents.vue
@@ -5,31 +5,36 @@ import {
} from 'naive-ui'
import {useReportStore} from "../../../Stores/report.js";
import { TbAlertCircle, TbPencil, TbTrashX } from 'vue-icons-plus/tb'
-import {ref, watch} from "vue";
+import {computed, ref, watch} from "vue";
const props = defineProps({
departmentId: {
required: true
},
- startAt: {
- required: true
- },
- endAt: {
- required: true
- }
})
const open = defineModel('open')
const loading = ref(true)
const unwantedEvents = ref([])
-const fetchUnwantedEvents = () => {
+
+const startAt = computed(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ return urlParams.get('startAt')
+})
+
+const endAt = computed(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ return urlParams.get('endAt')
+})
+
+const fetchUnwantedEvents = (startAt, endAt) => {
loading.value = true
axios.get('/api/statistics/reports/unwanted-events', {
params: {
departmentId: props.departmentId,
- startAt: props.startAt,
- endAt: props.endAt
+ startAt,
+ endAt
}
})
.then(res => {
@@ -40,9 +45,9 @@ const fetchUnwantedEvents = () => {
})
}
-watch(() => [props.departmentId, props.endAt, props.startAt], () => {
- if (props.departmentId && props.endAt && props.startAt) {
- fetchUnwantedEvents()
+watch([open, () => props.departmentId], ([open, departmentId]) => {
+ if (open && departmentId) {
+ fetchUnwantedEvents(startAt.value, endAt.value)
}
}, {
immediate: true,
diff --git a/resources/js/Pages/Statistic/Index.vue b/resources/js/Pages/Statistic/Index.vue
index ae0a072..8eae28f 100644
--- a/resources/js/Pages/Statistic/Index.vue
+++ b/resources/js/Pages/Statistic/Index.vue
@@ -388,9 +388,9 @@ const buildReportHref = (departmentId, startAt, endAt) => {
>
-
-
-
+
+
+