BankAccount.vue 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!-- Component d'un formulaire d'un banque account d'organization -->
  2. <template>
  3. <main>
  4. <LayoutContainer>
  5. <v-card class="mb-5">
  6. <FormToolbar title="bank_account" icon="fa-euro-sign"/>
  7. <UiForm
  8. :id="id"
  9. :model="model"
  10. :query="query()"
  11. :submitActions="submitActions">
  12. <template #form.input="{entry, updateRepository}">
  13. <v-container fluid class="container">
  14. <v-row>
  15. <v-col cols="12" sm="6">
  16. <UiInputText field="bankName" :data="entry['bankName']" @update="updateRepository" />
  17. </v-col>
  18. <v-col cols="12" sm="6">
  19. <UiInputText field="bic" :data="entry['bic']" @update="updateRepository" />
  20. </v-col>
  21. <v-col cols="12" sm="6">
  22. <UiInputText field="iban" :data="entry['iban']" @update="updateRepository" :mask="['AA ## ##### ##### XXXXXXXXXXX ##']" />
  23. </v-col>
  24. <v-col cols="12" sm="6">
  25. <UiInputText field="debitAddress" :data="entry['debitAddress']" @update="updateRepository" />
  26. </v-col>
  27. <v-col cols="12" sm="6">
  28. <UiInputText field="holder" :data="entry['holder']" @update="updateRepository" />
  29. </v-col>
  30. <v-col cols="12" sm="6">
  31. <UiInputCheckbox field="principal" :data="entry['principal']" @update="updateRepository" />
  32. </v-col>
  33. </v-row>
  34. </v-container>
  35. </template>
  36. <template #form.button>
  37. <NuxtLink :to="{ path: '/organization', query: { accordion: 'bank_account' }}" class="no-decoration">
  38. <v-btn class="mr-4 ot_light_grey ot_grey--text">
  39. {{ $t('back') }}
  40. </v-btn>
  41. </NuxtLink>
  42. </template>
  43. </UiForm>
  44. </v-card>
  45. </LayoutContainer>
  46. </main>
  47. </template>
  48. <script lang="ts">
  49. import { defineComponent, computed} from '@nuxtjs/composition-api'
  50. import { Repository as VuexRepository } from '@vuex-orm/core/dist/src/repository/Repository'
  51. import { Query, Model } from '@vuex-orm/core'
  52. import {SUBMIT_TYPE} from '~/types/enums'
  53. import { repositoryHelper } from '~/services/store/repository'
  54. import {AnyJson} from "~/types/interfaces";
  55. import {BankAccount} from "~/models/Core/BankAccount";
  56. export default defineComponent({
  57. props: {
  58. id:{
  59. type: [Number, String],
  60. required: true
  61. }
  62. },
  63. setup () {
  64. const repository: VuexRepository<Model> = repositoryHelper.getRepository(BankAccount)
  65. const query: Query = repository.query()
  66. const submitActions = computed(() => {
  67. let actions:AnyJson = {}
  68. actions[SUBMIT_TYPE.SAVE_AND_BACK] = { path: `/organization`, query: { accordion: 'bank_account' } }
  69. actions[SUBMIT_TYPE.SAVE] = { path: `/organization/bank_account/` }
  70. return actions
  71. })
  72. return {
  73. model: BankAccount,
  74. query: () => query,
  75. submitActions
  76. }
  77. },
  78. beforeDestroy() {
  79. repositoryHelper.cleanRepository(BankAccount)
  80. }
  81. })
  82. </script>