LabStatus.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div class="lab-status-page">
  3. <ScreenHeader />
  4. <div class="page-body">
  5. <!-- 左列 -->
  6. <div class="col col-left">
  7. <BasicStats class="section s-basic" />
  8. <SafetyLevel class="section s-safety" />
  9. <PersonStats class="section s-person" />
  10. </div>
  11. <!-- 中列 -->
  12. <div class="col col-center">
  13. <videoStats class="section s-env"></videoStats>
  14. <div class="s-risk">
  15. <EnvSensing class="section s-env" style="margin-right:15px;" />
  16. <RiskWarning class="section s-env" />
  17. </div>
  18. </div>
  19. <!-- 右列 -->
  20. <div class="col col-right">
  21. <DeviceStats class="section " />
  22. <EquipmentStats class="section" />
  23. <ChemicalsStats class="section" />
  24. </div>
  25. </div>
  26. </div>
  27. </template>
  28. <script>
  29. import ScreenHeader from '@/components/Header.vue'
  30. import BasicStats from '@/components/LabStats/BasicStats.vue'
  31. import SafetyLevel from '@/components/LabStats/SafetyLevel.vue'
  32. import PersonStats from '@/components/LabStats/PersonStats.vue'
  33. import EnvSensing from '@/components/LabStats/EnvSensing.vue'
  34. import RiskWarning from '@/components/LabStats/RiskWarning.vue'
  35. import DeviceStats from '@/components/LabStats/DeviceStats.vue'
  36. import EquipmentStats from '@/components/LabStats/EquipmentStats.vue'
  37. import videoStats from '@/components/LabStats/videoStats.vue'
  38. import ChemicalsStats from '@/components/LabStats/ChemicalsStats.vue'
  39. export default {
  40. name: 'LabStatus',
  41. components: {
  42. ScreenHeader, BasicStats, SafetyLevel, PersonStats,
  43. EnvSensing, RiskWarning, DeviceStats, EquipmentStats,
  44. videoStats, ChemicalsStats
  45. }
  46. }
  47. </script>
  48. <style lang="scss" scoped>
  49. .lab-status-page {
  50. width: 1920px;
  51. height: 1080px;
  52. display: flex;
  53. flex-direction: column;
  54. overflow: hidden;
  55. position: relative;
  56. }
  57. .page-body {
  58. flex: 1;
  59. display: flex;
  60. gap: 14px;
  61. padding: 14px;
  62. overflow: hidden;
  63. }
  64. .col {
  65. display: flex;
  66. flex-direction: column;
  67. gap: 14px;
  68. }
  69. .col-left, .col-right {
  70. width: 440px;
  71. flex-shrink: 0;
  72. }
  73. .col-center {
  74. flex: 1;
  75. min-width: 0;
  76. }
  77. // 左列: 基本情况 260px固定, 分级flex:1, 人数260px固定
  78. .s-basic { height: 260px; flex-shrink: 0; }
  79. .s-safety { flex: 1; }
  80. .s-person { height: 260px; flex-shrink: 0; }
  81. // 中列: 环境感知flex:1, 风险预警320px固定
  82. .s-env { flex: 1; }
  83. .s-risk { height: 320px; flex-shrink: 0;display: flex; }
  84. // 右列: 设备统计和设备分类各一半,化学品固定高度
  85. .s-device { flex: 1; }
  86. .s-equip { flex: 1; }
  87. .col-right .section:last-child { height: 272px; flex-shrink: 0; }
  88. </style>