index.vue 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <template>
  2. <el-card>
  3. <el-row>故障进度</el-row>
  4. <el-table :data="visibleItems" style="background-color: transparent">
  5. <el-table-column label="机号" align="center" prop="airNumber" />
  6. <el-table-column label="机型" align="center" prop="airplaneModel" />
  7. <el-table-column label="专业" align="center" prop="major" />
  8. <el-table-column label="发现日期" align="center" prop="discoveryDate" />
  9. <el-table-column label="倒计时时间" align="center" prop="countDown">
  10. <template slot-scope="scope">
  11. <span v-if="!scope.row ||scope.row.countDown > 15" style="color:green"> {{ scope.row ? scope.row.countDown : '' }} </span>
  12. <span v-else-if="scope.row.countDown < 0" style="color:red"> {{ scope.row.countDown }} </span>
  13. <span v-else style="color:yellow"> {{ scope.row.countDown }} </span>
  14. </template>
  15. </el-table-column>
  16. </el-table>
  17. </el-card>
  18. </template>
  19. <script>
  20. export default {
  21. name: "BreakdownSchedule",
  22. data() {
  23. return {
  24. startIndex: 0,
  25. numItems: 3,
  26. breakdownList:[
  27. {
  28. airNumber:1,
  29. airplaneModel:1,
  30. major:1,
  31. discoveryDate:"2023-04-01",
  32. countDown:1,
  33. },
  34. {
  35. airNumber:2,
  36. airplaneModel:2,
  37. major:2,
  38. discoveryDate:"2023-04-01",
  39. countDown:2,
  40. },
  41. {
  42. airNumber:3,
  43. airplaneModel:3,
  44. major:3,
  45. discoveryDate:"2023-04-01",
  46. countDown:3,
  47. },
  48. {
  49. airNumber:4,
  50. airplaneModel:4,
  51. major:4,
  52. discoveryDate:"2023-04-01",
  53. countDown:4,
  54. },
  55. {
  56. airNumber:5,
  57. airplaneModel:5,
  58. major:5,
  59. discoveryDate:"2023-04-01",
  60. countDown:5,
  61. },
  62. ],
  63. }
  64. },
  65. computed: {
  66. visibleItems() {
  67. let v = [];
  68. let itemsLength = this.breakdownList.length
  69. for (let i = 0; i < this.numItems; i++) {
  70. if ((i + this.startIndex) < itemsLength) {
  71. v.push(this.breakdownList[i + this.startIndex])
  72. } else {
  73. v.push(this.breakdownList[i + this.startIndex - itemsLength])
  74. }
  75. }
  76. return v
  77. }
  78. },
  79. mounted() {
  80. this.interval = setInterval(() => {
  81. this.startIndex++
  82. if (this.startIndex >= this.breakdownList.length) {
  83. this.startIndex = 0
  84. }
  85. }, 3000)
  86. },
  87. beforeDestroy() {
  88. clearInterval(this.interval)
  89. }
  90. }
  91. </script>
  92. <style scoped>
  93. .el-table {
  94. color:red
  95. }
  96. </style>