smart-power-ui/src/views/bigScreen/v3/profile/deviceProportion.vue

91 lines
2.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="big-device-proportion-wrap">
<nav-temp htmlType="t1" :title="title">
<echarts-radar-wrap
slot="mk-center"
class="count-info"
:styles="'width: 100%; height: 200px;'"
eId="echartsGaugeDP"
:option="radarOption"
/>
</nav-temp>
</div>
</template>
<script>
import titleImg from "@/assets/images/big/b.png";
import EchartsRadarWrap from "./echartsRadar";
import { appDeviceStatistics } from "@/api/app";
import NavTemp from "./navTemp";
export default {
name: "DeviceProportionWrap",
components: {
EchartsRadarWrap,
NavTemp,
},
props: ["projectId"],
data() {
return {
list: [],
titleImg,
title: "所有设备占比分析",
radarOption: {
indicator: [
{ name: "物联网断路器", max: 100 },
{ name: "智能摄像机", max: 100 },
{ name: "智能电表", max: 100 },
{ name: "烟雾传感器", max: 100 },
{ name: "智能气表", max: 100 },
{ name: "智能电表", max: 100 },
{ name: "智能电表", max: 100 },
{ name: "智能水表", max: 100 },
],
seriesList: [
{
value: [],
name: "预算分配Allocated Budget",
},
],
},
};
},
watch: {
projectId(val) {
this.getDeviceProportionList();
},
},
created() {
this.getDeviceProportionList();
},
methods: {
getDeviceProportionList() {
appDeviceStatistics({ projectId: this.projectId }).then((res) => {
const list = res.data;
this.radarOption.indicator = [];
this.radarOption.seriesList = [];
var _this = this;
for (var i = 0; i < list.length; i++) {
_this.radarOption.indicator.push({
name: list[i].deviceTypeName,
max: list[i].total <= 0 ? 1 : list[i].total,
});
_this.radarOption.seriesList.push(list[i].thisTotal);
}
});
},
},
};
</script>
<style lang="scss">
.big-device-proportion-wrap {
width: calc((100% - 20px) / 2);
height: 190px;
.count-info {
width: 100%;
height: 190px;
// background-image: url("../../../../assets/images/big/boxleft-center.png");
// background-size: contain;
padding-top: 10px;
}
}
</style>