line-wv.html 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id="main" style="width:340px;height:300px;margin:auto"></div>
  11. <script src="./echarts.min.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>
  15. function GetQueryString(name) {
  16. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  17. var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
  18. var context = "";
  19. if (r != null)
  20. context = decodeURIComponent(r[2]);
  21. reg = null;
  22. r = null;
  23. return context == null || context == "" || context == "undefined" ? "" : context;
  24. }
  25. function nowDate() {
  26. var date = new Date();
  27. var sign2 = ":";
  28. var year = date.getFullYear() // 年
  29. var month = date.getMonth() + 1; // 月
  30. var day = date.getDate(); // 日
  31. var hour = date.getHours(); // 时
  32. var minutes = date.getMinutes(); // 分
  33. var seconds = date.getSeconds() //秒
  34. var weekArr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天'];
  35. var week = weekArr[date.getDay()];
  36. // 给一位数的数据前面加 “0”
  37. if (month >= 1 && month <= 9) {
  38. month = "0" + month;
  39. }
  40. if (day >= 0 && day <= 9) {
  41. day = "0" + day;
  42. }
  43. if (hour >= 0 && hour <= 9) {
  44. hour = "0" + hour;
  45. }
  46. if (minutes >= 0 && minutes <= 9) {
  47. minutes = "0" + minutes;
  48. }
  49. if (seconds >= 0 && seconds <= 9) {
  50. seconds = "0" + seconds;
  51. }
  52. return year + "-" + month + "-" + day + " " + hour + sign2 + minutes + sign2 + seconds;
  53. }
  54. </script>
  55. <script>
  56. var option = {
  57. xAxis: {
  58. type: 'category',
  59. data: [],
  60. axisLabel: {
  61. formatter: function(value) {
  62. return value.substring(11, 19) + "\n" + value.substring(0, 10).split('-').join('')
  63. }
  64. }
  65. },
  66. yAxis: {
  67. type: 'value'
  68. },
  69. legend: {
  70. type: 'scroll',
  71. top: 0
  72. },
  73. tooltip: {
  74. trigger: 'axis',
  75. axisPointer: {
  76. type: 'cross',
  77. lineStyle: {
  78. type: 'dashed'
  79. },
  80. label: {
  81. show: false
  82. }
  83. },
  84. backgroundColor:'rgba(255,255,255,0.1)',//通过设置rgba调节背景颜色与透明度
  85. position: [0, 20],
  86. formatter: function(params) {
  87. let result = ''
  88. for (let i in params) {
  89. let value = '--'
  90. if (params[i].data !== null) {
  91. value = params[i].data
  92. }
  93. result += '<br>' + params[i].seriesName + ':' +
  94. value
  95. }
  96. return result
  97. }
  98. },
  99. dataZoom: [{
  100. type: 'inside',
  101. start: 0,
  102. end: 10
  103. },
  104. {
  105. type: 'slider',
  106. show: true,
  107. start: 0,
  108. end: 10,
  109. bottom: 10
  110. }
  111. ],
  112. series: []
  113. };
  114. </script>
  115. <script>
  116. document.addEventListener('UniAppJSBridgeReady', function() {
  117. uni.getEnv(function(res) {
  118. const id = GetQueryString('id')
  119. const startTime = GetQueryString('startTime')
  120. const endTime = nowDate()
  121. const token = window.localStorage.getItem('C_TOKEN')
  122. var echartsData
  123. let chartParams = {
  124. id: id
  125. }
  126. $.ajax({
  127. url: "",
  128. type: 'GET',
  129. beforeSend: function(xhr) {
  130. this.url =
  131. `http://192.168.0.40:8081/chart/getChartById?id=${id}&startTime=${startTime}&endTime=${endTime}`
  132. // this.url = window.location.origin +
  133. // `/chart/getChartById?id=${id}&startTime=${startTime}&endTime=${endTime}`
  134. xhr.setRequestHeader("Authorization", "Bearer " +
  135. token);
  136. xhr.setRequestHeader("token", token);
  137. },
  138. success: function(res) {
  139. if (res.code === 200) {
  140. echartsData = res.data.chartItemList
  141. getServerData(echartsData)
  142. getEmit(res)
  143. }
  144. }
  145. })
  146. function initEcharts() {
  147. var chart = echarts.init(document.getElementById('main'));
  148. chart.setOption(option)
  149. }
  150. function getServerData(echartsData) {
  151. const chartData = echartsData
  152. const timeData = chartData[0].valueTimeList
  153. const series = chartData.map(item => {
  154. return {
  155. name: item.describe ? item.describe : item.itemName,
  156. data: item.valueList,
  157. type: 'line'
  158. }
  159. })
  160. var chart = echarts.init(document.getElementById('main'));
  161. var lastOption=chart.getOption();
  162. if(lastOption!=undefined){
  163. option.dataZoom[0].start=lastOption.dataZoom[0].start
  164. option.dataZoom[0].end=lastOption.dataZoom[0].end
  165. option.dataZoom[1].start=lastOption.dataZoom[1].start
  166. option.dataZoom[1].end=lastOption.dataZoom[1].end
  167. }
  168. option.xAxis.data = timeData
  169. option.series = series
  170. initEcharts()
  171. }
  172. function getEmit(res) {
  173. const {
  174. bucketType,
  175. bucketValue
  176. } = res.data
  177. var time = null
  178. switch (bucketType) {
  179. case 0:
  180. time = 86400000 * bucketValue
  181. break;
  182. case 1:
  183. time = 3600000 * bucketValue
  184. break;
  185. case 2:
  186. time = 60000 * bucketValue
  187. break;
  188. case 3:
  189. time = 1000 * bucketValue
  190. break;
  191. }
  192. var lineTime = setInterval(() => {
  193. const currentTime = nowDate();
  194. var lastTime = localStorage.getItem('sTime');
  195. localStorage.setItem('sTime', currentTime)
  196. $.ajax({
  197. url: "",
  198. type: 'GET',
  199. beforeSend: function(xhr) {
  200. this.url =
  201. `http://192.168.0.40:8081/chart/getChartById?id=${id}&startTime=${lastTime}&endTime=${currentTime}`
  202. // this.url = window.location.origin +
  203. // `/chart/getChartById?id=${id}&startTime=${startTime}&endTime=${endTime}`
  204. xhr.setRequestHeader("Authorization", "Bearer " +
  205. token);
  206. xhr.setRequestHeader("token", token);
  207. },
  208. success: function(res) {
  209. if (res.code === 200) {
  210. let chartItemList = res.data.chartItemList;
  211. chartItemList.forEach((item, index) => {
  212. if (item.itemId === echartsData[
  213. index].itemId) {
  214. if (item.valueList.length !== 0) {
  215. //执行将新数据添加进去,旧数据去除一个
  216. echartsData[index].valueList =
  217. echartsData[index].valueList
  218. .concat(item.valueList)
  219. echartsData[
  220. index]
  221. .valueList.splice(0, item
  222. .valueList.length)
  223. echartsData[index]
  224. .valueTimeList = echartsData[
  225. index]
  226. .valueTimeList.concat(item
  227. .valueTimeList)
  228. echartsData[
  229. index]
  230. .valueTimeList.splice(0,
  231. item
  232. .valueTimeList.length)
  233. }
  234. }
  235. })
  236. getServerData(echartsData)
  237. }
  238. }
  239. })
  240. }, time)
  241. }
  242. })
  243. })
  244. </script>
  245. </body>
  246. </html>