From fe2b697a063ab9898af5ec0b49c30ad20274d56e Mon Sep 17 00:00:00 2001 From: gjj <Ganjj@probim.com.cn> Date: Tue, 25 Feb 2025 11:42:12 +0800 Subject: [PATCH] 调整样式,接口对接 --- src/views/EquipmentView.vue | 1052 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 552 insertions(+), 500 deletions(-) diff --git a/src/views/EquipmentView.vue b/src/views/EquipmentView.vue index a499a46..b036fd5 100644 --- a/src/views/EquipmentView.vue +++ b/src/views/EquipmentView.vue @@ -1,618 +1,670 @@ <template> - <div class="equipment-container"> - <div class="top-section mb-[20px]"> - <div - class="w-full h-[4vh] mb-[1vh]" - :style="{ +<div class="equipment-container"> + <div class="top-nav w-full mb-[1vh]" :style="{ backgroundImage: `url(${titleImage})`, backgroundRepeat: 'no-repeat', backgroundPosition: 'center center', backgroundSize: '100% 100%' - }" - > - </div> - <div class="stats-grid" :style="sectionStyle"> - <div class="stat-item mb-[10px]"> - <div class="stat-info"> - <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/shishirenshu.png" alt=""> - <span class="satalabel ml-[8px]">实时人数</span> - </div> - <div class="value text-[#00FFFF] text-[28px] font-bold">62</div> - </div> - <div class="stat-item mb-[10px]"> - <div class="stat-info"> - <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/people.png" alt=""> - <span class="satalabel ml-[8px]">今日累计/人次</span> - </div> - <div class="value text-[#FFD500] text-[28px] font-bold">62</div> - </div> - <div class="stat-item"> - <div class="stat-info"> - <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/zaigang.png" alt=""> - <span class="satalabel ml-[8px]">在岗总数</span> - </div> - <div class="value text-[#FFD500] text-[28px] font-bold">62</div> - </div> - </div> - </div> + }"> + </div> + <div class="bottom-nav"> + <div class="top-section mb-[20px]"> - <div class="middle-section mb-[20px]"> - <div - class="w-full h-[4vh] mb-[1vh]" - :style="{ + <div class="stats-grid" :style="sectionStyle"> + <div class="stat-item mb-[10px]"> + <div class="stat-info"> + <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/shishirenshu.png" alt=""> + <span class="satalabel ml-[8px]">实时人数</span> + </div> + <div class="value text-[#00FFFF] text-[28px] font-bold">62</div> + </div> + <div class="stat-item mb-[10px]"> + <div class="stat-info"> + <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/people.png" alt=""> + <span class="satalabel ml-[8px]">今日累计/人次</span> + </div> + <div class="value text-[#FFD500] text-[28px] font-bold">62</div> + </div> + <div class="stat-item"> + <div class="stat-info"> + <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/zaigang.png" alt=""> + <span class="satalabel ml-[8px]">在岗总数</span> + </div> + <div class="value text-[#FFD500] text-[28px] font-bold">62</div> + </div> + </div> + </div> + + <div class="middle-section mb-[20px]"> + <div class="w-full h-[4vh] mb-[1vh]" :style="{ backgroundImage: `url(${middleImage})`, backgroundRepeat: 'no-repeat', backgroundPosition: 'center center', backgroundSize: '100% 100%' - }" - > - </div> - <div class="equipment-status" :style="sectionStyle"> - <div - class="w-full h-[30px] mb-[10px]" - :style="{ + }"> + </div> + <div class="equipment-status" :style="sectionStyle"> + <div class="w-full h-[30px] mb-[10px]" :style="{ backgroundImage: `url(${bgImage})`, backgroundRepeat: 'no-repeat', backgroundPosition: 'center center', backgroundSize: '100% 100%' - }" - > - <div class="text-white text-[14px] ml-[40px] leading-[35px]">升降机监控</div> - </div> - <div class="status-circles"> - <template v-for="item in circleItems"> - <div class="circle-item flex flex-col items-center justify-center" :key="item.id"> - <div class="progress-circle"> - <V2Echarts :idName="item.id" :options="item.options" /> - <div class="percentage">{{item.percentage}}%</div> - </div> - <div class="label mt-[5px] flex flex-row items-center justify-center"> - <div class="text-[12px] text-[#FFFFFF] mr-[12px]">{{item.name}}</div> - <div class="text-[24px] text-[#FFD500]">{{item.value}}</div> - </div> - </div> - </template> - </div> - <div class="control-buttons mt-[30px]"> - <button class="control-btn" :class="{ 'active': currentTab === '塔吊监控' }" @click="handleControlBtnClick('塔吊监控')">塔吊监控</button> - <button class="control-btn" :class="{ 'active': currentTab === '升降机监控' }" @click="handleControlBtnClick('升降机监控')">升降机监控</button> - </div> - <div class="divider"></div> - <div class="progress-bar"> - <div class="label">运行设备总数</div> - <div class="bar flex items-center"> - <div class="progress relative w-[80%] h-[24px]"> - <div class="progress-inner" :style="{ width: `${deviceOnline / deviceTotal * 100}%` }"></div> - <div class="progress-blocks"> - <div v-for="n in 28" :key="n" - class="block" - :class="{ 'active': (n-1)/28 * 100 <= (deviceOnline / deviceTotal * 100) }" - ></div> - </div> - </div> - <div class="count-container ml-[25px]"> - <span class="text-[#FFBF00] text-[24px]">{{deviceOnline}}</span> - <span class="text-white text-[24px]">/</span> - <span class="text-white text-[24px]">{{deviceTotal}}</span> - </div> - </div> - </div> - </div> + }"> + <div class="text-white text-[14px] ml-[40px] leading-[35px]">升降机监控</div> </div> + <div class="status-circles"> + <template v-for="item in circleItems"> + <div class="circle-item flex flex-col items-center justify-center" :key="item.id"> + <div class="progress-circle"> + <V2Echarts :idName="item.id" :options="item.options" /> + <div class="percentage">{{item.percentage}}%</div> + </div> + <div class="label mt-[5px] flex flex-row items-center justify-center"> + <div class="text-[12px] text-[#FFFFFF] mr-[12px]">{{item.name}}</div> + <div class="text-[24px] text-[#FFD500]">{{item.value}}</div> + </div> + </div> + </template> + </div> + <div class="control-buttons"> + <button class="control-btn" :class="{ 'active': currentTab === '塔吊监控' }" @click="handleControlBtnClick('塔吊监控')">塔吊监控</button> + <button class="control-btn" :class="{ 'active': currentTab === '升降机监控' }" @click="handleControlBtnClick('升降机监控')">升降机监控</button> + </div> + <div class="divider"></div> + <div class="progress-bar"> + <div class="label">运行设备总数</div> + <div class="bar flex items-center"> + <div class="progress relative w-[80%] h-[24px]"> + <div class="progress-inner" :style="{ width: `${deviceOnline / deviceTotal * 100}%` }"></div> + <div class="progress-blocks"> + <div v-for="n in 28" :key="n" class="block" :class="{ 'active': (n-1)/28 * 100 <= (deviceOnline / deviceTotal * 100) }"></div> + </div> + </div> + <div class="count-container ml-[25px]"> + <span class="text-[#FFBF00] text-[24px]">{{deviceOnline}}</span> + <span class="text-white text-[24px]">/</span> + <span class="text-white text-[24px]">{{deviceTotal}}</span> + </div> + </div> + </div> + </div> + </div> - <div class="bottom-section"> - <div - class="w-full h-[4vh] mb-[1vh]" - :style="{ + <div class="bottom-section"> + <div class="w-full h-[4vh] mb-[1vh]" :style="{ backgroundImage: `url(${bottomImage})`, backgroundRepeat: 'no-repeat', backgroundPosition: 'center center', backgroundSize: '100% 100%' - }" - > - </div> - <div class="environment-grid" :style="sectionStyle"> - <div class="env-item"> - <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqiwendu.png" alt=""> - <div class="env-info"> - <span class="envlabel">大气温度</span> - <span class="envvalue" :style="enviorStyle">5°C</span> - </div> - </div> - <div class="env-item"> - <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqishidu.png" alt=""> - <div class="env-info"> - <span class="envlabel">大气湿度</span> - <span class="envvalue" :style="enviorStyle">22.9%</span> - </div> - </div> - <div class="env-item"> - <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM2.png" alt=""> - <div class="env-info"> - <span class="envlabel">PM2.5</span> - <span class="envvalue" :style="enviorStyle">10 μg/m³</span> - </div> - </div> - <div class="env-item"> - <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM10.png" alt=""> - <div class="env-info"> - <span class="envlabel">PM10</span> - <span class="envvalue" :style="enviorStyle">13 μg/m³</span> - </div> - </div> - <div class="env-item"> - <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengli.png" alt=""> - <div class="env-info"> - <span class="envlabel">风力</span> - <span class="envvalue" :style="enviorStyle">3级</span> - </div> - </div> - <div class="env-item"> - <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengxiang.png" alt=""> - <div class="env-info"> - <span class="envlabel">风向</span> - <span class="envvalue" :style="enviorStyle">北风</span> - </div> - </div> - </div> + }"> + </div> + <div class="environment-grid" :style="sectionStyle"> + <div class="env-item"> + <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqiwendu.png" alt=""> + <div class="env-info"> + <span class="envlabel">大气温度</span> + <span class="envvalue" :style="enviorStyle">5°C</span> + </div> </div> + <div class="env-item"> + <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqishidu.png" alt=""> + <div class="env-info"> + <span class="envlabel">大气湿度</span> + <span class="envvalue" :style="enviorStyle">22.9%</span> + </div> + </div> + <div class="env-item"> + <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM2.png" alt=""> + <div class="env-info"> + <span class="envlabel">PM2.5</span> + <span class="envvalue" :style="enviorStyle">10 μg/m³</span> + </div> + </div> + <div class="env-item"> + <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM10.png" alt=""> + <div class="env-info"> + <span class="envlabel">PM10</span> + <span class="envvalue" :style="enviorStyle">13 μg/m³</span> + </div> + </div> + <div class="env-item"> + <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengli.png" alt=""> + <div class="env-info"> + <span class="envlabel">风力</span> + <span class="envvalue" :style="enviorStyle">3级</span> + </div> + </div> + <div class="env-item"> + <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengxiang.png" alt=""> + <div class="env-info"> + <span class="envlabel">风向</span> + <span class="envvalue" :style="enviorStyle">北风</span> + </div> + </div> + </div> </div> + </div> +</div> </template> <script> import V2Echarts from '@/components/V2Echarts.vue' export default { - name: 'EquipmentView', - components: { - V2Echarts - }, - data() { - return { - backgroundImage: new URL('@/assets/images/backgrounds/cover_bg.png', import.meta.url).href, - titleImage: new URL('@/assets/images/titles/renyuan.png', import.meta.url).href, - middleImage: new URL('@/assets/images/titles/shebei.png', import.meta.url).href, - bottomImage: new URL('@/assets/images/titles/huanjing.png', import.meta.url).href, - bgImage: new URL('@/assets/images/titles/title_second.png', import.meta.url).href, - enviorImage: new URL('@/assets/images/titles/wendu_bg.png', import.meta.url).href, - deviceOnline: 1, - deviceTotal: 27, - currentTab: '塔吊监控', - circleItems: [ - { - id: 'zaixianChartBox', - name: '总在线', - value: 22, - percentage: 81.5, - options: { - tooltip: { - trigger: 'item', - }, - legend: { - itemWidth: 8, - itemHeight: 8, - top: '5%', - left: 'center', - show: false, - }, - series: [ - { - type: 'pie', - radius: ['70%', '80%'], - center: ['50%', '50%'], - avoidLabelOverlap: false, - hoverAnimation: false, - startAngle: 90, - itemStyle: { - normal: { - label: { - show: false, - }, - labelLine: { - show: false, - }, - shadowBlur: 40, - borderWidth: 5, - shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 - }, - }, - data: [ - { value: 100, name: '', itemStyle: { color: '#234E84' } }, - ], - }, - { - type: 'pie', - radius: ['70%', '100%'], - center: ['50%', '50%'], - avoidLabelOverlap: false, - hoverAnimation: false, - startAngle: 90, - itemStyle: { - normal: { - label: { - show: false, - }, - labelLine: { - show: false, - }, - shadowBlur: 40, - borderWidth: 10, - shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 - }, - }, - data: [ - { value: 20, name: '主隧洞掘进', itemStyle: { color: '#00FFFF' } }, - { value: 80, name: '', itemStyle: { color: 'transparent' } }, - ], - }, - - ], - } + name: 'EquipmentView', + components: { + V2Echarts + }, + data() { + return { + backgroundImage: new URL('@/assets/images/backgrounds/cover_bg.png', + import.meta.url).href, + titleImage: new URL('@/assets/images/titles/renyuan.png', + import.meta.url).href, + middleImage: new URL('@/assets/images/titles/shebei.png', + import.meta.url).href, + bottomImage: new URL('@/assets/images/titles/huanjing.png', + import.meta.url).href, + bgImage: new URL('@/assets/images/titles/title_second.png', + import.meta.url).href, + enviorImage: new URL('@/assets/images/titles/wendu_bg.png', + import.meta.url).href, + deviceOnline: 1, + deviceTotal: 27, + currentTab: '塔吊监控', + circleItems: [{ + id: 'zaixianChartBox', + name: '总在线', + value: 22, + percentage: 81.5, + options: { + tooltip: { + trigger: 'item', + }, + legend: { + itemWidth: 8, + itemHeight: 8, + top: '5%', + left: 'center', + show: false, + }, + series: [{ + type: 'pie', + radius: ['70%', '80%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + startAngle: 90, + itemStyle: { + normal: { + label: { + show: false, + }, + labelLine: { + show: false, + }, + shadowBlur: 40, + borderWidth: 5, + shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 + }, }, - { - id: 'lixianChartBox', - name: '总离线', - value: 5, - percentage: 81.5, - options: { - tooltip: { - trigger: 'item', - }, - legend: { - itemWidth: 8, - itemHeight: 8, - top: '5%', - left: 'center', - show: false, - }, - series: [ - { - type: 'pie', - radius: ['70%', '80%'], - center: ['50%', '50%'], - avoidLabelOverlap: false, - hoverAnimation: false, - startAngle: 90, - itemStyle: { - normal: { - label: { - show: false, - }, - labelLine: { - show: false, - }, - shadowBlur: 40, - borderWidth: 5, - shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 - }, - }, - data: [ - { value: 100, name: '', itemStyle: { color: '#234E84' } }, - ], - }, - { - type: 'pie', - radius: ['70%', '100%'], - center: ['50%', '50%'], - avoidLabelOverlap: false, - hoverAnimation: false, - startAngle: 90, - itemStyle: { - normal: { - label: { - show: false, - }, - labelLine: { - show: false, - }, - shadowBlur: 40, - borderWidth: 10, - shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 - }, - }, - data: [ - { value: 20, name: '主隧洞掘进', itemStyle: { color: '#00FFFF' } }, - { value: 80, name: '', itemStyle: { color: 'transparent' } }, - ], - }, - - ], - } + data: [{ + value: 100, + name: '', + itemStyle: { + color: '#234E84' + } + }, ], + }, + { + type: 'pie', + radius: ['70%', '100%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + startAngle: 90, + itemStyle: { + normal: { + label: { + show: false, + }, + labelLine: { + show: false, + }, + shadowBlur: 40, + borderWidth: 10, + shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 + }, }, - { - id: 'baojingChartBox', - name: '总报警', - value: 0, - percentage: 81.5, - options: { - tooltip: { - trigger: 'item', - }, - legend: { - itemWidth: 8, - itemHeight: 8, - top: '5%', - left: 'center', - show: false, - }, - series: [ - { - type: 'pie', - radius: ['70%', '80%'], - center: ['50%', '50%'], - avoidLabelOverlap: false, - hoverAnimation: false, - startAngle: 90, - itemStyle: { - normal: { - label: { - show: false, - }, - labelLine: { - show: false, - }, - shadowBlur: 40, - borderWidth: 5, - shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 - }, - }, - data: [ - { value: 100, name: '', itemStyle: { color: '#234E84' } }, - ], - }, - { - type: 'pie', - radius: ['70%', '100%'], - center: ['50%', '50%'], - avoidLabelOverlap: false, - hoverAnimation: false, - startAngle: 90, - itemStyle: { - normal: { - label: { - show: false, - }, - labelLine: { - show: false, - }, - shadowBlur: 40, - borderWidth: 10, - shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 - }, - }, - data: [ - { value: 20, name: '主隧洞掘进', itemStyle: { color: '#00FFFF' } }, - { value: 80, name: '', itemStyle: { color: 'transparent' } }, - ], - }, - ], + data: [{ + value: 20, + name: '主隧洞掘进', + itemStyle: { + color: '#00FFFF' } - } - ] + }, + { + value: 80, + name: '', + itemStyle: { + color: 'transparent' + } + }, + ], + }, + + ], + } + }, + { + id: 'lixianChartBox', + name: '总离线', + value: 5, + percentage: 81.5, + options: { + tooltip: { + trigger: 'item', + }, + legend: { + itemWidth: 8, + itemHeight: 8, + top: '5%', + left: 'center', + show: false, + }, + series: [{ + type: 'pie', + radius: ['70%', '80%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + startAngle: 90, + itemStyle: { + normal: { + label: { + show: false, + }, + labelLine: { + show: false, + }, + shadowBlur: 40, + borderWidth: 5, + shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 + }, + }, + data: [{ + value: 100, + name: '', + itemStyle: { + color: '#234E84' + } + }, ], + }, + { + type: 'pie', + radius: ['70%', '100%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + startAngle: 90, + itemStyle: { + normal: { + label: { + show: false, + }, + labelLine: { + show: false, + }, + shadowBlur: 40, + borderWidth: 10, + shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 + }, + }, + data: [{ + value: 20, + name: '主隧洞掘进', + itemStyle: { + color: '#00FFFF' + } + }, + { + value: 80, + name: '', + itemStyle: { + color: 'transparent' + } + }, + ], + }, + + ], + } + }, + { + id: 'baojingChartBox', + name: '总报警', + value: 0, + percentage: 81.5, + options: { + tooltip: { + trigger: 'item', + }, + legend: { + itemWidth: 8, + itemHeight: 8, + top: '5%', + left: 'center', + show: false, + }, + series: [{ + type: 'pie', + radius: ['70%', '80%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + startAngle: 90, + itemStyle: { + normal: { + label: { + show: false, + }, + labelLine: { + show: false, + }, + shadowBlur: 40, + borderWidth: 5, + shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 + }, + }, + data: [{ + value: 100, + name: '', + itemStyle: { + color: '#234E84' + } + }, ], + }, + { + type: 'pie', + radius: ['70%', '100%'], + center: ['50%', '50%'], + avoidLabelOverlap: false, + hoverAnimation: false, + startAngle: 90, + itemStyle: { + normal: { + label: { + show: false, + }, + labelLine: { + show: false, + }, + shadowBlur: 40, + borderWidth: 10, + shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影 + }, + }, + data: [{ + value: 20, + name: '主隧洞掘进', + itemStyle: { + color: '#00FFFF' + } + }, + { + value: 80, + name: '', + itemStyle: { + color: 'transparent' + } + }, + ], + }, + ], + } } - }, - computed: { - sectionStyle() { - return { - backgroundImage: `url(${this.backgroundImage})`, - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center center', - backgroundSize: '100% 100%' - } - }, - enviorStyle() { - return { - backgroundImage: `url(${this.enviorImage})`, - backgroundRepeat: 'no-repeat', - backgroundPosition: 'center center', - backgroundSize: '100% 100%' - } - } - }, - methods: { - handleControlBtnClick(tab) { - this.currentTab = tab; - }, - handleResize() { - if (this.myChart) { - this.myChart.resize() - } - }, + ] } + }, + computed: { + sectionStyle() { + return { + backgroundImage: `url(${this.backgroundImage})`, + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center center', + backgroundSize: '100% 100%' + } + }, + enviorStyle() { + return { + backgroundImage: `url(${this.enviorImage})`, + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center center', + backgroundSize: '100% 100%' + } + } + }, + methods: { + handleControlBtnClick(tab) { + this.currentTab = tab; + }, + handleResize() { + if (this.myChart) { + this.myChart.resize() + } + }, + } } </script> <style scoped> .equipment-container { - width: 100%; - height: calc(100vh - 100px); - color: white; + width: 100%; + display: flex; + flex-direction: column; + height: calc(100vh - 100px); + overflow: hidden; } - +.top-nav{ + height: 4vh; +} +.bottom-nav{ + flex: 1; +} .section-title { - font-size: 18px; - margin-bottom: 20px; - color: #fff; + font-size: 18px; + margin-bottom: 20px; + color: #fff; } .top-section { - width: 100%; + width: 100%; + height: calc(100% - 80%); } .middle-section { - width: 100%; + width: 100%; + height: 40%; } .bottom-section { - width: 100%; + width: 100%; + height: calc(100% - 20% - 43%); } .stats-grid { - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 20px 10px; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 20px 10px; } -.stat-item{ - width: 100%; - display: flex; - align-items: center; - justify-content: space-between; - padding: 20px 14px; - height: 52px; - background: linear-gradient( 270deg, rgba(48,104,165,0.1) 2%, #3068A5 100%); - border-radius: 2px; -} +.stat-item { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + padding: 20px 14px; + height: 52px; + background: linear-gradient(270deg, rgba(48, 104, 165, 0.1) 2%, #3068A5 100%); + border-radius: 2px; +} + .env-item { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - padding: 10px 14px; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 10px 14px; } .stat-info { - display: flex; - flex-direction: row; - align-items: left; + display: flex; + flex-direction: row; + align-items: left; } + .env-info { - display: flex; - flex-direction: column; - width: 70%; - height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 70%; + height: 95%; } -.satalabel{ - font-size: 16px; - color: #fff; + +.satalabel { + font-size: 16px; + color: #fff; } + .label { - font-size: 12px; - color: #fff; + font-size: 12px; + color: #fff; } + .envlabel { - font-size: 14px; - color: #C8C8C8; - margin-left: 20px; + font-size: 14px; + color: #C8C8C8; } .envvalue { - font-size: 16px; - color: #fff; - margin-top: 4px; - width: 100%; - height: 100%; - padding-left: 20px; + text-align: center; + font-size: 16px; + color: #fff; + margin-top: 4px; + width: 100%; + height: 100%; } .equipment-status { - padding: 20px 10px; + padding: 20px 10px; + height: calc(100% - 5vh); } .status-title { - font-size: 16px; - margin-bottom: 20px; + font-size: 16px; + margin-bottom: 20px; } .status-circles { - display: flex; - justify-content: space-around; - margin: 20px 0; + display: flex; + justify-content: space-around; + margin: 20px 0; } .progress-circle { - width: 80px; - height: 80px; - border-radius: 50%; - border: 4px solid #3068A5; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - position: relative; + width: 80px; + height: 80px; + border-radius: 50%; + border: 4px solid #3068A5; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: relative; } .percentage { - font-size: 12px; - color: #00ffff; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); + font-size: 12px; + color: #00ffff; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); } .environment-grid { - display: grid; - grid-template-columns: repeat(2, 1fr); + display: grid; + grid-template-columns: repeat(2, 1fr); + height: calc(100% - 5vh); } .control-buttons { - display: flex; - gap: 10px; - justify-content: center; + display: flex; + gap: 10px; + justify-content: center; } .control-btn { - padding: 8px 16px; - background: rgba(112,119,140,0.3); - border-radius: 2px; - border: 1px solid rgba(112,124,140,0.6); - color: #C8C8C8; - cursor: pointer; + padding: 8px 16px; + background: rgba(112, 119, 140, 0.3); + border-radius: 2px; + border: 1px solid rgba(112, 124, 140, 0.6); + color: #C8C8C8; + cursor: pointer; } .control-btn.active { - background: rgba(255,191,0,0.2); - border-radius: 2px; - border: 1px solid #FFBF00; - color: #fff; + background: rgba(255, 191, 0, 0.2); + border-radius: 2px; + border: 1px solid #FFBF00; + color: #fff; } .divider { - width: 100%; - height: 1px; - background: linear-gradient( 270deg, rgba(94,161,209,0.1) 0%, #4886BC 49%, rgba(48,104,165,0.1) 100%); - margin: 20px 0; + width: 100%; + height: 1px; + background: linear-gradient(270deg, rgba(94, 161, 209, 0.1) 0%, #4886BC 49%, rgba(48, 104, 165, 0.1) 100%); + margin: 20px 0; } -.progress-bar { - margin-top: 20px; -} + .bar { - width: 100%; + width: 100%; } .progress { - background: rgba(216,216,216,0.1); - border: 1px solid rgba(255,255,255,0.2); - overflow: hidden; + background: rgba(216, 216, 216, 0.1); + border: 1px solid rgba(255, 255, 255, 0.2); + overflow: hidden; } .progress-blocks { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - gap: 4px; - padding: 2px 4px; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + gap: 4px; + padding: 2px 4px; } .block { - flex: 1; - height: 100%; - background: rgba(216,216,216,0.1); + flex: 1; + height: 100%; + background: rgba(216, 216, 216, 0.1); } .block.active { - background: linear-gradient(180deg, #FFD500 0%, #FF9B00 100%); + background: linear-gradient(180deg, #FFD500 0%, #FF9B00 100%); } .progress-inner { - display: none; + display: none; } </style> -- Gitblit v1.9.3