智慧平车数据统计界面
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

165 lines
4.0 KiB

<template>
<!-- 选矿新版rfid图 -->
<div>
<div id="echarts" :style="{ width: '100%', height: '500px' }" class="chart-box">
<div id="Day" style="width: 100%; height: 100%"></div>
</div>
</div>
</template>
<script>
export default {
name: 'Day',
props: {
list: {
type: Array,
default: () => [],
},
},
data() {
return {
width: '',
height: '',
timer: null,
dateTiem: [],
weightDate: [],
weight1: [],
weight2: [],
start: 0,
end: 100,
};
},
computed: {
// 定义option
option() {
return {
legend: { data: ['体重数据', 'RFID'] },
tooltip: { trigger: 'axis' },
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true,
},
xAxis: {
type: 'category',
data: this.dateTiem,
},
yAxis: {
type: 'value',
axisLabel: { formatter: '{value}' },
},
series: [
{
name: '体重数据',
type: 'line',
step: 'start',
// lineStyle: { color: '#73C0DE' },
data: this.weightDate,
},
{
name: 'RFID',
type: 'line',
markPoint: { data: this.weight1 },
// data: this.weight2,
},
],
};
},
},
watch: {
list() {
this.forList(this.list);
this.drawLine();
},
},
mounted() {
this.forList(this.list);
this.drawLine();
let wh = window.innerWidth;
let hg = window.innerHeight;
this.width = wh + 'px';
this.height = hg + 'px';
window.onresize = () => {
return (() => {
wh = window.innerWidth;
hg = window.innerHeight;
this.width = wh + 'px';
this.height = hg + 'px';
})();
};
},
methods: {
drawLine() {
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById('Day'));
// 绘制图表
myChart.setOption(this.option);
},
getStyle(obj, attr) {
if (obj.currentStyle) {
return obj.currentStyle[attr];
} else {
return document.defaultView.getComputedStyle(obj, null)[attr];
}
},
// 处理数组
forList(list) {
this.dateTiem = [];
this.weightDate = [];
this.weight1 = [];
this.weight2 = [];
// 获取横坐标
for (let i = 0; i < list.length; i++) {
this.dateTiem.push(this.format(parseInt(list[i].time)));
this.weight2.push(-50);
}
// 体重数据数组
for (let i = 0; i < list.length; i++) {
this.weightDate.push(parseInt(list[i].value) / 1000);
}
// // 处理rfid横线
// for (let i = 0; i < list.length; i++) {
// let obj = {};
// if (list[i].type === 2) {
// obj = {
// value: list[i].name,
// xAxis: this.format(parseInt(list[i].time)),
// yAxis: -50,
// };
// }
// this.weight1.push(obj);
// }
// 处理rfid横线
for (let i = 0; i < list.length; i++) {
let obj = {};
if (list[i].type === 2) {
obj = {
value: list[i].name,
xAxis: this.format(parseInt(list[i].time)),
yAxis: parseInt(list[i].value) / 1000,
};
this.weight1.push(obj);
}
}
},
add0(m) {
return m < 10 ? '0' + m : m;
},
format(shijianchuo) {
//shijianchuo是整数,否则要parseInt转换
var time = new Date(shijianchuo);
var y = time.getFullYear();
var m = time.getMonth() + 1;
var d = time.getDate();
var h = time.getHours();
var mm = time.getMinutes();
var s = time.getSeconds();
return y + '-' + this.add0(m) + '-' + this.add0(d) + ' ' + this.add0(h) + ':' + this.add0(mm);
},
},
};
</script>
<style lang="stylus" scoped ></style>