index.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <LayoutContainer v-if="!fetchState.pending">
  3. <UiForm :id="id" :model="model" :query="query()">
  4. <template #form.input="{entry, updateRepository}">
  5. <v-expansion-panels focusable multiple :value="[0]">
  6. <!-- Description -->
  7. <UiExpansionPanel id="generalParams" icon="fa-info">
  8. <v-container fluid class="container">
  9. <v-row>
  10. <v-col cols="12" sm="6" v-if="organizationProfile.isSchool()">
  11. <UiInputDatePicker field="financialDate" :data="entry['financialDate']" format="DD MMMM" @update="updateRepository" />
  12. </v-col>
  13. <v-col cols="12" sm="6">
  14. <UiInputDatePicker field="musicalDate" :data="entry['musicalDate']" format="DD MMMM" @update="updateRepository" />
  15. </v-col>
  16. <v-col cols="12" sm="6" v-if="organizationProfile.isSchool()">
  17. <UiInputDatePicker field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
  18. </v-col>
  19. <v-col cols="12" sm="6" v-if="organizationProfile.isSchool()">
  20. <UiInputDatePicker field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
  21. </v-col>
  22. <v-col cols="12" sm="6">
  23. <UiInputCheckbox field="showAdherentList" :data="entry['showAdherentList']" @update="updateRepository" />
  24. </v-col>
  25. <v-col cols="12" sm="6" v-if="organizationProfile.isSchool() && organization.legalStatus === 'ASSOCIATION_LAW_1901'">
  26. <UiInputCheckbox field="studentsAreAdherents" :data="entry['studentsAreAdherents']" @update="updateRepository" />
  27. </v-col>
  28. <v-col cols="12" sm="6" v-if="organizationProfile.isCMFCentralService()">
  29. <div>
  30. <span>{{ $t('qrCode') }}</span>
  31. </div>
  32. <UiImage
  33. :id="getIdFromUri(entry['qrCode'])"
  34. :upload="true"
  35. :width="100"
  36. field="qrCode"
  37. :ownerId="id"
  38. @update="updateRepository"
  39. ></UiImage>
  40. </v-col>
  41. <v-col cols="12" sm="6">
  42. <UiInputEnum field="timezone" :data="entry['timezone']" enum-type="timezone" @update="updateRepository" />
  43. </v-col>
  44. </v-row>
  45. </v-container>
  46. </UiExpansionPanel>
  47. </v-expansion-panels>
  48. </template>
  49. </UiForm>
  50. </LayoutContainer>
  51. </template>
  52. <script lang="ts">
  53. import {computed, ComputedRef, defineComponent, reactive, useContext} from '@nuxtjs/composition-api'
  54. import { Organization } from '@/models/Organization/Organization'
  55. import { repositoryHelper } from '~/services/store/repository'
  56. import {useDataUtils} from "~/composables/data/useDataUtils";
  57. import {Parameters} from "~/models/Organization/Parameters";
  58. import {Model, Query, Item} from "@vuex-orm/core";
  59. import {$organizationProfile} from "~/services/profile/organizationProfile";
  60. import {Repository as VuexRepository} from "@vuex-orm/core/dist/src/repository/Repository";
  61. import ModelsUtils from "~/services/utils/modelsUtils";
  62. export default defineComponent({
  63. name: 'parameters',
  64. setup () {
  65. const {store, $dataProvider} = useContext()
  66. const organizationProfile = reactive($organizationProfile(store))
  67. const {getItemToEdit} = useDataUtils($dataProvider)
  68. const id = store.state.profile.organization.parametersId
  69. const {fetchState} = getItemToEdit(id, Parameters)
  70. const repositoryParameters: VuexRepository<Model> = repositoryHelper.getRepository(Parameters)
  71. const query: ComputedRef<Query> = computed(() => repositoryParameters.query())
  72. getItemToEdit(store.state.profile.organization.id, Organization)
  73. const organization:ComputedRef<Item> = computed(() => repositoryHelper.findItemFromModel(Organization, store.state.profile.organization.id))
  74. const getIdFromUri = (uri: string) => ModelsUtils.extractIdFromUri(uri)
  75. return {
  76. query: () => query.value,
  77. id,
  78. fetchState,
  79. model: Parameters,
  80. organizationProfile,
  81. organization,
  82. getIdFromUri
  83. }
  84. }
  85. })
  86. </script>