Browse Source

设备统计去重

dongming
mk 9 months ago
parent
commit
7c516bfe3b
  1. 81
      src/views/dataBoard/IoTPerception/devicesNumber/index.vue

81
src/views/dataBoard/IoTPerception/devicesNumber/index.vue

@ -27,18 +27,36 @@
initChart(data) {
let div = document.getElementById('DissatisfiedReason');
this.myChart = echarts.init(div);
var getname = data.map(item => item.tittle); //
var getNum = data.map(item => item.numStr);
var total = eval(getNum.join('+'))
var data = [];
for (var i = 0; i < getname.length; i++) {
data.push({name: getname[i], value: getNum[i]})
}
const color = ['#1A95FF', '#27B5BD' ,'#368eff','#F95619', '#FFAA01','#1a95ff']
var option = {
//
const uniqueData = [];
const seenTitles = new Set();
data.forEach(item => {
if (!seenTitles.has(item.tittle)) {
seenTitles.add(item.tittle);
uniqueData.push(item);
}
});
const getname = uniqueData.map(item => item.tittle);
const getNum = uniqueData.map(item => Number(item.numStr));
const total = getNum.reduce((sum, num) => sum + num, 0);
// { name, value }
const pieData = getname.map((name, index) => ({
name,
value: getNum[index],
}));
//
const color = [...Array(uniqueData.length)].map(
(_, i) => `hsl(${(i * 360) / uniqueData.length}, 70%, 50%)`
);
//
const option = {
color,
tooltip: {
trigger: "item"
trigger: "item",
},
legend: {
type: "plain",
@ -52,11 +70,8 @@
symbolKeepAspect: false,
selectedMode: false,
formatter: function (name) {
for (var i = 0; i < getname.length; i++) {
if (name == data[i].name) {
return '{name|' + name + '}{num|' + getNum[i] + '}'
}
}
const index = getname.indexOf(name);
return `{name|${name}}{num|${getNum[index]}}`;
},
textStyle: {
rich: {
@ -73,9 +88,9 @@
fontWeight: 400,
align: 'right',
color: '#FFFFFF',
}
}
}
},
},
},
},
series: [{
name: '',
@ -87,38 +102,44 @@
show: true,
position: "center",
color: "rgba(13, 17, 29,0)",
formatter: `{primary|${total}}\n{point|门禁设备}}`,
formatter: `{primary|${total}}\n{point|门禁设备}`,
rich: {
primary: {
fontSize: 24,
color: '#7FCEFF',
align: 'center'
align: 'center',
},
point: {
fontSize: 12,
fontWeight: 400,
color: "#A3B9DA",
align: 'center'
}
}
align: 'center',
},
},
},
emphasis: {
label: {
show: true,
fontSize: '14',
fontWeight: 'normal'
}
fontWeight: 'normal',
},
},
labelLine: {
show: false
show: false,
},
data: data,
zlevel: 30
}]
data: pieData,
zlevel: 30,
}],
};
//
this.myChart.setOption(option, true);
//
window.removeEventListener("resize", this.myChart.resize);
window.addEventListener("resize", () => this.myChart.resize());
}
}
}
}
</script>

Loading…
Cancel
Save