|
@@ -1,9 +1,64 @@
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
|
+import ProgressTextBar from '@/components/ProgressTextBar.vue';
|
|
import { DevParamCoolingTower } from '@/constants/device-params';
|
|
import { DevParamCoolingTower } from '@/constants/device-params';
|
|
|
|
+
|
|
|
|
+import type { DevWorkCardProps } from '@/types';
|
|
|
|
+
|
|
|
|
+defineProps<DevWorkCardProps<DevParamCoolingTower>>();
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<template>
|
|
<template>
|
|
- <div>冷却塔 - {{ DevParamCoolingTower.有功功率 }}</div>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <img class="cooling-tower-img" src="@/assets/img/device-cooling-tower.png" />
|
|
|
|
+ <div class="cooling-tower-top">
|
|
|
|
+ <div class="cooling-tower-left">
|
|
|
|
+ <div>
|
|
|
|
+ <div class="device-card-label">{{ $t('deviceWorkStatus.coolingTower.localRemoteStatus') }}</div>
|
|
|
|
+ <div class="device-card-value">{{ realTimeData?.[DevParamCoolingTower.本地远程状态] ?? '-' }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <div class="device-card-label">{{ $t('deviceWorkStatus.coolingTower.activePower') }} (kW)</div>
|
|
|
|
+ <ProgressTextBar :text="realTimeData?.[DevParamCoolingTower.有功功率]" :percent="0" />
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <div class="device-card-label">{{ $t('deviceWorkStatus.coolingTower.frequencyFb') }} (Hz)</div>
|
|
|
|
+ <ProgressTextBar :text="realTimeData?.[DevParamCoolingTower.频率反馈]" :percent="0" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="cooling-tower-bottom">
|
|
|
|
+ <div>
|
|
|
|
+ <div class="device-card-label">{{ $t('deviceWorkStatus.coolingTower.runHours') }} (H)</div>
|
|
|
|
+ <div class="device-card-value">{{ realTimeData?.[DevParamCoolingTower.运行时间] ?? '-' }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
-<!-- <style lang="scss" scoped></style> -->
|
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.cooling-tower-top {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ margin-bottom: 18px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.cooling-tower-left {
|
|
|
|
+ width: 170px;
|
|
|
|
+ margin-right: 28px;
|
|
|
|
+
|
|
|
|
+ > div + div {
|
|
|
|
+ margin-top: 22px;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.cooling-tower-img {
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 8px;
|
|
|
|
+ bottom: 4px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.cooling-tower-bottom {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+}
|
|
|
|
+</style>
|