eleFire.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. /*
  2. 电气火灾页面echarts配置
  3. */
  4. var year = $('#chooseTime').val().slice(0, 4);
  5. var month = $('#chooseTime').val().slice(5, 7);
  6. // ajax请求数据
  7. function getListData(queryParam = {}) {
  8. ajaxRequest(STATISTICS, "POST", queryParam, function(result) {
  9. console.log(result.RESULT[0].data_statistics)
  10. var data_statistics = result.RESULT[0].data_statistics;
  11. $('.total').html(data_statistics.alarm_number);
  12. $('.solved').html(data_statistics.processing_number);
  13. $('.unsolve').html(data_statistics.unprocessed_number);
  14. // 环状饼图定制 (数据统计及时)
  15. (function() {
  16. // 实例化对象
  17. var myChart = echarts.init(document.querySelector(".bar-3d .chart"));
  18. // 生成扇形的曲面参数方程,用于 series-surface.parametricEquation
  19. function getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, height) {
  20. // 计算
  21. let midRatio = (startRatio + endRatio) / 2;
  22. let startRadian = startRatio * Math.PI * 2;
  23. let endRadian = endRatio * Math.PI * 2;
  24. let midRadian = midRatio * Math.PI * 2;
  25. // 如果只有一个扇形,则不实现选中效果。
  26. if (startRatio === 0 && endRatio === 1) {
  27. isSelected = false;
  28. }
  29. // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
  30. k = typeof k !== 'undefined' ? k : 1 / 3;
  31. // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
  32. let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
  33. let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
  34. // 计算高亮效果的放大比例(未高亮,则比例为 1)
  35. let hoverRate = isHovered ? 1.05 : 1;
  36. // 返回曲面参数方程
  37. return {
  38. u: {
  39. min: -Math.PI,
  40. max: Math.PI * 3,
  41. step: Math.PI / 32
  42. },
  43. v: {
  44. min: 0,
  45. max: Math.PI * 2,
  46. step: Math.PI / 20
  47. },
  48. x: function(u, v) {
  49. if (u < startRadian) {
  50. return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
  51. }
  52. if (u > endRadian) {
  53. return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
  54. }
  55. return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
  56. },
  57. y: function(u, v) {
  58. if (u < startRadian) {
  59. return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
  60. }
  61. if (u > endRadian) {
  62. return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
  63. }
  64. return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
  65. },
  66. z: function(u, v) {
  67. if (u < -Math.PI * 0.5) {
  68. return Math.sin(u);
  69. }
  70. if (u > Math.PI * 2.5) {
  71. return Math.sin(u);
  72. }
  73. return Math.sin(v) > 0 ? 1 : -1;
  74. }
  75. };
  76. }
  77. // 生成模拟 3D 饼图的配置项
  78. function getPie3D(pieData, internalDiameterRatio) {
  79. let series = [];
  80. let sumValue = 0;
  81. let startValue = 0;
  82. let endValue = 0;
  83. let legendData = [];
  84. let k = typeof internalDiameterRatio !== 'undefined' ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio) : 1 / 3;
  85. // 为每一个饼图数据,生成一个 series-surface 配置
  86. for (let i = 0; i < pieData.length; i++) {
  87. sumValue += pieData[i].value;
  88. let seriesItem = {
  89. name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
  90. type: 'surface',
  91. parametric: true,
  92. wireframe: {
  93. show: false
  94. },
  95. pieData: pieData[i],
  96. pieStatus: {
  97. selected: false,
  98. hovered: false,
  99. k: k
  100. }
  101. };
  102. if (typeof pieData[i].itemStyle != 'undefined') {
  103. let itemStyle = {};
  104. typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
  105. typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
  106. seriesItem.itemStyle = itemStyle;
  107. }
  108. series.push(seriesItem);
  109. }
  110. // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
  111. // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
  112. for (let i = 0; i < series.length; i++) {
  113. endValue = startValue + series[i].pieData.value;
  114. // console.log(series[i]);
  115. series[i].pieData.startRatio = startValue / sumValue;
  116. series[i].pieData.endRatio = endValue / sumValue;
  117. series[i].parametricEquation = getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio, false, false, k, series[i].pieData.value);
  118. startValue = endValue;
  119. legendData.push(series[i].name);
  120. }
  121. // 准备待返回的配置项,把准备好的 legendData、series 传入。
  122. let option = {
  123. tooltip: {
  124. backgroundColor: '#12DFE0',
  125. formatter: params => {
  126. if (params.seriesName !== 'mouseoutSeries') {
  127. // return `${params.seriesName}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>${option.series[params.seriesIndex].pieData.value}%`;
  128. return `${params.seriesName}: ${option.series[params.seriesIndex].pieData.value}%`;
  129. }
  130. }
  131. },
  132. xAxis3D: {
  133. min: -1,
  134. max: 1
  135. },
  136. yAxis3D: {
  137. min: -1,
  138. max: 1
  139. },
  140. zAxis3D: {
  141. min: -1,
  142. max: 1
  143. },
  144. grid3D: {
  145. show: false,
  146. boxHeight: 40,
  147. top: '-10%',
  148. // bottom: '80%',
  149. // environment: '../images/3d-bg.png', //aa背景色
  150. viewControl: {
  151. distance: 170, //aa距离
  152. alpha: 21, //aa角度
  153. beta: 60, //aa角度
  154. zoomSensitivity: false //是否开启缩放和平移
  155. },
  156. },
  157. series: series
  158. };
  159. return option;
  160. }
  161. // 传入数据生成 option
  162. var option = getPie3D([{
  163. name: '已处理率',
  164. value: data_statistics.treatment_rate,
  165. itemStyle: {
  166. opacity: 0.5,
  167. color: 'rgba(0,127,244,.8)',
  168. }
  169. }, {
  170. name: '未处理率',
  171. value: data_statistics.untreated_rate,
  172. itemStyle: {
  173. opacity: 0.5,
  174. color: 'rgba(209,126,23,.8)',
  175. }
  176. }
  177. ], 2);
  178. // 把配置给实例对象
  179. myChart.setOption(option);
  180. window.addEventListener("resize", function() {
  181. myChart.resize();
  182. });
  183. })();
  184. }, function(errorMsg) {
  185. alert("请求数据失败!");
  186. }, 2)
  187. };
  188. getListData(getSearchParamObj());
  189. function getSearchParamObj() {
  190. let queryParam = {};
  191. let buildingVal = $('#building').val();
  192. let chooseTime = $('#chooseTime').val();
  193. queryParam.company_code = buildingVal;
  194. queryParam.generation_time = chooseTime;
  195. return queryParam;
  196. }
  197. // 折线图定制 (数据离散率挖掘)
  198. (function() {
  199. // alert(add0(3))
  200. var sortData = [{
  201. sortName: "三相电压",
  202. data: [
  203. // 两个数组是因为有两条线
  204. [30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 200, 180, 79, 82, 64, 43, 60, 19, 82, 64, 43, 60, 19, 34],
  205. [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38, 24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, ],
  206. [400, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 79, 82, 64, 4]
  207. ]
  208. },
  209. {
  210. sortName: "三相电流",
  211. data: [
  212. // 两个数组是因为有两条线
  213. [143, 19, 34, 40, 64, 191, 324, 290, 330, 310, 131, 165, 123, 178, 21, 82, 64, 43, 60, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, ],
  214. [24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 43, 60, 19, 34],
  215. [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 79, 82, 64, 4]
  216. ]
  217. },
  218. {
  219. sortName: "三相温度",
  220. data: [
  221. // 两个数组是因为有两条线
  222. [24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 43, 60, 19, 34],
  223. [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38, 24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, ],
  224. [131, 165, 123, 178, 21, 82, 64, 43, 60, 82, 64, 43, 60, 19, 34, 40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, ]
  225. ]
  226. }, {
  227. sortName: "漏电电流",
  228. data: [
  229. // 两个数组是因为有两条线
  230. [143, 19, 34, 40, 64, 191, 324, 290, 330, 310, 131, 165, 123, 178, 21, 82, 64, 43, 60, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, ],
  231. [24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 43, 60, 19, 34],
  232. [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 79, 82, 64, 4]
  233. ]
  234. },
  235. ];
  236. var xData = function() {
  237. var data = [];
  238. for (var i = 1; i < 31; i++) {
  239. data.push(i);
  240. }
  241. return data;
  242. }();
  243. // 1. 实例化对象
  244. var myChart = echarts.init(document.querySelector(".divergence .chart"));
  245. // 2.指定配置
  246. var option = {
  247. color: [{
  248. colorStops: [{
  249. offset: 0,
  250. color: '#F9860C' // 0% 处的颜色
  251. }, {
  252. offset: 1,
  253. color: '#fff' // 100% 处的颜色
  254. }],
  255. },
  256. {
  257. colorStops: [{
  258. offset: 0,
  259. color: '#07E1F1' // 0% 处的颜色
  260. }, {
  261. offset: 1,
  262. color: '#0456CB' // 100% 处的颜色
  263. }],
  264. },
  265. {
  266. colorStops: [{
  267. offset: 0,
  268. color: '#11F90C' // 0% 处的颜色
  269. }, {
  270. offset: 1,
  271. color: '#3FC713' // 100% 处的颜色
  272. }],
  273. }
  274. ],
  275. // tooltip: {
  276. // trigger: "axis",
  277. // textStyle: {
  278. // align: 'left' //图例左对齐
  279. // },
  280. // },
  281. tooltip: {
  282. trigger: "axis",
  283. textStyle: {
  284. align: 'left' //图例左对齐
  285. },
  286. backgroundColor: '#12DFE0',
  287. // formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:2021年3月{b}日',
  288. formatter: '{a0}: {c0}<br />{a1}: {c1}<br />{a2}: {c2}<br />时间:' + year + '年' + month + '月{b}日'
  289. },
  290. legend: {
  291. // 如果series 对象有name 值,则 legend可以不用写data
  292. itemGap: 20,
  293. itemHeight: 2,
  294. itemWidth: 15,
  295. icon: 'rect',
  296. textStyle: {
  297. color: "#fff"
  298. },
  299. top: "bottom",
  300. },
  301. grid: {
  302. top: "0%",
  303. left: "1%",
  304. right: "1%",
  305. bottom: "15%",
  306. show: true, // 显示边框
  307. borderWidth: '0', //去除边框
  308. containLabel: true // 包含刻度文字在内
  309. },
  310. xAxis: {
  311. type: "category",
  312. boundaryGap: false,
  313. data: xData,
  314. axisTick: {
  315. show: false // 去除刻度线
  316. },
  317. axisLabel: {
  318. color: "#AADDFF" // 文本颜色
  319. },
  320. axisLine: {
  321. lineStyle: {
  322. color: 'rgba(255,255,255,.3)'
  323. }
  324. },
  325. splitNumber: 8,
  326. splitLine: {
  327. show: false
  328. },
  329. splitArea: {
  330. show: true,
  331. areaStyle: {
  332. color: ["rgba(250,250,250,0.05)", "rgba(250,250,250,0.0)"]
  333. }
  334. }
  335. },
  336. yAxis: {
  337. type: "value",
  338. axisTick: {
  339. show: false // 去除刻度线
  340. },
  341. axisLabel: {
  342. show: false // 去除文本
  343. },
  344. axisLine: {
  345. show: false // 去除轴线
  346. },
  347. splitLine: {
  348. lineStyle: {
  349. color: "#012f4a" // 分割线颜色
  350. }
  351. }
  352. },
  353. series: [{
  354. symbol: "none",
  355. name: "方差",
  356. type: "line",
  357. data: sortData[0].data[0]
  358. },
  359. {
  360. symbol: "none",
  361. name: "标准差",
  362. type: "line",
  363. data: sortData[0].data[1]
  364. }, {
  365. symbol: "none",
  366. name: "平均值",
  367. type: "line",
  368. data: sortData[0].data[2]
  369. }
  370. ]
  371. };
  372. myChart.setOption(option);
  373. window.addEventListener("resize", function() {
  374. myChart.resize();
  375. });
  376. // 点击切换效果
  377. $(".divergence .tab-line").on("click", "a", function() {
  378. $(this).addClass('active').siblings().removeClass('active')
  379. var obj = sortData[$(this).index()];
  380. option.series[0].data = obj.data[0];
  381. option.series[1].data = obj.data[1];
  382. option.series[2].data = obj.data[2];
  383. // 重新渲染
  384. myChart.setOption(option);
  385. });
  386. })();
  387. // 折线图定制 (电老化分析)
  388. (function() {
  389. var sortData = [{
  390. sortName: "异常设备",
  391. data: [
  392. // 两个数组是因为有两条线
  393. [24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 43, 60, 19, 34],
  394. [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 79, 82, 64, 4]
  395. ]
  396. },
  397. {
  398. sortName: "漏电告警",
  399. data: [
  400. // 两个数组是因为有两条线
  401. [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38, 24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, ],
  402. [143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34, 40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, ]
  403. ]
  404. }
  405. ];
  406. var xData = function() {
  407. var data = [];
  408. for (var i = 1; i < 31; i++) {
  409. data.push(i);
  410. }
  411. return data;
  412. }();
  413. // 1. 实例化对象
  414. var myChart = echarts.init(document.querySelector(".oldAnalysis .chart"));
  415. // 2.指定配置
  416. var option = {
  417. color: ["#FF9C00", "#0096FF"], // 通过这个color修改两条线的颜色
  418. // tooltip: {
  419. // trigger: "axis",
  420. // textStyle: {
  421. // align: 'left' //图例左对齐
  422. // },
  423. // },
  424. tooltip: {
  425. trigger: "axis",
  426. textStyle: {
  427. align: 'left' //图例左对齐
  428. },
  429. backgroundColor: '#12DFE0',
  430. formatter: '{a0}: {c0}<br />{a1}: {c1}<br />时间:2021年3月{b}日'
  431. },
  432. legend: {
  433. // 如果series 对象有name 值,则 legend可以不用写data
  434. itemGap: 20,
  435. itemHeight: 2,
  436. itemWidth: 15,
  437. icon: 'rect',
  438. textStyle: {
  439. color: "#fff"
  440. },
  441. top: "bottom",
  442. },
  443. grid: {
  444. top: "0%",
  445. left: "1%",
  446. right: "1%",
  447. bottom: "15%",
  448. show: true, // 显示边框
  449. borderWidth: '0', //去除边框
  450. containLabel: true // 包含刻度文字在内
  451. },
  452. xAxis: {
  453. type: "category",
  454. boundaryGap: false,
  455. data: xData,
  456. axisTick: {
  457. show: false // 去除刻度线
  458. },
  459. axisLabel: {
  460. color: "#AADDFF" // 文本颜色
  461. },
  462. axisLine: {
  463. show: false // 去除轴线
  464. }
  465. },
  466. yAxis: {
  467. type: "value",
  468. axisTick: {
  469. show: false // 去除刻度线
  470. },
  471. axisLabel: {
  472. show: false // 去除文本
  473. },
  474. axisLine: {
  475. show: false // 去除轴线
  476. },
  477. splitLine: {
  478. lineStyle: {
  479. color: "#012f4a" // 分割线颜色
  480. }
  481. }
  482. },
  483. series: [{
  484. symbol: "none",
  485. name: "电流",
  486. type: "line",
  487. smooth: true, // true 可以让我们的折线显示带有弧度
  488. areaStyle: {
  489. normal: {
  490. color: new echarts.graphic.LinearGradient(
  491. 0,
  492. 0,
  493. 0,
  494. 1, [{
  495. offset: 0,
  496. color: "rgba(255,156,0, 0.4)"
  497. },
  498. {
  499. offset: 0.8,
  500. color: "rgba(255,156,0, 0.3)"
  501. }
  502. ],
  503. false
  504. ),
  505. shadowColor: "rgba(0, 0, 0, 0.1)"
  506. }
  507. },
  508. data: sortData[0].data[0]
  509. },
  510. {
  511. symbol: "none",
  512. name: "电压",
  513. type: "line",
  514. smooth: true,
  515. areaStyle: {
  516. normal: {
  517. color: new echarts.graphic.LinearGradient(
  518. 0,
  519. 0,
  520. 0,
  521. 1, [{
  522. offset: 0,
  523. color: "rgba(0,150,255,0.5)"
  524. },
  525. {
  526. offset: 0.8,
  527. color: "rgba(0,150,255, 0.1)"
  528. }
  529. ],
  530. false
  531. ),
  532. shadowColor: "rgba(0, 0, 0, 0.1)"
  533. }
  534. },
  535. data: sortData[0].data[1]
  536. }
  537. ]
  538. };
  539. myChart.setOption(option);
  540. window.addEventListener("resize", function() {
  541. myChart.resize();
  542. });
  543. // 点击切换效果
  544. $(".oldAnalysis .tab-line").on("click", "a", function() {
  545. $(this).addClass('active').siblings().removeClass('active')
  546. var obj = sortData[$(this).index()];
  547. option.series[0].data = obj.data[0];
  548. option.series[1].data = obj.data[1];
  549. // 重新渲染
  550. myChart.setOption(option);
  551. });
  552. })();
  553. // 折线图定制 (热老化分析)
  554. (function() {
  555. var sortData = [{
  556. data: [
  557. // 三个数组是因为有3条线
  558. [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38, 24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, ],
  559. [24, 52, 26, 27, 30, 35, 36, 40, 120, 230, 210, 120, 213, 180, 200, 180, 79, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 43, 60, 19, 34],
  560. [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 9, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79, 82, 64, 79, 82, 64, 4]
  561. ]
  562. }];
  563. var xData = function() {
  564. var data = [];
  565. for (var i = 1; i < 31; i++) {
  566. data.push(i);
  567. }
  568. return data;
  569. }();
  570. // 1. 实例化对象
  571. var myChart = echarts.init(document.querySelector(".hotAnalysis .chart"));
  572. // 2.指定配置
  573. var option = {
  574. color: ["#05EEE7", "#9999FF", "#FE92B3"], // 通过这个color修改三条线的颜色
  575. tooltip: {
  576. trigger: "axis",
  577. textStyle: {
  578. align: 'left' //图例左对齐
  579. },
  580. backgroundColor: '#12DFE0',
  581. formatter: '{a0}: {c0}°C<br />{a1}: {c1}°C<br />{a2}: {c2}°C<br />时间:2021年3月{b}日'
  582. },
  583. legend: {
  584. // 如果series 对象有name 值,则 legend可以不用写data
  585. itemGap: 20,
  586. itemHeight: 2,
  587. itemWidth: 15,
  588. icon: 'rect',
  589. textStyle: {
  590. color: "#fff"
  591. },
  592. top: "bottom",
  593. },
  594. grid: {
  595. top: "0%",
  596. left: "1%",
  597. right: "1%",
  598. bottom: "15%",
  599. show: true, // 显示边框
  600. borderWidth: '0', //去除边框
  601. containLabel: true // 包含刻度文字在内
  602. },
  603. xAxis: {
  604. type: "category",
  605. boundaryGap: false,
  606. data: xData,
  607. axisTick: {
  608. show: false // 去除刻度线
  609. },
  610. axisLabel: {
  611. color: "#AADDFF" // 文本颜色
  612. },
  613. axisLine: {
  614. show: false // 去除轴线
  615. }
  616. },
  617. yAxis: {
  618. type: "value",
  619. axisTick: {
  620. show: false // 去除刻度线
  621. },
  622. axisLabel: {
  623. show: false // 去除文本
  624. },
  625. axisLine: {
  626. show: false // 去除轴线
  627. },
  628. splitLine: {
  629. lineStyle: {
  630. color: "#012f4a" // 分割线颜色
  631. }
  632. }
  633. },
  634. series: [{
  635. symbol: "none",
  636. name: "线缆产生的温度",
  637. type: "line",
  638. smooth: true, // true 可以让我们的折线显示带有弧度
  639. areaStyle: {
  640. normal: {
  641. color: new echarts.graphic.LinearGradient(
  642. 0,
  643. 0,
  644. 0,
  645. 1, [{
  646. offset: 0,
  647. color: "rgba(5,238,231,.6)"
  648. },
  649. {
  650. offset: 0.8,
  651. color: "rgba(5,238,231, 0.4)"
  652. }
  653. ],
  654. false
  655. ),
  656. }
  657. },
  658. data: sortData[0].data[0]
  659. },
  660. {
  661. symbol: "none",
  662. name: "环境温度",
  663. type: "line",
  664. smooth: true,
  665. areaStyle: {
  666. normal: {
  667. color: new echarts.graphic.LinearGradient(
  668. 0,
  669. 0,
  670. 0,
  671. 1, [{
  672. offset: 0,
  673. color: "rgba(153,153,255,.6)"
  674. },
  675. {
  676. offset: 0.8,
  677. color: "rgba(153,153,255, 0.4)"
  678. }
  679. ],
  680. false
  681. ),
  682. }
  683. },
  684. data: sortData[0].data[1]
  685. },
  686. {
  687. symbol: "none",
  688. name: "线缆温度",
  689. type: "line",
  690. smooth: true,
  691. areaStyle: {
  692. normal: {
  693. color: new echarts.graphic.LinearGradient(
  694. 0,
  695. 0,
  696. 0,
  697. 1, [{
  698. offset: 0,
  699. color: "rgba(255,147,180,.6)"
  700. },
  701. {
  702. offset: 0.8,
  703. color: "rgba(255,147,180, 0.4)"
  704. }
  705. ],
  706. false
  707. ),
  708. }
  709. },
  710. data: sortData[0].data[2]
  711. }
  712. ]
  713. };
  714. myChart.setOption(option);
  715. window.addEventListener("resize", function() {
  716. myChart.resize();
  717. });
  718. })();