_id.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <main>
  3. <v-skeleton-loader
  4. type="text"
  5. v-if="loading"
  6. ></v-skeleton-loader>
  7. <LayoutContainer v-else>
  8. <v-card class="margin-bottom-20">
  9. <v-toolbar flat class="ot_light_grey toolbarForm" dark dense rounded>
  10. <v-toolbar-title class="ot_dark_grey--text form_main_title">
  11. <v-icon class="ot_white--text ot_green icon">fa-globe-europe</v-icon>
  12. {{ $t('address_postal') }}
  13. </v-toolbar-title>
  14. </v-toolbar>
  15. <UiForm :model="model" :id="id" :query="query()">
  16. <template v-slot:form.input="{entry, updateRepository}">
  17. <v-skeleton-loader
  18. type="text"
  19. v-if="loading"
  20. ></v-skeleton-loader>
  21. <v-container v-else fluid class="container">
  22. <v-row>
  23. <v-col cols="12" sm="6">
  24. <UiInputText field="addressPostal.streetAddress" label="streetAddress" :data="entry['addressPostal.streetAddress']" v-on:update="updateRepository"/>
  25. </v-col>
  26. <v-col cols="12" sm="6">
  27. <UiInputText field="addressPostal.streetAddressSecond" label="streetAddressSecond" :data="entry['addressPostal.streetAddressSecond']" v-on:update="updateRepository"/>
  28. </v-col>
  29. <v-col cols="12" sm="6">
  30. <UiInputText field="addressPostal.streetAddressThird" label="streetAddressThird" :data="entry['addressPostal.streetAddressThird']" v-on:update="updateRepository"/>
  31. </v-col>
  32. <v-col cols="12" sm="6">
  33. <UiInputText field="addressPostal.postalCode" label="postalCode" :data="entry['addressPostal.postalCode']" v-on:update="updateRepository"/>
  34. </v-col>
  35. <v-col cols="12" sm="6">
  36. <UiInputText field="addressPostal.addressCity" label="addressCity" :data="entry['addressPostal.addressCity']" v-on:update="updateRepository"/>
  37. </v-col>
  38. </v-row>
  39. </v-container>
  40. </template>
  41. <template v-slot:form.button>
  42. <NuxtLink :to="{ path: '/organization', query: { accordion: 'address_postal' }}" class="no-decoration">
  43. <v-btn class="mr-4 ot_danger ot_white--text">
  44. Retour
  45. </v-btn>
  46. </NuxtLink>
  47. </template>
  48. </UiForm>
  49. </v-card>
  50. </LayoutContainer>
  51. </main>
  52. </template>
  53. <script lang="ts">
  54. import {defineComponent, useContext, useFetch, ref, computed} from '@nuxtjs/composition-api'
  55. import {OrganizationAddressPostal} from "~/models/Organization/OrganizationAddressPostal";
  56. import {QUERY_TYPE} from "~/types/enums";
  57. import {useRepositoryHelper} from "~/use/store/useRepository";
  58. export default defineComponent({
  59. name: 'organization_address',
  60. setup() {
  61. const {route, $dataProvider} = useContext()
  62. const loading = ref(true)
  63. const id = parseInt(route.value.params.id)
  64. const repository = useRepositoryHelper.getRepository(OrganizationAddressPostal)
  65. const query = computed(() => repository.with('addressPostal', (query) => {
  66. query.with('addressCountry')
  67. }))
  68. useFetch(async () => {
  69. await $dataProvider.invoke({
  70. type: QUERY_TYPE.MODEL,
  71. model: OrganizationAddressPostal,
  72. id: id
  73. })
  74. loading.value = false
  75. })
  76. return {
  77. model: OrganizationAddressPostal,
  78. query: () => query,
  79. id,
  80. loading,
  81. panel: 0
  82. }
  83. },
  84. })
  85. </script>
  86. <style>
  87. .toolbarForm .v-toolbar__content{
  88. padding-left: 0px !important;
  89. }
  90. .toolbarForm .v-toolbar__title .v-icon{
  91. height: 46px;
  92. width: 46px;
  93. }
  94. </style>