191 lines
4.0 KiB
Vue
191 lines
4.0 KiB
Vue
|
<template>
|
|||
|
<div id="test2">
|
|||
|
<div class="timeQuery" style="width: 100%; height: 300px" id="timeQuery">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
|
|||
|
import * as echarts from 'echarts';
|
|||
|
|
|||
|
export default {
|
|||
|
name: "test2",
|
|||
|
data() {
|
|||
|
return {
|
|||
|
};
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
var base = +new Date("2021-02-02 00:00:00");
|
|||
|
var oneDay = 24 * 3600 * 1000;
|
|||
|
|
|||
|
var data = [[base, 10]];
|
|||
|
|
|||
|
for (var i = 1; i < 24; i++) {
|
|||
|
var now = new Date(base += oneDay);
|
|||
|
data.push([
|
|||
|
new Date("2021-02-02 " + i+":00:00"), 10
|
|||
|
]);
|
|||
|
}
|
|||
|
// 基于准备好的dom,初始化echarts实例
|
|||
|
var myChart = echarts.init(document.getElementById('timeQuery'));
|
|||
|
let option = {
|
|||
|
|
|||
|
toolbox: {
|
|||
|
feature: {
|
|||
|
dataZoom: {
|
|||
|
yAxisIndex: 'none'
|
|||
|
},
|
|||
|
restore: {},
|
|||
|
saveAsImage: {}
|
|||
|
}
|
|||
|
},
|
|||
|
xAxis: {
|
|||
|
type: 'time',
|
|||
|
boundaryGap: false
|
|||
|
},
|
|||
|
yAxis: {
|
|||
|
type: 'value',
|
|||
|
show: false,
|
|||
|
splitLine:{show: false}, //去除网格线
|
|||
|
boundaryGap: [0, '100%']
|
|||
|
},
|
|||
|
dataZoom: [{
|
|||
|
type: 'inside',
|
|||
|
start: 0,
|
|||
|
end: 20
|
|||
|
}, {
|
|||
|
start: 0,
|
|||
|
end: 20
|
|||
|
}],
|
|||
|
series: [
|
|||
|
{
|
|||
|
name: '模拟数据',
|
|||
|
type: 'line',
|
|||
|
smooth: false,
|
|||
|
symbol: 'none',
|
|||
|
areaStyle: {},
|
|||
|
data: data
|
|||
|
}
|
|||
|
]
|
|||
|
};
|
|||
|
// 绘制图表
|
|||
|
myChart.setOption(option);
|
|||
|
},
|
|||
|
methods:{
|
|||
|
getTimeNode(){
|
|||
|
let mine = 20
|
|||
|
let width = document.getElementById("timeQuery").offsetWidth
|
|||
|
if (width/20 > 24){
|
|||
|
return 24
|
|||
|
}else if (width/20 > 12) {
|
|||
|
return 12
|
|||
|
}else if (width/20 > 6) {
|
|||
|
return 6
|
|||
|
}
|
|||
|
},
|
|||
|
hoveEvent(event){
|
|||
|
console.log(2222222)
|
|||
|
console.log(event)
|
|||
|
},
|
|||
|
timeChoose(event){
|
|||
|
console.log(event)
|
|||
|
},
|
|||
|
getDataWidth(item){
|
|||
|
let startTime = new Date(item.startTime);
|
|||
|
let endTime = new Date(item.endTime);
|
|||
|
let result = parseFloat((endTime.getTime() - startTime.getTime())/(24*60*60*10))
|
|||
|
// console.log(result)
|
|||
|
return parseFloat((endTime.getTime() - startTime.getTime())/(24*60*60*10))
|
|||
|
},
|
|||
|
getDataLeft(item){
|
|||
|
let startTime = new Date(item.startTime);
|
|||
|
let differenceTime = startTime.getTime() - new Date(item.startTime.substr(0,10) + " 00:00:00").getTime()
|
|||
|
let result = differenceTime/(24*60*60*10)
|
|||
|
console.log(differenceTime)
|
|||
|
console.log(result)
|
|||
|
return parseFloat(differenceTime/(24*60*60*10));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
.timeQuery{
|
|||
|
width: 96%;
|
|||
|
margin-left: 2%;
|
|||
|
margin-right: 2%;
|
|||
|
margin-top: 20%;
|
|||
|
position: absolute;
|
|||
|
}
|
|||
|
.timeQuery-background{
|
|||
|
height: 16px;
|
|||
|
width: 100%;
|
|||
|
background-color: #ececec;
|
|||
|
position: absolute;
|
|||
|
left: 0;
|
|||
|
top: 0;
|
|||
|
z-index: 10;
|
|||
|
box-shadow: #9d9d9d 0px 0px 10px inset;
|
|||
|
}
|
|||
|
.timeQuery-data{
|
|||
|
height: 16px;
|
|||
|
width: 100%;
|
|||
|
position: absolute;
|
|||
|
left: 0;
|
|||
|
top: 0;
|
|||
|
z-index: 11;
|
|||
|
}
|
|||
|
.timeQuery-data-cell{
|
|||
|
height: 10px;
|
|||
|
background-color: #888787;
|
|||
|
position: absolute;
|
|||
|
z-index: 11;
|
|||
|
-webkit-box-shadow: #9d9d9d 0px 0px 10px inset;
|
|||
|
margin-top: 3px;
|
|||
|
}
|
|||
|
.timeQuery-label{
|
|||
|
height: 16px;
|
|||
|
width: 100%;
|
|||
|
position: absolute;
|
|||
|
pointer-events: none;
|
|||
|
left: 0;
|
|||
|
top: 0;
|
|||
|
z-index: 11;
|
|||
|
}
|
|||
|
.timeQuery-label-cell{
|
|||
|
height: 16px;
|
|||
|
position: absolute;
|
|||
|
z-index: 12;
|
|||
|
width: 0px;
|
|||
|
border-right: 1px solid #b7b7b7;
|
|||
|
}
|
|||
|
.timeQuery-label-cell-label {
|
|||
|
width: 23px;
|
|||
|
text-align: center;
|
|||
|
height: 18px;
|
|||
|
margin-left: -10px;
|
|||
|
margin-top: -30px;
|
|||
|
color: #444;
|
|||
|
}
|
|||
|
.timeQuery-pointer{
|
|||
|
width: 0px;
|
|||
|
height: 18px;
|
|||
|
position: absolute;
|
|||
|
left: 0;
|
|||
|
}
|
|||
|
.timeQuery-pointer-content{
|
|||
|
width: 0px;
|
|||
|
height: 16px;
|
|||
|
position: absolute;
|
|||
|
border-right: 3px solid #f60303;
|
|||
|
z-index: 14;
|
|||
|
}
|
|||
|
/*.timeQuery-cell:after{*/
|
|||
|
/* content: "";*/
|
|||
|
/* height: 14px;*/
|
|||
|
/* border: 1px solid #e70303;*/
|
|||
|
/* position: absolute;*/
|
|||
|
/*}*/
|
|||
|
</style>
|