datachart-wv.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <div id="main" style="width:100%;height:400px;margin:auto"></div>
  10. <script src="./echarts.min.js"></script>
  11. <script src="./cqcyCode.js"></script>
  12. <script type="text/javascript" src="../luckysheet/dist/plugins/js/uni-webview-js0.0.3_index.js"></script>
  13. <script src="../jquery.min.js"></script>
  14. <script src="../date.js"></script>
  15. <script>
  16. function GetQueryString(name) {
  17. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  18. var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
  19. var context = "";
  20. if (r != null)
  21. context = decodeURIComponent(r[2]);
  22. reg = null;
  23. r = null;
  24. return context == null || context == "" || context == "undefined" ? "" : context;
  25. }
  26. </script>
  27. <script>
  28. var option = {
  29. xAxis: {
  30. type: 'category',
  31. data: [],
  32. axisLabel: {
  33. formatter: function(value) {
  34. return value.substring(11, 19) + "\n" + value.substring(0, 10).split('-').join('')
  35. }
  36. }
  37. },
  38. yAxis: {
  39. type: 'value'
  40. },
  41. legend: {
  42. type: 'scroll',
  43. top: 0
  44. },
  45. tooltip: {
  46. trigger: 'axis',
  47. axisPointer: {
  48. type: 'cross',
  49. lineStyle: {
  50. type: 'dashed'
  51. },
  52. label: {
  53. show: false
  54. }
  55. },
  56. textStyle:{
  57. color:'#ffffff'
  58. },
  59. confine: true,
  60. extraCssText: 'white-space: normal; word-break: break-all;',
  61. backgroundColor: 'rgba(108,106,120,0.9)',
  62. position: 'inside',
  63. // formatter: function(params) {
  64. // let result = ''
  65. // for (let i in params) {
  66. // let value = '--'
  67. // if (params[i].data !== null) {
  68. // value = params[i].data
  69. // }
  70. // result += '<br>' + params[i].seriesName + ':' +
  71. // value
  72. // }
  73. // return result
  74. // }
  75. },
  76. dataZoom: [{
  77. type: 'inside',
  78. start: 1,
  79. end: 100
  80. },
  81. {
  82. type: 'slider',
  83. show: true,
  84. start: 1,
  85. end: 100,
  86. bottom: 10
  87. }
  88. ],
  89. series: []
  90. };
  91. </script>
  92. <script>
  93. var chart = null
  94. var chartTimeList=[],chartSeriesData=[]
  95. document.addEventListener('UniAppJSBridgeReady', function() {
  96. uni.getEnv(function(res) {
  97. const ids = GetQueryString('idList')
  98. const startTime = GetQueryString('startTime')
  99. const endTime = GetQueryString('endTime')
  100. const valueType = GetQueryString('valueType')
  101. const itemReadName = GetQueryString('itemReadName')
  102. var serviceTime
  103. let idList = JSON.parse(ids);
  104. //idList = idList.map(temp=>temp).join(',');
  105. var queryParams={
  106. idList: idList,
  107. startTime: startTime,
  108. endTime: endTime,
  109. }
  110. var serviceUrl = baseUrl + '/itemGroup/getItemListValue'
  111. getData(true,serviceUrl,queryParams)
  112. var timer = setInterval(() => {
  113. queryParams.startTime = queryParams.endTime
  114. queryParams.endTime = nowDate();
  115. getData(false,serviceUrl,queryParams)
  116. },5000);
  117. });
  118. function getData(first,serviceUrl,queryParams){
  119. const token = window.localStorage.getItem('C_TOKEN')
  120. $.ajax({
  121. url: serviceUrl,
  122. type: 'GET',
  123. data: queryParams,
  124. beforeSend: function(xhr) {
  125. // this.url =
  126. // `http://192.168.0.12:8081/itemGroup/getItemListValue`
  127. // this.url = window.location.origin +
  128. // `/itemGroup/getItemListValue?id=${id}&startTime=${startTime}&endTime=${endTime}`
  129. xhr.setRequestHeader("Authorization", "Bearer " +
  130. token);
  131. xhr.setRequestHeader("token", token);
  132. },
  133. success: (res) => {
  134. if (res.code === 200) {
  135. let valueList=[],valueTimeList=[];
  136. if(res.data.length>0){
  137. valueTimeList = res.data[0].dataTimeList;
  138. valueTimeList = valueTimeList.map(v=>v.substring(0,19))
  139. let service=[]
  140. for(let dataList of res.data){
  141. dataList.dataValueList = dataList.dataValueList.map(v=>v.substring(0,v.indexOf(".") + 3))
  142. let seriesData = {
  143. type:'line',
  144. name:dataList.describe!=null ? dataList.describe:dataList.itemReadName,
  145. data:dataList.dataValueList
  146. }
  147. service.push(seriesData)
  148. }
  149. if(first){
  150. chartTimeList = valueTimeList
  151. chartSeriesData = service
  152. option.xAxis.data = valueTimeList
  153. option.series = chartSeriesData
  154. chart = echarts.init(document.getElementById('main'));
  155. }else{
  156. chartTimeList = chartTimeList.concat(valueTimeList)
  157. chartTimeList.splice(0,valueTimeList.length)
  158. chartSeriesData[0].data = chartSeriesData[0].data.concat(service[0].data)
  159. chartSeriesData[0].data.splice(0,service[0].data.length)
  160. option.xAxis.data = chartTimeList
  161. option.series = chartSeriesData
  162. }
  163. var lastOption = chart.getOption();
  164. if (lastOption != undefined) {
  165. option.dataZoom[0].start = lastOption.dataZoom[0].start
  166. option.dataZoom[0].end = lastOption.dataZoom[0].end
  167. option.dataZoom[1].start = lastOption.dataZoom[1].start
  168. option.dataZoom[1].end = lastOption.dataZoom[1].end
  169. }
  170. chart.setOption(option)
  171. }
  172. }
  173. }
  174. })
  175. }
  176. })
  177. </script>
  178. </body>
  179. </html>