2025-11-10 17:43:18 +03:00

179 lines
4.9 KiB
Vue

<template>
<div class="row">
<div
v-for="(defunt, index) in defunts"
:key="index"
class="col-xl-4 col-md-6 col-12 mb-4"
>
<defunt-card
:nom="defunt.nom"
:prenom="defunt.prenom"
:date_naissance="defunt.date_naissance"
:date_deces="defunt.date_deces"
:lieu_deces="defunt.lieu_deces"
:description="defunt.description"
:dropdown="dropdownOptions"
@dropdown-action="(action) => handleAction(action, defunt)"
/>
</div>
</div>
</template>
<script setup>
import DefuntCard from "@/components/atoms/Defunts/DefuntCard.vue";
import { ref } from "vue";
// Données d'exemple
const defunts = ref([
{
id: 1,
nom: "Dupont",
prenom: "Jean",
date_naissance: "1950-03-15",
date_deces: "2024-01-10",
lieu_deces: "Hôpital Saint-Louis, Paris 10ème",
description:
"Décédé des suites d'une longue maladie. Souhaitait une cérémonie religieuse catholique. Famille très présente.",
},
{
id: 2,
nom: "Martin",
prenom: "Sophie",
date_naissance: "1965-08-22",
date_deces: "2024-01-08",
lieu_deces: "Domicile, 92 Rue de Rivoli, Paris 4ème",
description:
"Décès naturel à domicile. Cérémonie laïque souhaitée. Environ 50 personnes attendues.",
},
{
id: 3,
nom: "Bernard",
prenom: "Pierre",
date_naissance: "1942-11-30",
date_deces: "2024-01-05",
lieu_deces: "Clinique du Val de Seine, Issy-les-Moulineaux",
description:
"Ancien militaire, décédé des suites d'un cancer. Demande d'honneurs militaires. Cérémonie au crématorium.",
},
{
id: 4,
nom: "Moreau",
prenom: "Marie",
date_naissance: "1938-07-14",
date_deces: "2024-01-03",
lieu_deces: "EHPAD Les Jardins Fleuris, Vincennes",
description:
"Décédée paisiblement à l'EHPAD. Cérémonie religieuse à l'église Saint-Louis de Vincennes. Famille nombreuse.",
},
{
id: 5,
nom: "Leroy",
prenom: "Philippe",
date_naissance: "1972-12-05",
date_deces: "2024-01-01",
lieu_deces: "Centre Hospitalier Universitaire, Créteil",
description:
"Décès accidentel. Jeune famille endeuillée. Cérémonie intime souhaitée. Crémation prévue.",
},
{
id: 6,
nom: "Petit",
prenom: "Claire",
date_naissance: "1980-04-18",
date_deces: "2023-12-28",
lieu_deces: "Hôpital Necker, Paris 15ème",
description:
"Décédée après une courte maladie. Professeure de musique. Cérémonie avec prestation musicale des élèves.",
},
{
id: 7,
nom: "Roux",
prenom: "Antoine",
date_naissance: "1955-09-12",
date_deces: "2023-12-25",
lieu_deces: "Maison de retraite Les Tilleuls, Sceaux",
description:
"Ancien artisan ébéniste. Décès pendant la nuit de Noël. Cérémonie au cimetière du Père Lachaise.",
},
{
id: 8,
nom: "Garcia",
prenom: "Elena",
date_naissance: "1968-02-28",
date_deces: "2023-12-20",
lieu_deces: "Hôpital Européen Georges Pompidou, Paris",
description:
"D'origine espagnole. Décédée des suites d'une opération. Double cérémonie française et espagnole prévue.",
},
{
id: 9,
nom: "Fournier",
prenom: "Michel",
date_naissance: "1948-06-08",
date_deces: "2023-12-18",
lieu_deces: "Centre de Soins Palliatifs, Boulogne-Billancourt",
description:
"Ancien chef d'entreprise. Décès après une longue maladie. Cérémonie civile au funérarium.",
},
]);
// Gestion des actions du dropdown
const handleAction = (action, defunt) => {
switch (action) {
case "edit":
console.log("Modifier le défunt:", defunt);
// Ouvrir modal d'édition
break;
case "view":
console.log("Voir les détails:", defunt);
// Naviguer vers la page détail
break;
case "create_intervention":
console.log("Créer une intervention pour:", defunt);
// Ouvrir wizard de création d'intervention
break;
case "delete":
console.log("Supprimer le défunt:", defunt);
// Confirmer la suppression
if (
confirm(
`Êtes-vous sûr de vouloir supprimer ${defunt.prenom} ${defunt.nom} ?`
)
) {
defunts.value = defunts.value.filter((d) => d.id !== defunt.id);
}
break;
}
};
// Fonction pour ajouter un nouveau défunt (exemple)
const ajouterDefunt = () => {
const nouveauDefunt = {
id: defunts.value.length + 1,
nom: "Nouveau",
prenom: "Défunt",
date_naissance: "1950-01-01",
date_deces: "2024-01-15",
lieu_deces: "Lieu à définir",
description: "Description à compléter",
};
defunts.value.unshift(nouveauDefunt);
};
</script>
<style scoped>
.page-link {
border: none;
margin: 0 2px;
border-radius: 8px;
}
.page-item.active .page-link {
background-color: #cb0c9f;
border-color: #cb0c9f;
}
.pagination {
gap: 4px;
}
</style>