organization.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <template>
  2. <LayoutContainer>
  3. <LayoutBannerTop>
  4. <template v-slot:bloc1>{{entry.name}}</template>
  5. <template v-slot:bloc2>N°Siret : {{entry.siretNumber}}</template>
  6. <template v-slot:bloc3>{{entry.description}}</template>
  7. </LayoutBannerTop>
  8. <NuxtChild />
  9. </LayoutContainer>
  10. </template>
  11. <script lang="ts">
  12. import {computed, defineComponent, useContext, ComputedRef} from '@nuxtjs/composition-api'
  13. import {QUERY_TYPE} from "~/types/enums";
  14. import {Organization} from "~/models/Organization/Organization";
  15. import {queryHelper} from "~/services/store/query";
  16. import {repositoryHelper} from "~/services/store/repository";
  17. import {Item, Query} from "@vuex-orm/core";
  18. export default defineComponent({
  19. name: 'organization',
  20. setup() {
  21. const {store} = useContext()
  22. const repository = repositoryHelper.getRepository(Organization)
  23. const query:ComputedRef<Query> = computed(() => repository.query())
  24. const entry:ComputedRef<Item> = computed(() => {
  25. return queryHelper.getItem(query.value, store.state.profile.organization.id)
  26. })
  27. return {
  28. entry
  29. }
  30. },
  31. async asyncData({store, $dataProvider}) {
  32. await $dataProvider.invoke({
  33. type: QUERY_TYPE.MODEL,
  34. model: Organization,
  35. id: store.state.profile.organization.id
  36. })
  37. }
  38. })
  39. </script>