class-table.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <div>
  3. <el-table
  4. :data="list"
  5. row-key="studentId"
  6. ref="table"
  7. @selection-change="handleSelectionChange"
  8. style="width: 100%"
  9. >
  10. <el-table-column
  11. label="选择"
  12. type="selection"
  13. :reserve-selection="true"
  14. width="100"
  15. v-if="type != '2'"
  16. >
  17. </el-table-column>
  18. <el-table-column
  19. label="组合"
  20. prop="groupName"
  21. v-if="type != '1'"
  22. >
  23. </el-table-column>
  24. <el-table-column
  25. label="原班级"
  26. prop="originalClassName"
  27. v-if="type != '1'"
  28. >
  29. </el-table-column>
  30. <el-table-column
  31. :label="type == 1 ? '班级' : '新班级'"
  32. prop="className"
  33. >
  34. </el-table-column>
  35. <el-table-column
  36. label="姓名"
  37. prop="name"
  38. >
  39. </el-table-column>
  40. <el-table-column
  41. label="性别"
  42. prop="sex"
  43. >
  44. </el-table-column>
  45. <el-table-column
  46. label="班级排名"
  47. prop="rankInClass"
  48. v-if="type != '1'"
  49. >
  50. </el-table-column>
  51. <el-table-column
  52. label="年级排名"
  53. prop="rankInGrade"
  54. >
  55. </el-table-column>
  56. </el-table>
  57. <!-- <mx-table row-key="studentId" :reserveSelection="true" :propDefines="propDefines" :rows="list" @selection-change="handleSelectionChange">-->
  58. <!-- </mx-table>-->
  59. <!-- 操作 确认和分页-->
  60. <pagination class="mt10" :total="pageForm.total" :autoScroll="false" @pagination="onChangePage"
  61. :page.sync="pageForm.pageNum"
  62. :limit.sync="pageForm.pageSize"
  63. ></pagination>
  64. </div>
  65. </template>
  66. <script>
  67. export default {
  68. props: {
  69. type: {
  70. String: '', // 1 用于class-adjust 2 用于完成分班展示
  71. default: '1'
  72. },
  73. list: {
  74. required: true,
  75. type: Array,
  76. default: () => []
  77. },
  78. pageForm: {
  79. type: Object,
  80. default: () => {
  81. return {
  82. pageSize: 10,
  83. pageNum: 1,
  84. total: 0
  85. }
  86. }
  87. }
  88. },
  89. data() {
  90. return {
  91. propDefines: {
  92. selection: {
  93. label: '选择',
  94. type: 'selection',
  95. hidden: this.type == '2'
  96. },
  97. groupName: {
  98. label: '组合',
  99. hidden: this.type == '1'
  100. },
  101. className: {
  102. label: '班级'
  103. },
  104. name: {
  105. label: '姓名'
  106. },
  107. sex: {
  108. label: '性别'
  109. },
  110. rankInGroup: {
  111. label: '班级排名'
  112. },
  113. rankInGrade: {
  114. label: '年级排名',
  115. hidden: this.type == '1'
  116. }
  117. },
  118. selected: []
  119. }
  120. },
  121. computed: {},
  122. methods: {
  123. clearSelection() {
  124. this.$refs.table.clearSelection()
  125. },
  126. onChangePage(page) {
  127. this.pageForm.pageSize = page.limit
  128. this.pageForm.pageNum = page.page
  129. this.$emit(`update:${this.pageForm.paramsName}`, this.pageForm)
  130. // this.getBatchList();
  131. },
  132. handleSelectionChange(row) {
  133. this.selected = row
  134. this.$emit('confirm', this.selected)
  135. }
  136. }
  137. }
  138. </script>
  139. <style scoped>
  140. .tmp {
  141. display: flex;
  142. justify-content: flex-end;
  143. align-items: center;
  144. margin: 10px 0;
  145. }
  146. </style>