show.vue 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <div class="flex justify-end">
  3. <q-btn flat
  4. color="grey"
  5. @click="$router.go(-1)">
  6. بازگشت
  7. >
  8. </q-btn>
  9. </div>
  10. <div class="AdminSessionShow">
  11. <entity-edit v-if="mounted"
  12. ref="sessionEntityEdit"
  13. v-model:value="inputs"
  14. title="جزییات جلسه"
  15. :api="api"
  16. :entity-id-key="entityIdKey"
  17. :entity-param-key="entityParamKey"
  18. :show-route-name="showRouteName"
  19. :show-close-button="false"
  20. :show-edit-button="false"
  21. :show-expand-button="false"
  22. :show-save-button="false"
  23. :show-reload-button="false">
  24. <template #after-form-builder>
  25. <div class="flex justify-end q-mt-md">
  26. <q-btn color="primary"
  27. label="ذخیره جزییات"
  28. @click="updateSessionTemplates" />
  29. </div>
  30. </template>
  31. </entity-edit>
  32. </div>
  33. </template>
  34. <script>
  35. import { shallowRef } from 'vue'
  36. import { EntityEdit } from 'quasar-crud'
  37. import { APIGateway } from 'src/api/APIGateway.js'
  38. import ContentMedias from 'src/components/FormBuilderCustumComponents/ContentMedias/ContentMedias.vue'
  39. import ContentsSelector from 'src/components/FormBuilderCustumComponents/ContentsSelector/ContentsSelector.vue'
  40. const ContentMediasComp = shallowRef(ContentMedias)
  41. const ContentsSelectorComp = shallowRef(ContentsSelector)
  42. export default {
  43. name: 'Admin.Session.Show',
  44. components: {
  45. EntityEdit
  46. },
  47. data () {
  48. return {
  49. mounted: false,
  50. newUnitLoading: false,
  51. newUnitName: null,
  52. newUnitSessionCount: null,
  53. api: null,
  54. entityIdKey: 'id',
  55. entityParamKey: 'id',
  56. showRouteName: 'Admin.SessionTemplate.Show',
  57. inputs: [
  58. { type: 'input', name: 'title', responseKey: 'title', label: 'نام جلسه', placeholder: ' ', col: 'col-md-9 col-12' },
  59. { type: 'separator', name: 'space', size: '0', col: 'col-12' },
  60. { type: 'dateTime', name: 'beginning_time', responseKey: 'beginning_time', outsideLabel: 'زمان شروع جلسه', col: 'col-md-6 col-12' },
  61. { type: 'dateTime', name: 'ending_time', responseKey: 'ending_time', outsideLabel: 'زمان پایان جلسه', col: 'col-md-6 col-12' },
  62. { type: 'inputEditor', name: 'description', responseKey: 'description', label: 'توضیحات', placeholder: ' ', col: 'col-md-6 col-12' },
  63. { type: 'inputEditor', name: 'syllabus', responseKey: 'syllabus', label: 'مقرری', placeholder: ' ', col: 'col-md-6 col-12' },
  64. { type: ContentsSelectorComp, name: 'contents', responseKey: 'contents_info', col: 'col-12' },
  65. { type: ContentMediasComp, name: 'medias', responseKey: 'medias_info', sourceType: 'SESSION', col: 'col-12' },
  66. { type: 'inputEditor', name: 'assignment_description', responseKey: 'assignment_description', label: 'تکلیف', placeholder: ' ', col: 'col-md-6 col-12' },
  67. { type: 'inputEditor', name: 'assignment_answer', responseKey: 'assignment_answer', label: 'پاسخ تکلیف', placeholder: ' ', col: 'col-md-6 col-12' },
  68. { type: 'hidden', name: 'id', responseKey: 'id', label: 'id', col: 'col-12' }
  69. ]
  70. }
  71. },
  72. mounted () {
  73. this.api = APIGateway.session.APIAdresses.byId(this.$route.params.id)
  74. this.mounted = true
  75. },
  76. methods: {
  77. updateSessionTemplates () {
  78. this.$refs.sessionEntityEdit.editEntity(false)
  79. },
  80. getRemoveMessage (row) {
  81. return 'آیا از حذف ' + row.title + ' اطمینان دارید؟'
  82. }
  83. }
  84. }
  85. </script>
  86. <style>
  87. .fit-to-card {
  88. margin: -16px;
  89. }
  90. </style>