Newer
Older
carbon-metering-front / src / components / map / infoWindow.vue
<!--
  Description: 高德地图信息窗体 - 支路节点
  Author: 李亚光
  Date: 2023-05-10
 -->
<script lang="ts" setup name="infoWindow">
import trendChart from './trendChart.vue'
const overlay = ref()
const infoWindow = ref()
const info = ref()
const trendRef = ref()
// 初始化
const initialize = (e) => {
  overlay.value = e.overlay
  infoWindow.value = e.infoWindow
  info.value = e.info
  trendRef.value.range = 'day'
}
defineExpose({ initialize })
// 关闭
const close = () => {
  infoWindow.value.close()
}
</script>

<template>
  <div class="container">
    <div class="title">
      <div class="text">
        {{ info?.nodeName }}
      </div>
      <div class="close" @click="close">
        x
      </div>
    </div>
    <div class="item">
      节点编号 : {{ info?.busId }}
    </div>
    <div class="item">
      <span>负荷有功功率 : {{ info?.pd }} MW</span>  <span>负荷无功功率 : {{ info?.qd }} MW</span>
    </div>
    <div class="item">
      <span>节点碳势 : {{ info?.en }} gCO2/kWh</span>  <span>节点负荷碳流率 : {{ info?.flowRate }} kgCO2/h</span>
    </div>
    <div class="item">
      <span>采集时间 : {{ info?.colTime }}</span>
    </div>
    <!-- // <div class="item">设备信息 : {{ device.produceCode }}</div>
    // <div class="item">设备ID : {{ device.deviceId }}</div>
    // <div class="item">IP地址 : {{ device.deviceIp }}</div>
    // <div class="item">地址 : {{ device.deviceAddress }}</div> -->
    <trend-chart ref="trendRef" :width="430" :height="280" :device-id="info?.deviceId" :device-type="info?.type" />
  </div>
</template>

<style lang="scss" scoped>
.container {
  width: 470px;
  height: 510px;
  padding: 10px;
  background-color: #fff;
  border: 1px solid #6d9ece;

  .title {
    font-size: 16px;
    font-weight: 700;
    padding: 0 10px;
    display: flex;
    justify-content: space-between;

    .close {
      color: #ccc;

      &:hover {
        cursor: pointer;
      }
    }
  }

  .item {
    padding: 0 5px;
    color: #111213;
    font-size: 14px;
    margin: 10px;
    border-bottom: 1px solid #ccc;
    display: flex;
    justify-content: space-between;
  }
}
</style>