• Echarts 实现 设备运行状态图(甘特图) 工业大数据展示


    1. let option={
    2. tooltip: {
    3. formatter: function (params) {
    4. let startTime = new Date(params.value[1])
    5. let endTime= new Date(params.value[2]);
    6. //北京时间/时间戳转成日常时间
    7. function convert(date){
    8. var y = date.getFullYear();
    9. var m = date.getMonth() + 1;
    10. m = m < 10 ? "0" + m : m;
    11. var d = date.getDate();
    12. d = d < 10 ? "0" + d : d;
    13. var h = date.getHours();
    14. h = h < 10 ? "0" + h : h;
    15. var minute = date.getMinutes();
    16. minute = minute < 10 ? "0" + minute : minute;
    17. var s = date.getSeconds();
    18. s = s < 10 ? "0" + s : s;
    19. return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + s;
    20. }
    21. return params.marker + params.name + ': ' +convert(startTime)+'-'+convert(endTime)
    22. }
    23. },
    24. dataZoom: [
    25. {
    26. type: 'slider',
    27. filterMode: 'weakFilter',
    28. showDataShadow: false,
    29. top: 550,
    30. labelFormatter: ''
    31. },
    32. {
    33. type: 'inside',
    34. filterMode: 'weakFilter'
    35. }
    36. ],
    37. grid: {
    38. height: 450
    39. },
    40. xAxis: {
    41. // min: startTime,
    42. scale: true,
    43. },
    44. yAxis: {
    45. data: []
    46. },
    47. series: [
    48. {
    49. type: 'custom',
    50. renderItem: function (params, api) {
    51. var categoryIndex = api.value(0);
    52. var start = api.coord([api.value(1), categoryIndex]);
    53. var end = api.coord([api.value(2), categoryIndex]);
    54. var height = api.size([0, 1])[1] * 0.6;
    55. var rectShape = echarts.graphic.clipRectByRect({
    56. x: start[0],
    57. y: start[1] - height / 2,
    58. width: end[0] - start[0],
    59. height: height
    60. }, {
    61. x: params.coordSys.x,
    62. y: params.coordSys.y,
    63. width: params.coordSys.width,
    64. height: params.coordSys.height
    65. });
    66. return rectShape && {
    67. type: 'rect',
    68. shape: rectShape,
    69. style: api.style()
    70. };
    71. },
    72. itemStyle: {
    73. opacity: 0.8
    74. },
    75. encode: {
    76. x: [1, 2],
    77. y: 0
    78. },
    79. data: []
    80. }
    81. ]
    82. }
    83. option.yAxis.data = this.categories//this.categories是类型也就是y轴[XCG10001....]
    84. let data = []
    85. let types = [
    86. {name: '静止', color: 'red'},
    87. {name: '收油', color: 'green'},
    88. {name: '发油', color: '#e0bc78'},
    89. ];
    90. let startTime = ''
    91. let endTime = ''
    92. var baseTime = ''
    93. var duration = ''
    94. this.categories.forEach((item, index) => {
    95. for (var i = 0; i < this.monitoringList[index].data.length; i++) {
    96. var typeItem = types[Math.round(Math.random() * (types.length - 1))];
    97. if (i !== this.monitoringList[index].data.length - 1) {
    98. //this.monitoringList是后台获取的数据
    99. endTime = new Date(this.monitoringList[index].data[i + 1].createTime);
    100. duration = endTime.valueOf();
    101. startTime = new Date(this.monitoringList[index].data[i].createTime);
    102. baseTime = startTime.valueOf();
    103. }else {
    104. endTime = new Date(this.monitoringList[index].data[i].createTime);
    105. duration = endTime.valueOf();
    106. startTime = new Date(this.monitoringList[index].data[i].createTime);
    107. baseTime = startTime.valueOf();
    108. }
    109. data.push({
    110. name: typeItem.name,
    111. // value 第一个参数: 设备 index;
    112. // 第二个参数: 状态的开始时间;
    113. // 第三个参数: 状态的结束时间;
    114. // 第四个参数: 状态的持续时间;
    115. value: [index, baseTime, endTime, duration - baseTime],
    116. itemStyle: {
    117. normal: {
    118. color: typeItem.color
    119. }
    120. }
    121. });
    122. }
    123. });
    124. option.series[0].data = data
    125. option.xAxis = {
    126. scale: true,
    127. min: function(value) {
    128. return value.min - 20;
    129. },
    130. max: function(value) {
    131. return value.max + 20;
    132. },
    133. axisLabel:{
    134. color:"#8da5b2",
    135. formatter:(value,index)=>{
    136. let xDate = new Date(value);
    137. return xDate.getFullYear()+"-"+(xDate.getMonth()+1)+"-"+xDate.getDate()+" "+xDate.getHours()+":"+xDate.getMinutes()+":"+xDate.getSeconds();
    138. }
    139. }
    140. }

    以上就是echarts性能图的option配置 

  • 相关阅读:
    伊朗相关的OilRig组织在为期8个月的网络攻击中针对中东政府
    这4款浏览器必装插件,让浏览器使用体验上升100%
    时刻保持学习状态
    GET,POST请求第三方接口HttpClient调用工具类
    js中==操作符的强制类型转换规则
    Vue项目下页面自适应pc端不同分辨率自适应
    数据挖掘与分析应用1:Excel表数据分析,sum,sumif,sumifs,vlookup,match,index,几个配合使用
    go - flag包(处理命令行参数小能手)
    Redis之介绍、下载安装
    揭秘拼多多API接口的魅力与价值:商品查询,获取指定商品的详细信息,如价格、库存等
  • 原文地址:https://blog.csdn.net/m0_45159572/article/details/134006294