celsiusrecord_chart.html 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="keywords" content="dongke,mes,ibossmes">
  6. <meta name="description" content="制造企业生产过程执行管理系统">
  7. <meta name="author" content="xuwei">
  8. <title>东科软件</title>
  9. <script src="/plugins/xeasyui/xeasyui.min.js"></script>
  10. <script src="/plugins/chartjs/chart.min.js"></script>
  11. <script src="/plugins/chartjs/utils.js"></script>
  12. <script src="/plugins/xcountto/xcountTo.min.js"></script>
  13. <style type="text/css">
  14. .panel-body
  15. {
  16. background-color:#444;
  17. }
  18. input {
  19. color: #fff;
  20. background-color: #666;
  21. }
  22. .textbox {
  23. border: 0;
  24. background-color: #666;
  25. }
  26. </style>
  27. </head>
  28. <body style="width:1200px;color:white;background-color:#666">
  29. <div style="float:left;">
  30. <div style="float: left; padding:5px;">
  31. <div id="count_bar" class="easyui-panel" title="温湿度" data-options="collapsible:true,width:1000,iconCls:'icon-grid'">
  32. <div style="padding-left:20px;padding-top:20px;">
  33. <form id="ff">
  34. <input class="easyui-datetimebox" id="DATEBEGIN" name="DATEBEGIN" data-options="required:true,prompt:'开始',tipPosition:'top'" style="width: 180px; height: 32px;">
  35. <input class="easyui-datetimebox" id="DATEEND" name="DATEEND" data-options="required:true,prompt:'截止',tipPosition:'top'" style="width:180px; height:32px;">
  36. 温湿计
  37. <input class="easyui-combobox w-input" id="THERMOMETERID" name="THERMOMETERID" data-options="required:true,prompt:'温湿计',tipPosition:'top',url:'getThermometer.ashx',method:'get',valueField:'THERMOMETERID',textField:'THERMOMETERCODE',panelHeight:'200px',editable:'true'" style="width:100px;height:32px;">
  38. 温湿度
  39. <select class="easyui-combobox" id="TYPE" name="TYPE" style="width:100px;height:32px;">
  40. <option value="温度">温度</option>
  41. <option value="湿度">湿度</option>
  42. </select>
  43. <a href="javascript:void(0)" id="btnSearchSubmit" title="搜索" class="easyui-linkbutton" plain="false" onclick="tbSearchSubmit()" style="width:100px;">搜索</a>
  44. </form>
  45. </div>
  46. <div style="padding:10px;">
  47. <canvas id="linecanvas" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;"></canvas>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. <!--第四行-->
  53. <div style="float:left;">
  54. <div style="float: left; padding:5px;">
  55. </div>
  56. <div style="float: left; padding:5px;">
  57. </div>
  58. </div>
  59. <script>
  60. var color = Chart.helpers.color;
  61. window.chartColors = {
  62. red: color('rgb(255, 99, 132)').alpha(1).rgbString(),
  63. orange: color('rgb(255, 159, 64)').alpha(1).rgbString(),
  64. yellow: color('rgb(255, 205, 86)').alpha(1).rgbString(),
  65. green: color('rgb(75, 192, 192)').alpha(1).rgbString(),
  66. blue: color('rgb(54, 162, 235)').alpha(1).rgbString(),
  67. purple: color('rgb(153, 102, 255)').alpha(1).rgbString(),
  68. grey: color('rgb(231,233,237)').alpha(1).rgbString()
  69. };
  70. var colors = [
  71. window.chartColors.red,
  72. window.chartColors.orange,
  73. window.chartColors.yellow,
  74. window.chartColors.green,
  75. window.chartColors.blue,
  76. window.chartColors.purple
  77. ]
  78. window.randomScalingFactor = function () {
  79. return (Math.random() > 0.5 ? 1.0 : 1.0) * Math.round(Math.random() * 80);
  80. }
  81. window.randomScalingFactor255 = function () {
  82. return Math.round(Math.random() * 255);
  83. }
  84. $(document).ready(function () {
  85. var ctime = new Date();
  86. var beginDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate() + " 00:00:00";
  87. var endDate = ctime.getFullYear() + "-" + (ctime.getMonth() + 1) + "-" + ctime.getDate() + " 23:59:59";
  88. $("#DATEBEGIN").datetimebox("setValue", beginDate);
  89. $("#DATEEND").datetimebox("setValue", endDate);
  90. //测试数据
  91. //$("#DATEBEGIN").datetimebox("setValue", "2019-12-24 00:00:00");
  92. //$("#DATEEND").datetimebox("setValue", "2019-12-30 23:59:59");
  93. //定义线图
  94. window.lineConfig = {
  95. data: {
  96. labels: [],
  97. datasets: []
  98. },
  99. type: 'line',
  100. options: {
  101. responsive: true,
  102. title: {
  103. display: false,
  104. text: '线状图'
  105. },
  106. tooltips: {
  107. mode: 'index',
  108. intersect: false,
  109. },
  110. hover: {
  111. mode: 'nearest',
  112. intersect: true
  113. },
  114. scales: {
  115. xAxes: [{
  116. display: true,
  117. scaleLabel: {
  118. display: false,
  119. labelString: ''
  120. }
  121. }],
  122. yAxes: [{
  123. display: true,
  124. scaleLabel: {
  125. display: false,
  126. labelString: 'Value'
  127. }
  128. }]
  129. }
  130. }
  131. };
  132. Chart.defaults.global.defaultFontColor = 'white';
  133. var ctxLine = document.getElementById("linecanvas").getContext("2d");
  134. window.line = new Chart(ctxLine, lineConfig);
  135. });
  136. function tbSearchSubmit() {
  137. if ($('#ff').form("validate")) {
  138. //读取温湿度数据
  139. $.get('getCelsiusrecord.ashx?r=' + Math.random(), $('#ff').serializeJson(), function (data) {
  140. var json = JSON.parse(data);
  141. if (json["success"] == true) {
  142. loadLine(json["rows"],$('#TYPE').val());
  143. }
  144. else {
  145. alert('数据读取失败!');
  146. }
  147. });
  148. }
  149. }
  150. function loadLine(rows,field) {
  151. //拼合时间标签 只取第一天的时间
  152. var labels = [];
  153. labels = JSON.parse('[' + rows[0]["时间"] + ']');
  154. labels.sort();
  155. //for (var i = 0; i < 48; i++) labels.push((i / 2).toString().replace('.5',':30'));
  156. var datasets = [];
  157. colors = [];
  158. for (var i = 0; i < rows.length; i++) {
  159. colors.push(color('rgb(' + randomScalingFactor255() + ',' + randomScalingFactor255() + ', ' + randomScalingFactor255()+')').alpha(1).rgbString());
  160. datasets.push({
  161. label: rows[i]["日期"],
  162. backgroundColor: color(colors[i]).alpha(0.6).rgbString(),
  163. borderColor: colors[i],
  164. borderWidth: 1,
  165. data: JSON.parse('['+rows[i][field] + ']'),
  166. fill: false,
  167. });
  168. }
  169. //var lines = ["线1", "线2", "线3", "线4", "线5", "线6"];
  170. //var datas = [];
  171. //var datasets = [];
  172. //for (var i = 0; i < 6; i++) {
  173. // datas.push([randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]);
  174. // datasets.push({
  175. // label: lines[i],
  176. // backgroundColor: color(colors[i]).alpha(0.6).rgbString(),
  177. // borderColor: colors[i],
  178. // borderWidth: 1,
  179. // data: datas[i],
  180. // fill: false,
  181. // });
  182. //}
  183. window.lineConfig.data.labels = labels;
  184. window.lineConfig.data.datasets = datasets;
  185. window.line.update();
  186. }
  187. </script>
  188. </body>
  189. </html>