Index.cshtml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. @{
  2. ViewBag.Title = "日报表";
  3. Layout = "~/Views/Shared/_LayoutIndex.cshtml";
  4. }
  5. <script>
  6. "use strict"
  7. $(function () {
  8. InitialPage();
  9. initControl();
  10. GetPointGrid();
  11. })
  12. //初始化页面
  13. function InitialPage() {
  14. //layout布局
  15. $('#layout').layout({
  16. applyDemoStyles: true,
  17. onresize: function () {
  18. $(window).resize();
  19. }
  20. });
  21. // resize重设(表格、树形)宽高
  22. $(window).resize(function (e) {
  23. window.setTimeout(function () {
  24. $("#pointGridTable").setGridWidth(($('.gridPanel').width()));
  25. $("#pointGridTable").setGridHeight($(window).height() - 160);
  26. }, 200);
  27. e.stopPropagation();
  28. });
  29. }
  30. //获取列表
  31. function GetPointGrid() {
  32. var $gridTable = $('#pointGridTable');
  33. $gridTable.jqGrid({
  34. url: "../../WaterWellManage/DayReport/GetListJson",
  35. datatype: "json",
  36. height: $(window).height() - 160,
  37. autowidth: true,
  38. rownumbers: true,
  39. postData: { waterWellId: "", date: "" },
  40. colModel: [
  41. { name: 'WaterWellId', label: 'id', hidden: true },
  42. { name: 'Day', label: '日期', hidden: true },
  43. { name: "Time", label: "小时", width: 80, align: "center", fixed: true },
  44. { name: "MaxVoltageA", label: "最大值", width: 80, align: "right", fixed: true },
  45. { name: "MinVoltageA", label: "最小值", width: 80, align: "right", fixed: true },
  46. { name: "AvgVoltageA", label: "平均值", width: 80, align: "right", fixed: true },
  47. { name: "MaxVoltageB", label: "最大值", width: 80, align: "right", fixed: true },
  48. { name: "MinVoltageB", label: "最小值", width: 80, align: "right", fixed: true },
  49. { name: "AvgVoltageB", label: "平均值", width: 80, align: "right", fixed: true },
  50. { name: "MaxVoltageC", label: "最大值", width: 80, align: "right", fixed: true },
  51. { name: "MinVoltageC", label: "最小值", width: 80, align: "right", fixed: true },
  52. { name: "AvgVoltageC", label: "平均值", width: 80, align: "right", fixed: true },
  53. { name: "MaxCurrentA", label: "最大值", width: 80, align: "right", fixed: true },
  54. { name: "MinCurrentA", label: "最小值", width: 80, align: "right", fixed: true },
  55. { name: "AvgCurrentA", label: "平均值", width: 80, align: "right", fixed: true },
  56. { name: "MaxCurrentB", label: "最大值", width: 80, align: "right", fixed: true },
  57. { name: "MinCurrentB", label: "最小值", width: 80, align: "right", fixed: true },
  58. { name: "AvgCurrentB", label: "平均值", width: 80, align: "right", fixed: true },
  59. { name: "MaxCurrentC", label: "最大值", width: 80, align: "right", fixed: true },
  60. { name: "MinCurrentC", label: "最小值", width: 80, align: "right", fixed: true },
  61. { name: "AvgCurrentC", label: "平均值", width: 80, align: "right", fixed: true },
  62. { name: "MaxActiveElectricalEnergy", label: "起始值", width: 80, align: "right", fixed: true },
  63. { name: "MinActiveElectricalEnergy", label: "终止值", width: 80, align: "right", fixed: true },
  64. { name: "IncrementActiveElectricalEnergy", label: "增量", width: 80, align: "right", fixed: true },
  65. { name: "MaxNetAccumulatedCurrent", label: "起始值", width: 80, align: "right", fixed: true },
  66. { name: "MinNetAccumulatedCurrent", label: "终止值", width: 80, align: "right", fixed: true },
  67. { name: "IncrementNetAccumulatedCurrent", label: "增量", width: 80, align: "right", fixed: true },
  68. { name: "MaxPressure", label: "最大值", width: 80, align: "right", fixed: true },
  69. { name: "MinPressure", label: "最小值", width: 80, align: "right", fixed: true },
  70. { name: "AvgPressure", label: "平均值", width: 80, align: "right", fixed: true },
  71. { name: "MaxInstantaneousFlow", label: "最大值", width: 80, align: "right", fixed: true },
  72. { name: "MinInstantaneousFlow", label: "最小值", width: 80, align: "right", fixed: true },
  73. { name: "AvgInstantaneousFlow", label: "平均值", width: 80, align: "right", fixed: true },
  74. { name: "MaxTurbidity", label: "最大值", width: 80, align: "right", fixed: true },
  75. { name: "MinTurbidity", label: "最小值", width: 80, align: "right", fixed: true },
  76. { name: "AvgTurbidity", label: "平均值", width: 80, align: "right", fixed: true },
  77. { name: "MaxTemperature", label: "最大值", width: 80, align: "right", fixed: true },
  78. { name: "MinTemperature", label: "最小值", width: 80, align: "right", fixed: true },
  79. { name: "AvgTemperature", label: "平均值", width: 80, align: "right", fixed: true },
  80. { name: "MaxHeightOfLiquidLevel", label: "最大值", width: 80, align: "right", fixed: true },
  81. { name: "MinHeightOfLiquidLevel", label: "最小值", width: 80, align: "right", fixed: true },
  82. { name: "AvgHeightOfLiquidLevel", label: "平均值", width: 80, align: "right", fixed: true },
  83. { name: "MaxFrequency", label: "最大值", width: 80, align: "right", fixed: true },
  84. { name: "MinFrequency", label: "最小值", width: 80, align: "right", fixed: true },
  85. { name: "AvgFrequency", label: "平均值", width: 80, align: "right", fixed: true }
  86. ],
  87. viewrecords: true,
  88. rowNum: 24,
  89. sortable: true,
  90. sortname: '采集时间',
  91. sortorder: 'desc',
  92. gridview: true,
  93. footerrow: true,
  94. subGrid: true,
  95. subGridRowExpanded: function (subgrid_id, row_id) {
  96. var rowData = $(this).getRowData(row_id);
  97. var Time = rowData['Time'];
  98. var Day = rowData['Day'];
  99. var WaterWellId = rowData['WaterWellId'];
  100. var subgrid_table_id = subgrid_id + "_t";
  101. $("#" + subgrid_id).html(
  102. "<table id='" + subgrid_table_id
  103. + "' class='scroll'></table>");
  104. jQuery("#" + subgrid_table_id).jqGrid(
  105. {
  106. url: '../../WaterWellManage/DayReport/GetSubListJson?id=' + row_id + '&Time=' + Time + '&Day=' + Day + '&WaterWellId='+WaterWellId,
  107. datatype: "json",
  108. colNames: ['水源井名称', '厂商编码', '水源井编号', '采集时间', 'A相电压', 'B相电压', 'C相电压', 'A相电流', 'B相电流', 'C相电流', '有功电能', '净累计流量', '压力', '瞬时流量', '浊度', '温度', '液位高度', '泵频率', '泵运行状态', '泵运行状态故障描述', '软启动器状态', '软启动器故障描述', '热继电器跳闸状态', '热继电器跳闸故障描述', '箱门状态'],
  109. colModel: [
  110. { name: "WaterWellName", index: "WaterWellName", width: 100, key: true },
  111. { name: "ManufacturerCode", index: "ManufacturerCode", width: 100, key: true },
  112. { name: "WaterWellCode", index: "WaterWellCode", width: 100, key: true },
  113. { name: "GetDateTime", index: "GetDateTime", width: 140, key: true },
  114. { name: "VoltageA", index: "VoltageA", width: 100, key: true, formatter: 'number' },
  115. { name: "VoltageB", index: "VoltageB", width: 100, key: true, formatter: 'number' },
  116. { name: "VoltageC", index: "VoltageC", width: 100, key: true, formatter: 'number' },
  117. { name: "CurrentA", index: "CurrentA", width: 100, key: true, formatter: 'number' },
  118. { name: "CurrentB", index: "CurrentB", width: 100, key: true, formatter: 'number' },
  119. { name: "CurrentC", index: "CurrentC", width: 100, key: true, formatter: 'number' },
  120. { name: "ActiveElectricalEnergy", index: "ActiveElectricalEnergy", width: 100, key: true, formatter: 'number' },
  121. { name: "NetAccumulatedCurrent", index: "NetAccumulatedCurrent", width: 100, key: true, formatter: 'number' },
  122. { name: "Pressure", index: "Pressure", width: 100, key: true, formatter: 'number' },
  123. { name: "InstantaneousFlow", index: "InstantaneousFlow", width: 100, key: true, formatter: 'number' },
  124. { name: "Turbidity", index: "Turbidity", width: 100, key: true, formatter: 'number' },
  125. { name: "Temperature", index: "Temperature", width: 100, key: true, formatter: 'number' },
  126. { name: "HeightOfLiquidLevel", index: "HeightOfLiquidLevel", width: 100, key: true, formatter: 'number' },
  127. { name: "Frequency", index: "Frequency", width: 100, key: true, formatter: 'number' },
  128. { name: "RunningState", index: "RunningState", width: 100, key: true, formatter: "select", editoptions: { value: "0:停止;1:启动;2:故障" } },
  129. { name: "RunningStateDiscription", index: "RunningStateDiscription", width: 140, key: true },
  130. { name: "SoftStarterFault", index: "SoftStarterFault", width: 100, key: true, formatter: "select", editoptions: { value: "0:正常;1:故障;" } },
  131. { name: "SoftStarterFaultDiscription", index: "SoftStarterFaultDiscription", width: 140, key: true },
  132. { name: "ThermalRelayTripFault", index: "ThermalRelayTripFault", width: 100, key: true, formatter: "select", editoptions: { value: "0:正常;1:故障;" } },
  133. { name: "ThermalRelayTripFaultDiscription", index: "ThermalRelayTripFaultDiscription", width: 140, key: true },
  134. { name: "BoxDoorAlarm", index: "BoxDoorAlarm", width: 120, key: true, formatter: "select", editoptions: { value: "0:开;1:关;" } }
  135. ],
  136. rowNum: 100,
  137. height: '100%'
  138. });
  139. },
  140. gridComplete: function () {
  141. $gridTable.footerData('set', {
  142. "Time": '合计',
  143. MaxVoltageA: $gridTable.getCol('MaxVoltageA', false, 'max'),
  144. MinVoltageA: $gridTable.getCol('MinVoltageA', false, 'min'),
  145. AvgVoltageA: $gridTable.getCol('MinVoltageA', false, 'avg').toFixed(2),
  146. MaxVoltageB: $gridTable.getCol('MaxVoltageB', false, 'max'),
  147. MinVoltageB: $gridTable.getCol('MinVoltageB', false, 'min'),
  148. AvgVoltageB: $gridTable.getCol('AvgVoltageB', false, 'avg').toFixed(2),
  149. MaxVoltageC: $gridTable.getCol('MaxVoltageC', false, 'max'),
  150. MinVoltageC: $gridTable.getCol('MinVoltageC', false, 'min'),
  151. AvgVoltageC: $gridTable.getCol('AvgVoltageC', false, 'avg').toFixed(2),
  152. MaxCurrentA: $gridTable.getCol('MaxCurrentA', false, 'max'),
  153. MinCurrentA: $gridTable.getCol('MinCurrentA', false, 'min'),
  154. AvgCurrentA: $gridTable.getCol('AvgCurrentA', false, 'avg').toFixed(2),
  155. MaxCurrentB: $gridTable.getCol('MaxCurrentB', false, 'max'),
  156. MinCurrentB: $gridTable.getCol('MinCurrentB', false, 'min'),
  157. AvgCurrentB: $gridTable.getCol('AvgCurrentB', false, 'avg').toFixed(2),
  158. MaxCurrentC: $gridTable.getCol('MaxCurrentC', false, 'max'),
  159. MinCurrentC: $gridTable.getCol('MinCurrentC', false, 'min'),
  160. AvgCurrentC: $gridTable.getCol('AvgCurrentC', false, 'avg').toFixed(2),
  161. MaxActiveElectricalEnergy: $gridTable.getCol('MaxActiveElectricalEnergy', false, 'max'),
  162. MinActiveElectricalEnergy: $gridTable.getCol('MinActiveElectricalEnergy', false, 'min'),
  163. IncrementActiveElectricalEnergy: $gridTable.getCol('IncrementActiveElectricalEnergy', false, 'sum'),
  164. MaxNetAccumulatedCurrent: $gridTable.getCol('MaxNetAccumulatedCurrent', false, 'max'),
  165. MinNetAccumulatedCurrent: $gridTable.getCol('MinNetAccumulatedCurrent', false, 'min'),
  166. IncrementNetAccumulatedCurrent: $gridTable.getCol('IncrementNetAccumulatedCurrent', false, 'sum'),
  167. MaxPressure: $gridTable.getCol('MaxPressure', false, 'max'),
  168. MinPressure: $gridTable.getCol('MinPressure', false, 'min'),
  169. AvgPressure: $gridTable.getCol('AvgPressure', false, 'avg').toFixed(2),
  170. MaxInstantaneousFlow: $gridTable.getCol('MaxInstantaneousFlow', false, 'max'),
  171. MinInstantaneousFlow: $gridTable.getCol('MinInstantaneousFlow', false, 'min'),
  172. AvgInstantaneousFlow: $gridTable.getCol('AvgInstantaneousFlow', false, 'avg').toFixed(2),
  173. MaxTurbidity: $gridTable.getCol('MaxTurbidity', false, 'max'),
  174. MinTurbidity: $gridTable.getCol('MinTurbidity', false, 'min'),
  175. AvgTurbidity: $gridTable.getCol('AvgTurbidity', false, 'avg').toFixed(2),
  176. MaxTemperature: $gridTable.getCol('MaxTemperature', false, 'max'),
  177. MinTemperature: $gridTable.getCol('MinTemperature', false, 'min'),
  178. AvgTemperature: $gridTable.getCol('AvgTemperature', false, 'avg').toFixed(2),
  179. MaxHeightOfLiquidLevel: $gridTable.getCol('MaxHeightOfLiquidLevel', false, 'max'),
  180. MinHeightOfLiquidLevel: $gridTable.getCol('MinHeightOfLiquidLevel', false, 'min'),
  181. AvgHeightOfLiquidLevel: $gridTable.getCol('AvgHeightOfLiquidLevel', false, 'avg').toFixed(2),
  182. MaxFrequency: $gridTable.getCol('MaxFrequency', false, 'max'),
  183. MinFrequency: $gridTable.getCol('MinFrequency', false, 'min'),
  184. AvgFrequency: $gridTable.getCol('AvgFrequency', false, 'avg').toFixed(2)
  185. });
  186. }
  187. });
  188. // 设置头部
  189. $gridTable.jqGrid('setGroupHeaders', {
  190. useColSpanStyle: true,
  191. groupHeaders: [
  192. { startColumnName: 'MaxVoltageA', numberOfColumns: 3, titleText: 'A相电压(V)' },
  193. { startColumnName: 'MaxVoltageB', numberOfColumns: 3, titleText: 'B相电压(V)' },
  194. { startColumnName: 'MaxVoltageC', numberOfColumns: 3, titleText: 'C相电压(V)' },
  195. { startColumnName: 'MaxCurrentA', numberOfColumns: 3, titleText: 'A相电流(A)' },
  196. { startColumnName: 'MaxCurrentB', numberOfColumns: 3, titleText: 'B相电流(A)' },
  197. { startColumnName: 'MaxCurrentC', numberOfColumns: 3, titleText: 'C相电流(A)' },
  198. { startColumnName: 'MaxActiveElectricalEnergy', numberOfColumns: 3, titleText: '有功电能' },
  199. { startColumnName: 'MaxNetAccumulatedCurrent', numberOfColumns: 3, titleText: '净累计流量' },
  200. { startColumnName: 'MaxPressure', numberOfColumns: 3, titleText: '压力' },
  201. { startColumnName: 'MaxInstantaneousFlow', numberOfColumns: 3, titleText: '瞬时流量' },
  202. { startColumnName: 'MaxTurbidity', numberOfColumns: 3, titleText: '浊度' },
  203. { startColumnName: 'MaxTemperature', numberOfColumns: 3, titleText: '温度' },
  204. { startColumnName: 'MaxHeightOfLiquidLevel', numberOfColumns: 3, titleText: '液位高度' },
  205. { startColumnName: 'MaxFrequency', numberOfColumns: 3, titleText: '泵频率' }
  206. ]
  207. })
  208. }
  209. function initControl() {
  210. $.ajax({
  211. type: "GET",
  212. url: "../../WaterWellManage/Device/SearchWaterWellName",//路径
  213. data: {},
  214. success: function (result) {
  215. if (result !== "") {
  216. var data = JSON.parse(result);
  217. var str = "";
  218. $.map(data, function (item) {
  219. str += "<li><a data-value=" + item.WaterWellId + ">" + item.WaterWellName.trim() + "</a></li>";
  220. })
  221. $("#query_menu").html(str);
  222. //查询条件
  223. $("#queryCondition .dropdown-menu li").click(function () {
  224. var text = $(this).find('a').html();
  225. var value = $(this).find('a').attr('data-value');
  226. $("#queryCondition .dropdown-text").html(text).attr('data-value', value)
  227. });
  228. }
  229. }
  230. });
  231. }
  232. function searchData() {
  233. var time = $("#report_day").val();
  234. var waterWellId = $("#queryCondition").find('.dropdown-text').attr('data-value')
  235. if (!waterWellId) {
  236. return alert("请选择测点!")
  237. }
  238. $("#pointGridTable").jqGrid('setGridParam', {
  239. postData: { waterWellId: waterWellId, date: time },
  240. page: 1
  241. }).trigger('reloadGrid');
  242. }
  243. //导出
  244. function btn_point_export() {
  245. dialogOpen({
  246. id: "ExcelIExportDialog",
  247. title: '导出日报表',
  248. url: '/Utility/ExcelExportForm?gridId=pointGridTable',
  249. width: "500px",
  250. height: "380px",
  251. callBack: function (iframeId) {
  252. top.frames[iframeId].AcceptClick();
  253. }, btn: ['导出Excel', '关闭']
  254. });
  255. }
  256. </script>
  257. <div class="ui-layout" id="layout" style="height: 100%; width: 100%;">
  258. <div class="ui-layout-center">
  259. <div class="center-Panel">
  260. <div id="tabs">
  261. <div id="tabs-1">
  262. <div class="titlePanel">
  263. <div class="title-search">
  264. <table>
  265. <tr>
  266. <td style="padding-left: 10px;">测点名称:
  267. </td>
  268. <td style="padding-left: 10px;">
  269. <div id="queryCondition" class="btn-group">
  270. <a class="btn btn-default dropdown-text" data-toggle="dropdown">选择测点</a>
  271. <a class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
  272. <ul id="query_menu" class="dropdown-menu">
  273. </ul>
  274. </div>
  275. </td>
  276. <td style="padding-left: 10px;">日期:
  277. </td>
  278. <td style="padding-left: 10px;">
  279. <input id="report_day" readonly type="text" value="@LeaRun.Util.Time.GetToday()" class="form-control input-wdatepicker" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" style="width:175px">
  280. </td>
  281. <td style="padding-left: 10px;">
  282. <a id="btn_point_Search" class="btn btn-primary" onclick="searchData()">&nbsp;查&nbsp;&nbsp;询</a>
  283. </td>
  284. </tr>
  285. </table>
  286. </div>
  287. <div class="toolbar">
  288. <div class="btn-group">
  289. <a id="lr-replace" class="btn btn-default" onclick="reload();"><i class="fa fa-refresh"></i>&nbsp;刷新</a>
  290. <a id="lr-export" class="btn btn-default" onclick="btn_point_export()"><i class="fa fa-sign-out"></i>&nbsp;导出</a>
  291. </div>
  292. </div>
  293. </div>
  294. <div class="gridPanel" id="gridpanel">
  295. <table id="pointGridTable"></table>
  296. <div id="gridpager"></div>
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. </div>
  302. </div>