EducationTimings.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <template>
  2. <LayoutContainer>
  3. <UiLoadingPanel v-if="pending" />
  4. <div v-else>
  5. <ul>
  6. <li v-for="timing in allTimings" :key="timing.id">
  7. {{ timing.timing }}
  8. <div class="button-group">
  9. <UiButtonDelete :model="EducationTiming" :entity="timing" />
  10. <span class="edit-icon" @click="goToEditPage(timing.id)">✏️</span>
  11. </div>
  12. </li>
  13. </ul>
  14. </div>
  15. <button @click="goToCreatePage">Nouveau</button>
  16. </LayoutContainer>
  17. </template>
  18. <script setup lang="ts">
  19. import { useEntityFetch } from '~/composables/data/useEntityFetch'
  20. import EducationTiming from '~/models/Education/EducationTiming'
  21. import {useRepo} from "pinia-orm";
  22. import EducationTimingsRepository from '~/stores/repositories/EducationTimingsRepository';
  23. const { fetchCollection } = useEntityFetch()
  24. const { data: educationTimings, pending } = fetchCollection(EducationTiming)
  25. const educationTimingRepo = useRepo(EducationTimingsRepository);
  26. const allTimings: ComputedRef<Array<EducationTiming>> = computed(() => {
  27. return educationTimingRepo.getEducationTimings()
  28. })
  29. console.log(allTimings)
  30. const goToEditPage = (id: number) => {
  31. navigateTo(`/parameters/education_timings/${id}`)
  32. }
  33. const goToCreatePage = () => {
  34. navigateTo(`/parameters/education_timings/new`)
  35. }
  36. </script>
  37. <style scoped lang="scss">
  38. .button-group {
  39. display: flex;
  40. flex-direction: row;
  41. align-items: center;
  42. gap: 8px;
  43. }
  44. </style>