Explorar o código

update du templating de la page adresse

Vincent GUFFON %!s(int64=4) %!d(string=hai) anos
pai
achega
6eafdd6114
Modificáronse 1 ficheiros con 39 adicións e 4 borrados
  1. 39 4
      pages/organization/address/_id.vue

+ 39 - 4
pages/organization/address/_id.vue

@@ -22,6 +22,19 @@
             ></v-skeleton-loader>
             <v-container v-else fluid class="container">
               <v-row>
+                <v-col cols="12" sm="12">
+                  <UiInputAutocomplete
+                    field="owner"
+                    label="addressOwner"
+                    itemValue="@id"
+                    :itemText="['cp', 'city']"
+                    v-on:update="updateAddressFromOwner"/>
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputEnum field="type" label="addresstype" :data="entry['type']"  enumType="address_postal_organization" v-on:update="updateRepository"/>
+                </v-col>
+
                 <v-col cols="12" sm="6">
                   <UiInputText field="addressPostal.streetAddress" label="streetAddress" :data="entry['addressPostal.streetAddress']" v-on:update="updateRepository"/>
                 </v-col>
@@ -40,11 +53,13 @@
               </v-row>
             </v-container>
 
+            <UiMap :zoom=12 :address="addressItem" v-on:updateAddress="updateAddress"></UiMap>
+
           </template>
 
           <template v-slot:form.button>
             <NuxtLink :to="{ path: '/organization', query: { accordion: 'address_postal' }}" class="no-decoration">
-              <v-btn class="mr-4 ot_danger ot_white--text">
+              <v-btn class="mr-4 ot_light_grey ot_grey--text">
                 {{$t('back')}}
               </v-btn>
             </NuxtLink>
@@ -61,6 +76,9 @@
   import {OrganizationAddressPostal} from "~/models/Organization/OrganizationAddressPostal";
   import {QUERY_TYPE} from "~/types/enums";
   import {repositoryHelper} from "~/services/store/repository";
+  import {queryHelper} from "~/services/store/query";
+  import {AnyJson} from "~/types/interfaces";
+  import {AddressPostal} from "~/models/Core/AddressPostal";
 
   export default defineComponent({
     name: 'organization_address',
@@ -70,9 +88,9 @@
       const id = parseInt(route.value.params.id)
 
       const repository = repositoryHelper.getRepository(OrganizationAddressPostal)
-      const query = computed(() => repository.with('addressPostal', (query) => {
+      const query = repository.with('addressPostal', (query) => {
         query.with('addressCountry')
-      }))
+      })
 
       useFetch(async () => {
         await $dataProvider.invoke({
@@ -83,12 +101,29 @@
         loading.value = false
       })
 
+      const addressItem = computed(() =>  {
+        const organizationAddressPostal = queryHelper.getFirstItem(query) as OrganizationAddressPostal
+        return organizationAddressPostal.addressPostal
+      })
+
+      const updateAddress = (address: AddressPostal) => {
+        const organizationAddressPostal = queryHelper.getFirstItem(query) as OrganizationAddressPostal
+        organizationAddressPostal.addressPostal = address
+        repositoryHelper.persist(repository, organizationAddressPostal)
+      }
+
+      /** Computed proprieties needs to be return as function until nuxt3 : https://github.com/nuxt-community/composition-api/issues/207 **/
       return {
         model: OrganizationAddressPostal,
         query: () => query,
         id,
         loading,
-        panel: 0
+        panel: 0,
+        addressItem,
+        updateAddress,
+        updateAddressFromOwner: (data:any) => {
+          console.log(data)
+        }
       }
     },
   })