new.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <LayoutContainer>
  3. <div>
  4. <h2>{{ $t("new_education_timing")}}</h2>
  5. <UiForm
  6. ref="form"
  7. :model="EducationTiming"
  8. :entity="educationTiming"
  9. :submitActions="submitActions"
  10. >
  11. <v-container :fluid="true" class="container">
  12. <v-row>
  13. <v-col cols="12" sm="6"> </v-col>
  14. </v-row>
  15. <v-row>
  16. <v-col cols="12" sm="6">
  17. <UiInputNumber
  18. v-model="educationTiming.timing"
  19. field="new_education_timings"
  20. :rules="rules()"
  21. />
  22. </v-col>
  23. </v-row>
  24. </v-container>
  25. </UiForm>
  26. <v-btn class="mr-12" @click="quit">
  27. {{ $t('back') }}
  28. </v-btn>
  29. </div>
  30. </LayoutContainer>
  31. </template>
  32. <script setup lang="ts">
  33. import { computed } from 'vue'
  34. import { AnyJson } from '~/types/data'
  35. import { SUBMIT_TYPE } from '~/types/enum/enums'
  36. import EducationTiming from '~/models/Education/EducationTiming'
  37. import { useI18n } from 'vue-i18n'
  38. import { useEntityManager } from '~/composables/data/useEntityManager'
  39. const i18n = useI18n()
  40. const router = useRouter()
  41. const { em } = useEntityManager()
  42. //@ts-ignore
  43. let educationTiming: EducationTiming = reactive(em.newInstance(EducationTiming))
  44. const goBackRoute = { path: `/parameters`, query: { tab: 'educationTimings' } }
  45. const submitActions = computed(() => {
  46. let actions: AnyJson = {}
  47. actions[SUBMIT_TYPE.SAVE_AND_BACK] = goBackRoute
  48. return actions
  49. })
  50. const rules = () => [
  51. (timing: number | null ) =>
  52. (timing !== null && timing > 0) || i18n.t('please_enter_a_value'),
  53. ]
  54. const quit = () => {
  55. router.push(goBackRoute)
  56. }
  57. </script>