modelTrainLog.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <v-navigation-drawer
  3. v-model="drawer"
  4. absolute
  5. right
  6. temporary
  7. overlay-opacity="0"
  8. width="700px"
  9. >
  10. <div class="pa-3 white sticky d-flex align-center justify-end">
  11. <DatePicker
  12. v-model="date"
  13. ref="picker"
  14. :option="{
  15. range: true,
  16. placeholder: '请选择时间',
  17. type: 'date',
  18. clearable: false
  19. }"
  20. @change="init"
  21. ></DatePicker>
  22. <!-- <v-btn rounded color="primary" class="ml-3 half-button">查 询</v-btn> -->
  23. </div>
  24. <v-timeline
  25. :reverse="false"
  26. dense
  27. >
  28. <v-timeline-item
  29. v-for="(item, index) in items"
  30. :key="index"
  31. :color="item.level.toLowerCase()"
  32. >
  33. <div>{{ item.timestamp }} </div>
  34. <div :class="{'red--text' : item.level === 'ERROR'}">{{ item.message }}</div>
  35. </v-timeline-item>
  36. </v-timeline>
  37. </v-navigation-drawer>
  38. </template>
  39. <script>
  40. import DatePicker from '@/components/Form/datePicker.vue'
  41. import {
  42. getTasksLog
  43. } from '@/api/dataChart'
  44. export default {
  45. name: 'modelTrainLog',
  46. components: {
  47. DatePicker
  48. },
  49. data () {
  50. return {
  51. drawer: false,
  52. date: null,
  53. items: [],
  54. id: null
  55. }
  56. },
  57. methods: {
  58. async open (id) {
  59. this.id = id
  60. this.drawer = true
  61. this.init()
  62. },
  63. async init () {
  64. try {
  65. const { data } = await getTasksLog(this.id, {})
  66. this.items = data.logs
  67. } catch (error) {
  68. this.$snackbar.error(error)
  69. }
  70. }
  71. }
  72. }
  73. </script>
  74. <style lang="scss" scoped>
  75. .sticky {
  76. position: sticky;
  77. top: 0;
  78. z-index: 3;
  79. }
  80. </style>