Index-bak.cshtml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. @{
  2. ViewBag.Title = "智能配表";
  3. Layout = "~/Views/Shared/_LayoutIndex.cshtml";
  4. }
  5. <script src="~/Content/scripts/plugins/echarts/echarts.min.js"></script>
  6. <script>
  7. var meterEchart;
  8. $(function () {
  9. InitialPage();
  10. GetTree();
  11. GetAutoMeter();
  12. $("#tabs").tabs();
  13. //device.init();
  14. });
  15. //初始化页面
  16. function InitialPage() {
  17. //layout布局
  18. $('#layout').layout({
  19. applyDemoStyles: true,
  20. onresize: function () {
  21. $(window).resize();
  22. }
  23. });
  24. //resize重设(表格、树形)宽高
  25. $(window).resize(function (e) {
  26. window.setTimeout(function () {
  27. $("#itemTree").setTreeHeight($(window).height() - 52);
  28. $("#meterEchart").height($(window).height() - 112);
  29. }, 200);
  30. e.stopPropagation();
  31. });
  32. $("#meterEchart").height($(window).height() - 112);
  33. }
  34. var itemId = 0;
  35. //加载树
  36. function GetTree() {
  37. var item = {
  38. height: $(window).height() - 52,
  39. url: "/PipeNetworkManage/Meter/GetMeterTreeJson?",
  40. onnodeclick: function (item) {
  41. itemId = item.id;
  42. //展开下级
  43. $(".bbit-tree-selected").children('.bbit-tree-ec-icon').trigger("click");
  44. },
  45. };
  46. //初始化
  47. $("#itemTree").treeview(item);
  48. }
  49. //AutoComplete
  50. var device = {
  51. init: function () {
  52. var width = $('#device').width();
  53. $('#device').autocomplete({
  54. source: function (request, response) {
  55. $.ajax({
  56. url: "/IPm/DeviceInfo/GetDeviceBySearch",
  57. type: "GET",
  58. data: { q: $('#device').val() },
  59. dataType: "json",
  60. success: function (data) {
  61. response($.map(data, function (item) {
  62. console.log(item);
  63. return {
  64. label: item.label,
  65. value: "dev" + item.value
  66. }
  67. }));
  68. }
  69. });
  70. },
  71. select: function (event, ui) {
  72. $("#device").val(ui.item.label);
  73. PointTreeCode = ui.item.value;
  74. return false;
  75. }
  76. });
  77. }
  78. };
  79. function GetAutoMeter() {
  80. meterEchart = echarts.init(document.getElementById('meterEchart'));
  81. option = {
  82. title: {
  83. text: '智能配表',
  84. x: 'center'
  85. },
  86. tooltip: {
  87. trigger: 'axis'
  88. },
  89. legend: {
  90. data: ['瞬时流量'],
  91. right: 80
  92. },
  93. grid: {
  94. left: '3%',
  95. right: '4%',
  96. bottom: '3%',
  97. containLabel: true
  98. },
  99. toolbox: {
  100. feature: {
  101. saveAsImage: {}
  102. }
  103. },
  104. xAxis: {
  105. type: 'category',
  106. interval: 0,
  107. data: [1,2,3,4,5,6,7,8,9]
  108. },
  109. yAxis: {
  110. name: "瞬时流量(m³)",
  111. type: 'value'
  112. },
  113. series: [
  114. {
  115. name: '瞬时流量',
  116. type: 'line',
  117. data: []
  118. }
  119. ]
  120. };
  121. meterEchart.setOption(option);
  122. //点击时间范围(今天、近7天、近一个月、近三个月)
  123. $("#time_horizon a.btn-default").click(function () {
  124. $("#time_horizon a.btn-default").removeClass("active");
  125. $(this).addClass("active");
  126. switch ($(this).attr('data-value')) {
  127. case "1"://今天
  128. $("#PointStartTime").val("@DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH-mm-ss")");
  129. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss")");
  130. break;
  131. case "2"://近7天
  132. $("#PointStartTime").val("@DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd")");
  133. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd")");
  134. break;
  135. case "3"://近一个月
  136. $("#PointStartTime").val("@DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd")");
  137. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd")");
  138. break;
  139. case "4"://自定义
  140. $("#PointStartTime").val("");
  141. $("#PointEndTime").val("");
  142. break;
  143. default:
  144. break;
  145. }
  146. });
  147. //查询事件
  148. $("#btn_point_Search").click(function () {
  149. var PointStartTime = $("#PointStartTime").val();
  150. var PointEndTime = $("#PointEndTime").val();
  151. if (itemId == 0) {
  152. dialogMsg('请选择测点!', 0);
  153. return;
  154. }
  155. if (PointStartTime.length <= 0 || PointEndTime.length <= 0) {
  156. dialogMsg('请选择时间!', 0);
  157. return;
  158. }
  159. var flowData;
  160. $.ajax({
  161. url: '/PipeNetworkManage/AutoMeter/AutoMeterData',
  162. data: { meterId: itemId, start: PointStartTime, end: PointEndTime },
  163. type: 'get',
  164. dataType: 'json',
  165. cache: false,
  166. async: false,
  167. success: function (data) {
  168. //console.log(data);
  169. flowData = data;
  170. },
  171. error: function (a, b, c) {
  172. console.log(b);
  173. }
  174. });
  175. var dataXY = [];
  176. var dataX = [];
  177. var data = flowData[0].flowData;
  178. for (var i = 0; i < data.length; i++) {
  179. var tmp = [];
  180. tmp.push(data[i].flowTime);
  181. tmp.push(parseFloat(data[i].flow));
  182. dataXY.push(tmp)
  183. dataX.push(data[i].flowTime);
  184. }
  185. console.log(dataX);
  186. meterEchart.setOption({
  187. series: {
  188. name: '瞬时流量',
  189. type: 'line',
  190. data: dataXY,
  191. },
  192. xAxis:{
  193. data: dataX
  194. }
  195. })
  196. });
  197. }
  198. //导出
  199. function btn_point_export() {
  200. dialogOpen({
  201. id: "ExcelIExportDialog",
  202. title: '导出采购报表',
  203. url: '/Utility/ExcelExportForm?gridId=pointGridTable',
  204. width: "500px",
  205. height: "380px",
  206. callBack: function (iframeId) {
  207. top.frames[iframeId].AcceptClick();
  208. }, btn: ['导出Excel', '关闭']
  209. });
  210. }
  211. </script>
  212. <div class="ui-layout" id="layout" style="height: 100%; width: 100%;">
  213. <div class="ui-layout-west">
  214. <div class="west-Panel">
  215. <div class="panel-Title">测点列表</div>
  216. <div id="itemTree"></div>
  217. </div>
  218. </div>
  219. <div class="ui-layout-center">
  220. <div class="center-Panel">
  221. <div class="panel-Title">智能配表</div>
  222. <div class="titlePanel">
  223. <div class="title-search">
  224. <table>
  225. <tr>
  226. @* <td style="padding-left: 10px;">测点名称:
  227. </td>
  228. <td style="padding-left: 10px;">
  229. <input type="text" id="device" name="device" class="form-control" style="width: 130px;" />
  230. </td>*@
  231. <td style="padding-left: 10px;">
  232. 开始时间:
  233. </td>
  234. <td style="padding-left: 10px;">
  235. <input id="PointStartTime" readonly type="text" value="@LeaRun.Util.Time.GetDate(-7)" class="form-control input-wdatepicker" onfocus="WdatePicker({maxDate:'%y-%M-%d',dateFmt:'yyyy-MM-dd HH:mm:ss',maxDate:'#F{$dp.$D(\'PointEndTime\')}'})" style="width:175px">
  236. </td>
  237. <td style="padding-left: 10px;">
  238. 结束时间:
  239. </td>
  240. <td style="padding-left: 10px;">
  241. <input id="PointEndTime" readonly type="text" value="@LeaRun.Util.Time.GetToday()" class="form-control input-wdatepicker" onfocus="WdatePicker({maxDate:'%y-%M-%d',dateFmt:'yyyy-MM-dd HH:mm:ss',minDate:'#F{$dp.$D(\'PointStartTime\')}'})" style="width:175px">
  242. </td>
  243. <td style="padding-left: 10px;">
  244. <div id="time_horizon" class="btn-group">
  245. <a class="btn btn-default" data-value="1">24小时</a>
  246. <a class="btn btn-default active" data-value="2">近7天</a>
  247. <a class="btn btn-default" data-value="3">近1个月</a>
  248. <a class="btn btn-default" data-value="4">自定义</a>
  249. </div>
  250. </td>
  251. <td style="padding-left: 10px;">
  252. <a id="btn_point_Search" class="btn btn-primary">&nbsp;查&nbsp;&nbsp;询</a>
  253. </td>
  254. </tr>
  255. </table>
  256. </div>
  257. <div class="toolbar">
  258. <div class="btn-group">
  259. <a id="lr-replace" class="btn btn-default" onclick="reload();"><i class="fa fa-refresh"></i>&nbsp;刷新</a>
  260. <a id="lr-export" class="btn btn-default" onclick="btn_point_export()"><i class="fa fa-sign-out"></i>&nbsp;导出</a>
  261. </div>
  262. </div>
  263. </div>
  264. <div class="gridPanel">
  265. <div id="meterEchart"></div>
  266. </div>
  267. </div>
  268. </div>
  269. </div>