Index.cshtml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. @{
  2. ViewBag.Title = "历史记录查询";
  3. Layout = "~/Views/Shared/_LayoutIndex.cshtml";
  4. }
  5. <script>
  6. var checkedIds = [];
  7. $(function () {
  8. InitialPage();
  9. GetTree();
  10. GetPointGrid();
  11. $("#tabs").tabs();
  12. //device.init();
  13. });
  14. function getSelectedTabIndex() {
  15. return $("#tabs").tabs('option', 'active');
  16. }
  17. //初始化页面
  18. function InitialPage() {
  19. //layout布局
  20. $('#layout').layout({
  21. applyDemoStyles: true,
  22. onresize: function () {
  23. $(window).resize();
  24. }
  25. });
  26. //resize重设(表格、树形)宽高
  27. $(window).resize(function (e) {
  28. window.setTimeout(function () {
  29. $("#itemTree").setTreeHeight($(window).height() - 52);
  30. }, 200);
  31. e.stopPropagation();
  32. });
  33. }
  34. //加载树
  35. function GetTree() {
  36. var item = {
  37. height: $(window).height() - 52,
  38. url: "/PipeNetworkManage/Meter/GetMeterTreeJson?showcheck=true",
  39. oncheckboxclick: function (item, status) {
  40. GetAllCheckNodes(item.id, status, item.text);//维护 选中元素id的数组
  41. }
  42. };
  43. //初始化
  44. $("#itemTree").treeview(item);
  45. }
  46. //被选中元素的ID,TEXT 数组维护
  47. function GetAllCheckNodes(id, status, text) {
  48. //数据加入数组
  49. if (status == 1) {
  50. if (!checkedIds.contain(id)) {
  51. checkedIds.push(id);
  52. }
  53. }
  54. if (status == 0) {
  55. if (checkedIds.contain(id)) {
  56. checkedIds.splice(checkedIds.indexOf(id), 1);
  57. }
  58. }
  59. }
  60. //AutoComplete
  61. var device = {
  62. init: function () {
  63. var width = $('#device').width();
  64. $('#device').autocomplete({
  65. source: function (request, response) {
  66. $.ajax({
  67. url: "/IPm/DeviceInfo/GetDeviceBySearch",
  68. type: "GET",
  69. data: { q: $('#device').val() },
  70. dataType: "json",
  71. success: function (data) {
  72. response($.map(data, function (item) {
  73. console.log(item);
  74. return {
  75. label: item.label,
  76. value: "dev" + item.value
  77. }
  78. }));
  79. }
  80. });
  81. },
  82. select: function (event, ui) {
  83. $("#device").val(ui.item.label);
  84. PointTreeCode = ui.item.value;
  85. return false;
  86. }
  87. });
  88. }
  89. };
  90. function returnFloat(value){
  91. var value=Math.round(parseFloat(value)*100)/100;
  92. var xsd=value.toString().split(".");
  93. if(xsd.length==1){
  94. value=value.toString()+".00";
  95. return value;
  96. }
  97. if(xsd.length>1){
  98. if(xsd[1].length<2){
  99. value=value.toString()+"0";
  100. }
  101. return value;
  102. }
  103. }
  104. function GetPointGrid() {
  105. var selectedRowIndex = 0;
  106. var $gridTable = $('#pointGridTable');
  107. $gridTable.jqGrid({
  108. url: "/PipeNetworkManage/History/GetListJson",
  109. datatype: "json",
  110. height: $(window).height() - 170,
  111. width: $('.gridPanel').width(),
  112. autowidth: true,
  113. rownumbers: true,
  114. colModel: [
  115. { name: "测点名称", label: "测点名称", align: "left" },
  116. { name: "采集时间", label: "采集时间", align: "right" },
  117. {
  118. label: "净累计流量(m³)", name: "净累计流量", align: "right",
  119. formatter: function (cellvalue, options, rowObject) {
  120. if (cellvalue != null && cellvalue != "") {
  121. return cellvalue = returnFloat(cellvalue)
  122. } else {
  123. return cellvalue;
  124. }
  125. }
  126. },
  127. {
  128. label: "正累计流量(m³)", name: "正累计流量", align: "right",
  129. formatter: function (cellvalue, options, rowObject) {
  130. if (cellvalue != null && cellvalue != "") {
  131. return cellvalue = returnFloat(cellvalue)
  132. } else {
  133. return cellvalue;
  134. }
  135. }
  136. },
  137. {
  138. label: "负累计流量(m³)", name: "负累计流量", align: "right",
  139. formatter: function (cellvalue, options, rowObject) {
  140. if (cellvalue != null && cellvalue != "") {
  141. return cellvalue = returnFloat(cellvalue)
  142. } else {
  143. return cellvalue;
  144. }
  145. }
  146. },
  147. {
  148. label: "瞬时流量(m³/h)", name: "瞬时流量", align: "right",
  149. formatter: function (cellvalue, options, rowObject) {
  150. if (cellvalue != null && cellvalue != "") {
  151. return cellvalue = returnFloat(cellvalue)
  152. } else {
  153. return cellvalue;
  154. }
  155. }
  156. },
  157. {
  158. label: "压力(MPa)", name: "压力", align: "right",
  159. formatter: function (cellvalue, options, rowObject) {
  160. if (cellvalue != null && cellvalue != "") {
  161. return cellvalue = returnFloat(cellvalue)
  162. } else {
  163. return cellvalue;
  164. }
  165. }
  166. },
  167. {
  168. label: "电池电压(v)", name: "电池电压", align: "right",
  169. formatter: function (cellvalue, options, rowObject) {
  170. if (cellvalue != null && cellvalue != "") {
  171. return cellvalue = returnFloat(cellvalue)
  172. } else {
  173. return cellvalue;
  174. }
  175. }
  176. }
  177. ],
  178. viewrecords: true,
  179. rowNum: 30,
  180. rowList: [30, 50, 100],
  181. pager: "#gridPager",
  182. gridview: true,
  183. onSelectRow: function () {
  184. selectedRowIndex = $("#" + this.id).getGridParam('selrow');
  185. },
  186. gridComplete: function () {
  187. $("#" + this.id).setSelection(selectedRowIndex, false);
  188. }
  189. });
  190. //点击时间范围(今天、近7天、近一个月、近三个月)
  191. $("#time_horizon a.btn-default").click(function () {
  192. $("#time_horizon a.btn-default").removeClass("active");
  193. $(this).addClass("active");
  194. switch ($(this).attr('data-value')) {
  195. case "1"://今天
  196. $("#PointStartTime").val("@DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss")");
  197. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")");
  198. break;
  199. case "2"://近7天
  200. $("#PointStartTime").val("@DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd")");
  201. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd")");
  202. break;
  203. case "3"://近一个月
  204. $("#PointStartTime").val("@DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd")");
  205. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd")");
  206. break;
  207. case "4"://自定义
  208. $("#PointStartTime").val("");
  209. $("#PointEndTime").val("");
  210. break;
  211. default:
  212. break;
  213. }
  214. });
  215. //查询事件
  216. $("#btn_point_Search").click(function () {
  217. var PointStartTime = $("#PointStartTime").val();
  218. var PointEndTime = $("#PointEndTime").val();
  219. if (checkedIds.length == 0) {
  220. dialogMsg('请选择测点!', 0);
  221. return;
  222. }
  223. if (PointStartTime.length <= 0 || PointEndTime.length <= 0) {
  224. dialogMsg('请选择时间!', 0);
  225. return;
  226. }
  227. $gridTable.jqGrid('setGridParam', {
  228. postData: { deviceId: checkedIds.toString(), startT: PointStartTime, endT: PointEndTime },
  229. page: 1
  230. }).trigger('reloadGrid');
  231. });
  232. }
  233. //导出
  234. function btn_point_export() {
  235. dialogOpen({
  236. id: "ExcelIExportDialog",
  237. title: '导出采购报表',
  238. url: '/Utility/ExcelExportForm?gridId=pointGridTable',
  239. width: "500px",
  240. height: "380px",
  241. callBack: function (iframeId) {
  242. top.frames[iframeId].AcceptClick();
  243. }, btn: ['导出Excel', '关闭']
  244. });
  245. }
  246. </script>
  247. <div class="ui-layout" id="layout" style="height: 100%; width: 100%;">
  248. <div class="ui-layout-west">
  249. <div class="west-Panel">
  250. <div class="panel-Title">测点列表</div>
  251. <div id="itemTree"></div>
  252. </div>
  253. </div>
  254. <div class="ui-layout-center">
  255. <div class="center-Panel">
  256. <div class="panel-Title">历史记录</div>
  257. <div class="titlePanel">
  258. <div class="title-search">
  259. <table>
  260. <tr>
  261. @* <td style="padding-left: 10px;">测点名称:
  262. </td>
  263. <td style="padding-left: 10px;">
  264. <input type="text" id="device" name="device" class="form-control" style="width: 130px;" />
  265. </td>*@
  266. <td style="padding-left: 10px;">开始时间:
  267. </td>
  268. <td style="padding-left: 10px;">
  269. <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">
  270. </td>
  271. <td style="padding-left: 10px;">结束时间:
  272. </td>
  273. <td style="padding-left: 10px;">
  274. <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">
  275. </td>
  276. <td style="padding-left: 10px;">
  277. <div id="time_horizon" class="btn-group">
  278. <a class="btn btn-default" data-value="1">24小时</a>
  279. <a class="btn btn-default active" data-value="2">近7天</a>
  280. <a class="btn btn-default" data-value="3">近1个月</a>
  281. <a class="btn btn-default" data-value="4">自定义</a>
  282. </div>
  283. </td>
  284. <td style="padding-left: 10px;">
  285. <a id="btn_point_Search" class="btn btn-primary">&nbsp;查&nbsp;&nbsp;询</a>
  286. </td>
  287. </tr>
  288. </table>
  289. </div>
  290. <div class="toolbar">
  291. <div class="btn-group">
  292. <a id="lr-replace" class="btn btn-default" onclick="reload();"><i class="fa fa-refresh"></i>&nbsp;刷新</a>
  293. <a id="lr-export" class="btn btn-default" onclick="btn_point_export()"><i class="fa fa-sign-out"></i>&nbsp;导出</a>
  294. </div>
  295. </div>
  296. </div>
  297. <div class="gridPanel">
  298. <table id="pointGridTable"></table>
  299. <div id="gridPager"></div>
  300. </div>
  301. </div>
  302. </div>
  303. </div>