1 //泵机带图 2 function getBjData(jsonData){ 3 4 let colorTypes = { 5 "运行":{ 6 color:"#52c736" 7 }, 8 "报警":{ 9 color:"#ec2c12" 10 }, 11 "停止":{ 12 color:"#0941ec" 13 } 14 }; 15 let data = []; 16 $.each(jsonData,function(index,value){ 17 for(let i=0;i<value.length;i++){ 18 19 let curValue = value[i]; 20 21 let curName = curValue['name']; 22 23 let color = colorTypes[curName]; 24 25 let colorStyle = {}; 26 colorStyle["normal"] = color; 27 28 let curValue1 = curValue['value']; 29 30 curValue['value'] = curValue1; 31 32 // let itemStyle = {}; 33 // itemStyle["itemStyle"] =colorStyle; 34 35 curValue["itemStyle"] = colorStyle; 36 37 data.push(curValue); 38 } 39 }); 40 41 return data; 42 } 43 44 function getBjOption(jsonData){ 45 46 let data = []; 47 let categories =Object.keys(jsonData).reverse(); 48 49 data = getBjData(jsonData); 50 51 console.log(data); 52 53 function renderItem(params, api) { 54 let categoryIndex = api.value(0); 55 let start = api.coord([api.value(1), categoryIndex]); 56 let end = api.coord([api.value(2), categoryIndex]); 57 let height = api.size([0, 1])[1] * 0.6; 58 59 let rectShape = echarts.graphic.clipRectByRect({ 60 x: start[0], 61 y: start[1] - height / 2, 62 width: end[0] - start[0], 63 height: height 64 }, { 65 x: params.coordSys.x, 66 y: params.coordSys.y, 67 width: params.coordSys.width, 68 height: params.coordSys.height 69 }); 70 71 return rectShape && { 72 type: 'rect', 73 shape: rectShape, 74 style: api.style() 75 }; 76 } 77 78 let option = { 79 tooltip: { 80 formatter: function (params) { 81 return params.marker + params.name + ': ' + params.value[3] + ' H'; 82 } 83 }, 84 // title: { 85 // text: title, 86 // left: 'center' 87 // }, 88 dataZoom: [{ 89 type: 'slider', 90 filterMode: 'weakFilter', 91 showDataShadow: false, 92 top: 400, 93 height: 10, 94 borderColor: 'transparent', 95 backgroundColor: '#e2e2e2', 96 handleIcon: 'M10.7,11.9H9.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z', // jshint ignore:line 97 handleSize: 20, 98 handleStyle: { 99 shadowBlur: 6, 100 shadowOffsetX: 1, 101 shadowOffsetY: 2, 102 shadowColor: '#aaa' 103 }, 104 labelFormatter: '' 105 }, { 106 type: 'inside', 107 filterMode: 'weakFilter' 108 }], 109 grid: { 110 height: 300 111 }, 112 xAxis: { 113 min: 0, 114 max: 24, 115 //scale: true, 116 //inverse: true, 117 axisLabel: { 118 formatter: function (val) { 119 return val; 120 //return Math.max(0, val - 24) + ' H'; 121 } 122 } 123 }, 124 yAxis: { 125 data: categories 126 }, 127 series: [{ 128 type: 'custom', 129 renderItem: renderItem, 130 itemStyle: { 131 opacity: 1 132 }, 133 encode: { 134 x: [1, 2], 135 y: 0 136 }, 137 data: data 138 }] 139 }; 140 return option; 141 } 142 143 function setBjdtTabChart(id,stationNum) { 144 145 $.getJSON(pngPath + "data/bengfang.json", function (jsonData) { 146 147 let bjJson = jsonData["泵机带图"]; 148 149 let myChart = echarts.init(document.getElementById(id)); 150 151 let option = getBjOption(bjJson); 152 153 // 使用刚指定的配置项和数据显示图表。 154 myChart.setOption(option); 155 156 }); 157 };