* переписал функции прототипов в сервисы

* оптимизация доставки контента до клиента
* переписал запросы выборок
* убрал из подсчета переведенных
* добавил сохранение метрикам для вывода в дашборд
This commit is contained in:
brusnitsyn
2026-02-04 17:05:13 +09:00
parent 9ee33bc517
commit eab78a0291
16 changed files with 1644 additions and 737 deletions

View File

@@ -12,6 +12,7 @@ import {useReportStore} from "../../../Stores/report.js";
import ReportSelectDate from "../../../Components/ReportSelectDate.vue";
import DepartmentSelect from "../../../Components/DepartmentSelect.vue";
import UnwantedEventModal from "./UnwantedEventModal.vue";
import DatePickerQuery from "../../../Components/DatePickerQuery.vue";
const props = defineProps({
mode: {
@@ -66,7 +67,7 @@ const currentDate = computed(() => {
</NSpace>
<div class="col-3 w-full">
<ReportSelectDate :is-one-day="reportStore.reportInfo.report?.isOneDay"/>
<DatePickerQuery :is-head-or-admin="reportStore.reportInfo.report?.isHeadOrAdmin" v-model:date="reportStore.timestampCurrentRange" :is-one-day="reportStore.reportInfo.report?.isOneDay" />
</div>
</div>

View File

@@ -44,9 +44,14 @@ onMounted(async () => {
await fetchPatientCount()
})
watch(() => reportStore.timestampCurrentRange, (newRange) => {
if (newRange) fetchPatientCount()
})
watch(() => reportStore.timestampCurrentRange, (newRange, oldRange) => {
// Проверяем, что диапазон изменился и валиден
if (newRange &&
newRange.length === 2 &&
(!oldRange || newRange[0] !== oldRange[0] || newRange[1] !== oldRange[1])) {
fetchPatientCount()
}
}, { deep: true })
</script>
<template>

View File

@@ -145,7 +145,7 @@ const columns = computed(() => {
const operationColumn = {
title: 'Операции',
key: 'operations',
render: (row) => row.operations.length ?
render: (row) => row.operations?.length ?
h(
NText,
{},