AdminEventTestSetIndex.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <template>
  2. <div>
  3. <div class="flex justify-end">
  4. <q-btn flat
  5. color="grey"
  6. @click="$router.go(-1)">
  7. بازگشت
  8. >
  9. </q-btn>
  10. </div>
  11. <entity-index v-if="mounted"
  12. ref="testSetList"
  13. v-model:value="testSetListInputs"
  14. title="لیست پرسشنامه ها"
  15. :api="testSetListApi"
  16. :table="testSetListTable"
  17. :table-keys="testSetListTableKeys"
  18. :show-search-button="false"
  19. :show-reload-button="false"
  20. :show-expand-button="false">
  21. <template #toolbar>
  22. <q-btn color="primary"
  23. outline
  24. :to="{name: 'Admin.Event.TestSet.Create'}">
  25. تعریف پرسشنامه جدید
  26. </q-btn>
  27. </template>
  28. <template v-slot:entity-index-table-cell="{inputData}">
  29. <template v-if="inputData.col.name === 'number'">
  30. {{ inputData.rowNumber }}
  31. </template>
  32. <template v-else-if="inputData.col.name === 'actions'">
  33. <div class="action-column-entity-index">
  34. <q-btn size="md"
  35. color="primary"
  36. label="مشاهده"
  37. :to="{name: 'Admin.Event.TestSet.Show', params: {test_set_id:inputData.props.row.id}}"
  38. :loading="loading"
  39. class="q-mr-md" />
  40. <!-- <q-btn size="md"-->
  41. <!-- color="primary"-->
  42. <!-- label="انتخاب"-->
  43. <!-- :loading="loading"-->
  44. <!-- class="q-mr-md"-->
  45. <!-- @click="selectTestSet(inputData.props.row.id)" />-->
  46. </div>
  47. </template>
  48. <template v-else>
  49. {{ inputData.col.value }}
  50. </template>
  51. </template>
  52. </entity-index>
  53. <q-skeleton v-else
  54. type="rect"
  55. height="200px" />
  56. </div>
  57. </template>
  58. <script>
  59. import { EntityIndex } from 'quasar-crud'
  60. import ShamsiDate from 'src/assets/ShamsiDate.js'
  61. import { APIGateway } from 'src/api/APIGateway.js'
  62. import { Classroom } from 'src/models/Classroom.js'
  63. import { mixinAuthData } from 'src/mixin/Mixins.js'
  64. import { FormBuilderAssist } from 'quasar-form-builder'
  65. export default {
  66. name: 'AdminEventTestSetIndex',
  67. components: {
  68. EntityIndex
  69. },
  70. mixins: [mixinAuthData],
  71. data () {
  72. return {
  73. mounted: false,
  74. loading: false,
  75. classroom: new Classroom(),
  76. dropClassroomByAdminLoading: false,
  77. exportReportLoading: false,
  78. testSetListInputs: [
  79. { type: 'hidden', name: 'type', value: 'QUESTIONNAIRE' }
  80. ],
  81. testSetListApi: APIGateway.testSet.APIAdresses.base,
  82. testSetListTable: {
  83. columns: [
  84. {
  85. name: 'number',
  86. required: true,
  87. label: 'شماره',
  88. align: 'left',
  89. field: () => ''
  90. },
  91. {
  92. name: 'id',
  93. required: true,
  94. label: 'شناسه',
  95. align: 'left',
  96. field: row => row.id
  97. },
  98. {
  99. name: 'title',
  100. required: true,
  101. label: 'عنوان پرسشنامه',
  102. align: 'left',
  103. field: row => row.title
  104. },
  105. {
  106. name: 'test_set_questions.length',
  107. required: true,
  108. label: 'تعداد سوالات',
  109. align: 'left',
  110. field: row => row.test_set_questions.length
  111. },
  112. {
  113. name: 'beginning_time',
  114. required: true,
  115. label: 'تاریخ ایجاد',
  116. align: 'left',
  117. field: row => row.creation_time ? ShamsiDate.getDateTime(row.creation_time) : '-'
  118. },
  119. {
  120. name: 'creator_info',
  121. required: true,
  122. label: 'ایجاد کننده',
  123. align: 'left',
  124. field: row => row.creator_info.firstname + ' ' + row.creator_info.lastname
  125. },
  126. {
  127. name: 'actions',
  128. required: true,
  129. label: 'انتخاب',
  130. align: 'left',
  131. field: ''
  132. }
  133. ]
  134. },
  135. testSetListTableKeys: {
  136. data: 'results',
  137. total: 'count',
  138. currentPage: 'current',
  139. perPage: 'per_page',
  140. pageKey: 'page'
  141. }
  142. }
  143. },
  144. mounted () {
  145. this.setMembersListActionBtn()
  146. FormBuilderAssist.setAttributeByName(this.testSetListInputs, 'leader', 'value', this.user.id)
  147. this.mounted = true
  148. },
  149. methods: {
  150. setMembersListActionBtn () {
  151. FormBuilderAssist.setAttributeByName(this.testSetListInputs, 'btn', 'atClick', this.searchMembersList)
  152. },
  153. selectTestSet () {
  154. // this.loading = true
  155. // APIGateway.test.createTestForEvent (testTitle, eventId, tstSetId)
  156. // .then(()=>{
  157. // this.loading = false
  158. // })
  159. },
  160. searchMembersList () {
  161. this.$refs.testSetList.search()
  162. }
  163. }
  164. }
  165. </script>