index.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <div class="data_body">
  3. <div style="width: 100%; height: 100%">
  4. <el-table :data="tableData" style="width: 100%" :header-cell-style="{ background: '#E0EAFB' }"
  5. :row-class-name="tableRowClassName">
  6. <el-table-column label="排行" min-width="50" align="center">
  7. <template slot-scope="scope">{{ scope.$index + 1 }}</template>
  8. </el-table-column>
  9. <el-table-column prop="name" label="类别名称" min-width="80" align="center">
  10. </el-table-column>
  11. <el-table-column prop="sum" label="课程数量" min-width="80" align="center">
  12. </el-table-column>
  13. </el-table>
  14. </div>
  15. </div>
  16. </template>
  17. <script>
  18. export default {
  19. props: {
  20. courseNumberArray: {
  21. type: Array,
  22. },
  23. },
  24. data() {
  25. return {
  26. tableData: [
  27. // { rank: "1", name: "一年级", sum: "2356" },
  28. // { rank: "2", name: "二年级", sum: "2256" },
  29. // { rank: "3", name: "三年级", sum: "2156" },
  30. // { rank: "4", name: "四年级", sum: "1356" },
  31. // { rank: "5", name: "五年级", sum: "1256" },
  32. // { rank: "6", name: "六年级", sum: "1056" },
  33. ],
  34. };
  35. },
  36. methods: {
  37. tableRowClassName({ row, rowIndex }) {
  38. if ((rowIndex + 1) % 2 === 0) {
  39. return "even_row";
  40. } else {
  41. return "";
  42. }
  43. },
  44. setArray(array){
  45. this.tableData = []
  46. for(var i = 0;i<array.length;i++){
  47. this.tableData.push({
  48. sum:array[i].course,
  49. name:array[i].name
  50. })
  51. }
  52. this.tableData = this.tableData.sort(function(a,b){
  53. return b.sum - a.sum;
  54. })
  55. }
  56. },
  57. watch: {
  58. courseNumberArray: {
  59. immediate: true,
  60. deep: true,
  61. handler(newValue, oldValue) {
  62. this.setArray(newValue)
  63. this.$forceUpdate();
  64. },
  65. },
  66. },
  67. mounted() {
  68. this.setArray(this.courseNumberArray)
  69. },
  70. };
  71. </script>
  72. <style scoped>
  73. .el-table>>>.even_row {
  74. background-color: #f2f7ff !important;
  75. }
  76. .data_body {
  77. height: 100%;
  78. /* display: flex; */
  79. position: relative;
  80. border-radius: 5px;
  81. /* border: 1px solid #eee; */
  82. margin: 0 auto;
  83. box-sizing: border-box;
  84. padding: 0;
  85. width: 95%;
  86. background: #fff;
  87. }
  88. </style>