DataModal.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <el-dialog
  3. :visible="visible"
  4. :append-to-body="false"
  5. :close-on-press-escape="true"
  6. :show-close="false"
  7. destroy-on-close
  8. width="100%"
  9. custom-class="data-modal"
  10. @close="closeModal"
  11. >
  12. <div style="display: flex;height: 100%;overflow: hidden;padding: 8px">
  13. <div style="height: 100%;display: flex;flex-direction: column;width: 514px;">
  14. <data-box type="workshop" :title-name="$store.state.company.workshop" style="flex: 1;">
  15. <realtime-table ref="realtimeTable"/>
  16. </data-box>
  17. <data-box type="warn" title-name="报警信息" style="margin-top: 8px;height: 370px;">
  18. <data-modal-warn ref="dataModalWarn"/>
  19. </data-box>
  20. </div>
  21. <div style="flex: 1;margin-left: 8px;">
  22. <data-box type="realtime" title-name="实时数据">
  23. <realtime-line v-if="visible" ref="realtimeLine"/>
  24. </data-box>
  25. </div>
  26. <div style="width: 350px;margin-left: 8px;">
  27. <data-box type="analysis" title-name="设备运行分析">
  28. <device-analysis ref="deviceAnalysis"/>
  29. </data-box>
  30. </div>
  31. </div>
  32. </el-dialog>
  33. </template>
  34. <script>
  35. import DataBox from '@/components/DataModal/common/DataBox'
  36. import JgChart from '@/components/JgChart'
  37. import RealtimeTable from '@/components/DataModal/common/RealtimeTable'
  38. import RealtimeLine from '@/components/DataModal/common/RealtimeLine'
  39. import DeviceAnalysis from '@/components/DataModal/common/DeviceAnalysis'
  40. import DataModalWarn from '@/components/DataModal/common/DataModalWarn'
  41. export default {
  42. name: 'DataModal',
  43. components: { DataModalWarn, DeviceAnalysis, RealtimeTable, JgChart, DataBox, RealtimeLine },
  44. data() {
  45. return {
  46. visible: false,
  47. }
  48. },
  49. methods: {
  50. showModal() {
  51. this.visible = true
  52. this.fetchData()
  53. },
  54. closeModal() {
  55. this.visible = false
  56. this.$emit('closeModal')
  57. },
  58. fetchData() {
  59. this.$nextTick(() => {
  60. this.$refs.realtimeTable.getTableData()
  61. this.$refs.realtimeLine.initData()
  62. this.$refs.deviceAnalysis.getCollectEntity()
  63. })
  64. },
  65. },
  66. }
  67. </script>
  68. <style lang="less" scoped>
  69. /deep/ .data-modal {
  70. height: 100%;
  71. background: #ebebeb !important;
  72. display: flex;
  73. flex-direction: column;
  74. .el-dialog__header {
  75. background-color: #04091f;
  76. user-select: none;
  77. padding: 0;
  78. }
  79. .el-dialog__body {
  80. flex: 1;
  81. padding: 0;
  82. color: #fff;
  83. font-size: 14px;
  84. word-break: break-all;
  85. background-color: #04091f;
  86. display: flex;
  87. flex-direction: column;
  88. }
  89. }
  90. </style>