Шаблон отчета дежурного врача

This commit is contained in:
brusnitsyn
2026-07-06 15:27:43 +09:00
parent d322317d06
commit 2b0221ed36
5 changed files with 98 additions and 2 deletions

View File

@@ -216,6 +216,33 @@ const reportCreatorType = computed(() => {
else return 'warning'
})
const downloadReport = async () => {
try {
const response = await fetch(`/duty/report/generate?startAt=${props.dates[0]}&endAt=${props.dates[1]}&departmentId=${props.department.department_id}`, {
method: 'GET',
headers: {
'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
},
})
if (!response.ok) {
throw new Error('Ошибка загрузки файла')
}
const blob = await response.blob()
const url = window.URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = 'Отчёт дежурного.xlsx'
document.body.appendChild(a)
a.click()
window.URL.revokeObjectURL(url)
document.body.removeChild(a)
} catch {
// silent
}
}
watch(() => props, (newProps) => {
syncPageProps(newProps)
}, {
@@ -321,6 +348,9 @@ watch(() => props, (newProps) => {
secondary type="error" :loading="loading" @click="onShowUnwantedEventModal">
Нежелательные события ({{ latestReportObj.unwanted_events?.length ?? 0 }})
</NButton>
<NButton secondary @click="downloadReport" :loading="loading">
Сформировать отчет дежурного
</NButton>
<NButton v-if="props.canSaveReport" secondary @click="submit" :loading="loading">
Сохранить введенные данные
</NButton>

View File

@@ -50,7 +50,7 @@ const columns = ref([
{
title: 'Отделение',
key: 'department',
width: 200,
width: 240,
titleAlign: 'center',
cellProps: (row) => ({
style: '--n-merged-td-color: var(--n-merged-th-color); --n-merged-td-color-striped: var(--n-merged-th-color); --n-td-text-color: var(--color-zinc-400); --n-th-text-color: var(--color-zinc-400);'