Files
kartoteka/resources/js/Pages/Home/ArchiveHistoryModal/Index.vue
brusnitsyn 2dfa45707c * связка таблицы архива с пациентами
* добавил разграничение карт по типам баз
* модель для хранения изменений статуса карт
* добавил окно с просмотром выдачи карты
* добавил фильтрацию вывода карт
2025-12-02 17:15:28 +09:00

74 lines
1.6 KiB
Vue

<script setup>
import { NModal, NDataTable } from 'naive-ui'
import {ref, watch} from "vue";
const open = defineModel('open')
const props = defineProps({
patientId: {
type: Number,
}
})
const loading = ref(true)
const patient = ref({})
const loadPatientData = async () => {
if (!props.patientId) return
loading.value = true
try {
axios.get(`/api/si/patients/${props.patientId}`).then(res => {
patient.value = res.data
})
} catch (error) {
// message.error('Ошибка при загрузке данных пациента')
console.error(error)
} finally {
loading.value = false
}
}
const columns = [
{
title: 'Выдача',
key: 'issue_at'
},
{
title: 'Возврат',
key: 'return_at'
},
{
title: 'Организация',
key: 'org_id'
},
{
title: 'ФИО',
key: 'employee_name'
},
{
title: 'Должность',
key: 'employee_post'
},
]
// Наблюдаем за изменением patientId
watch(() => props.patientId, (newId) => {
if (newId) {
loadPatientData()
}
}, { immediate: true })
</script>
<template>
<NModal v-model:show="open" preset="card" class="max-w-4xl" closable @close="open = false">
<template #header>
{{ patient.info?.medcardnum }} {{ patient.info?.family }} {{ patient.info?.name }} {{ patient.info?.ot }}
</template>
<NDataTable :columns="columns" :data="patient?.journal" />
</NModal>
</template>
<style scoped>
</style>