* оптимизировал запросы выдачи пациентов, сохранения снапшотов

* доработал страницу отчета дежурного
* переделал "действия" над пациентом
* подключил виджеты на странице отчета дежурного
This commit is contained in:
brusnitsyn
2026-05-08 17:04:56 +09:00
parent 6cf1ffbb2b
commit 90e0d04dfd
17 changed files with 818 additions and 292 deletions

View File

@@ -0,0 +1,40 @@
// composables/useDropdownActions.js
import { computed } from 'vue'
import { h } from 'vue'
import { NIcon } from 'naive-ui'
export function useDropdownActions(groups, renderIcon) {
return computed(() => {
const result = []
const visibleGroups = groups.filter(group => group.items?.some(item => item.if !== false))
visibleGroups.forEach((group, groupIndex) => {
// Фильтруем видимые пункты внутри группы
const visibleItems = group.items.filter(item => item.if !== false)
if (visibleItems.length === 0) return
// Добавляем пункты группы
visibleItems.forEach(item => {
const option = { ...item }
// Убираем служебное поле if
delete option.if
// Добавляем иконку через renderIcon если есть
if (item.icon && renderIcon) {
option.icon = renderIcon(item.icon)
}
result.push(option)
})
// Добавляем divider после группы, если это не последняя группа
if (groupIndex < visibleGroups.length - 1) {
result.push({
type: 'divider',
key: `divider-${group.key || groupIndex}`
})
}
})
return result
})
}