Много чего

This commit is contained in:
brusnitsyn
2025-12-25 17:30:50 +09:00
parent c4bb7ec6f9
commit a5209f45c8
25 changed files with 1521 additions and 574 deletions

View File

@@ -16,51 +16,15 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
page_size: initialFilters?.page_size || 50,
sort_by: initialFilters?.sort_by || 'dateextract',
sort_order: initialFilters?.sort_order || 'desc',
view_type: initialFilters?.view_type || 'si',
status: initialFilters?.status || null,
database: initialFilters?.database || 'separate', // НОВЫЙ ПАРАМЕТР: postgresql, mssql, smart, separate
})
// Метаданные для разных типов данных
const meta = computed(() => {
const cards = page.props.cards
// Для раздельного поиска
if (filtersRef.value.database === 'separate') {
return {
si: cards.si.meta || {},
mis: cards.mis.meta || {},
stats: cards.stats || {},
}
} else if (filtersRef.value.database === 'mis') {
return {
mis: cards.mis?.meta
}
} else {
return {
si: cards.si?.meta
}
}
return page.props.cards.meta
})
const isLoading = ref(false)
const databaseStats = computed(() => page.props.databaseStats || {})
// Статистика по базам
const databaseInfo = computed(() => ({
postgresql: {
count: databaseStats.value.postgresql?.total || 0,
label: 'PostgreSQL',
color: 'blue',
description: 'Основной архив'
},
mssql: {
count: databaseStats.value.mssql?.total || 0,
label: 'MSSQL',
color: 'purple',
description: 'Исторический архив'
}
}))
// Форматирование даты для URL
const formatDateForUrl = (date) => {
@@ -81,8 +45,6 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
page_size: filtersRef.value.page_size,
sort_by: filtersRef.value.sort_by,
sort_order: filtersRef.value.sort_order,
view_type: filtersRef.value.view_type,
database: filtersRef.value.database,
status: filtersRef.value.status
}
@@ -128,10 +90,6 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
debouncedSearch(value)
}
const handleDatabaseChange = (database) => {
applyFilters({ database, page: 1 }, false)
}
// Конвертация строки даты в timestamp для NaiveUI
const convertToTimestamp = (dateString) => {
if (!dateString) return null
@@ -186,10 +144,6 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
applyFilters({ page_size: size, page: 1 })
}
const handleViewTypeChange = (view_type) => {
applyFilters({ view_type, page: 1 })
}
const handleSortChange = (sorter) => {
applyFilters({
sort_by: sorter.columnKey,
@@ -213,8 +167,6 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
page_size: 15,
sort_by: 'dateextract',
sort_order: 'desc',
view_type: 'archive',
database: 'postgresql',
}
dateRange.value = [null, null]
applyFilters({}, true)
@@ -270,22 +222,6 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
})
}
// Фильтр по базе данных
if (filtersRef.value.database) {
const dbLabel = {
postgresql: 'PostgreSQL',
mssql: 'MSSQL',
smart: 'Умный поиск',
separate: 'Раздельно'
}[filtersRef.value.database] || filtersRef.value.database
active.push({
key: 'database',
label: `База: ${dbLabel}`,
icon: 'database'
})
}
return active
})
@@ -341,12 +277,8 @@ export const useMedicalHistoryFilter = (initialFilters = {}) => {
activeFilters,
dateRange,
searchValue,
databaseInfo,
databaseStats,
// Обработчики
handleDatabaseChange,
handleViewTypeChange,
handleSearch,
handleDateRangeChange,
handlePageChange,