Index.cshtml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. @{
  2. ViewBag.Title = "Index";
  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/MonthReport/GetListJson",
  35. datatype: "json",
  36. height: $(window).height() - 160,
  37. autowidth: true,
  38. rownumbers: true,
  39. postData: { waterWellId: "", month: "" },
  40. colModel: [
  41. { name: 'WaterWellId', label: 'id', hidden: true },
  42. { name: 'Month', label: '月份', hidden: true },
  43. { name: "Day", label: "时间", width: 80, align: "left", 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: 31,
  89. sortable: true,
  90. sortorder: 'desc',
  91. gridview: true,
  92. footerrow: true,
  93. subGrid: true,
  94. subGridRowExpanded: function (subgrid_id, row_id) {
  95. var rowData = $(this).getRowData(row_id);
  96. var Day = rowData['Day'];
  97. var Month = rowData['Month'];
  98. var WaterWellId = rowData['WaterWellId'];
  99. var subgrid_table_id = subgrid_id + "_t";
  100. $("#" + subgrid_id).html(
  101. "<table id='" + subgrid_table_id
  102. + "' class='scroll'></table>");
  103. jQuery("#" + subgrid_table_id).jqGrid(
  104. {
  105. url: '../../WaterWellManage/MonthReport/GetSubListJson?id=' + row_id + '&Day=' + Day + '&Month=' + Month + '&WaterWellId='+WaterWellId,
  106. datatype: "json",
  107. colNames: ['水源井名称', '厂商编码', '水源井编号', '采集时间', 'A相电压', 'B相电压', 'C相电压', 'A相电流', 'B相电流', 'C相电流', '有功电能', '净累计流量', '压力', '瞬时流量', '浊度', '温度', '液位高度', '泵频率', '泵运行状态', '泵运行状态故障描述', '软启动器状态', '软启动器故障描述', '热继电器跳闸状态', '热继电器跳闸故障描述', '箱门状态'],
  108. colModel: [
  109. { name: "WaterWellName", index: "WaterWellName", width: 100, key: true, align: "left" },
  110. { name: "ManufacturerCode", index: "ManufacturerCode", width: 100, key: true, align: "left" },
  111. { name: "WaterWellCode", index: "WaterWellCode", width: 100, key: true, align: "left" },
  112. { name: "GetDateTime", index: "GetDateTime", width: 140, key: true, align: "left" },
  113. { name: "VoltageA", index: "VoltageA", width: 100, key: true, formatter: 'number', align: "right" },
  114. { name: "VoltageB", index: "VoltageB", width: 100, key: true, formatter: 'number', align: "right" },
  115. { name: "VoltageC", index: "VoltageC", width: 100, key: true, formatter: 'number', align: "right" },
  116. { name: "CurrentA", index: "CurrentA", width: 100, key: true, formatter: 'number', align: "right" },
  117. { name: "CurrentB", index: "CurrentB", width: 100, key: true, formatter: 'number', align: "right" },
  118. { name: "CurrentC", index: "CurrentC", width: 100, key: true, formatter: 'number', align: "right" },
  119. { name: "ActiveElectricalEnergy", index: "ActiveElectricalEnergy", width: 100, key: true, formatter: 'number', align: "right" },
  120. { name: "NetAccumulatedCurrent", index: "NetAccumulatedCurrent", width: 100, key: true, formatter: 'number', align: "right" },
  121. { name: "Pressure", index: "Pressure", width: 100, key: true, formatter: 'number', align: "right" },
  122. { name: "InstantaneousFlow", index: "InstantaneousFlow", width: 100, key: true, formatter: 'number', align: "right" },
  123. { name: "Turbidity", index: "Turbidity", width: 100, key: true, formatter: 'number', align: "right" },
  124. { name: "Temperature", index: "Temperature", width: 100, key: true, formatter: 'number', align: "right" },
  125. { name: "HeightOfLiquidLevel", index: "HeightOfLiquidLevel", width: 100, key: true, formatter: 'number', align: "right" },
  126. { name: "Frequency", index: "Frequency", width: 100, key: true, formatter: 'number', align: "right" },
  127. { name: "RunningState", index: "RunningState", width: 100, key: true, formatter: "select", editoptions: { value: "0:停止;1:启动;2:故障" }, align: "left" },
  128. { name: "RunningStateDiscription", index: "RunningStateDiscription", width: 140, key: true },
  129. { name: "SoftStarterFault", index: "SoftStarterFault", width: 100, key: true, formatter: "select", editoptions: { value: "0:正常;1:故障;" }, align: "left" },
  130. { name: "SoftStarterFaultDiscription", index: "SoftStarterFaultDiscription", width: 140, key: true, align: "left" },
  131. { name: "ThermalRelayTripFault", index: "ThermalRelayTripFault", width: 100, key: true, formatter: "select", editoptions: { value: "0:正常;1:故障;" }, align: "left" },
  132. { name: "ThermalRelayTripFaultDiscription", index: "ThermalRelayTripFaultDiscription", width: 140, key: true, align: "left" },
  133. { name: "BoxDoorAlarm", index: "BoxDoorAlarm", width: 120, key: true, formatter: "select", editoptions: { value: "0:开;1:关;" }, align: "left" }
  134. ],
  135. rowNum: 1000,
  136. height: '100%'
  137. });
  138. },
  139. gridComplete: function () {
  140. $gridTable.footerData('set', {
  141. "Day": '合计',
  142. MaxVoltageA: $gridTable.getCol('MaxVoltageA', false, 'max'),
  143. MinVoltageA: $gridTable.getCol('MinVoltageA', false, 'min'),
  144. AvgVoltageA: $gridTable.getCol('MinVoltageA', false, 'avg').toFixed(2),
  145. MaxVoltageB: $gridTable.getCol('MaxVoltageB', false, 'max'),
  146. MinVoltageB: $gridTable.getCol('MinVoltageB', false, 'min'),
  147. AvgVoltageB: $gridTable.getCol('AvgVoltageB', false, 'avg').toFixed(2),
  148. MaxVoltageC: $gridTable.getCol('MaxVoltageC', false, 'max'),
  149. MinVoltageC: $gridTable.getCol('MinVoltageC', false, 'min'),
  150. AvgVoltageC: $gridTable.getCol('AvgVoltageC', false, 'avg').toFixed(2),
  151. MaxCurrentA: $gridTable.getCol('MaxCurrentA', false, 'max'),
  152. MinCurrentA: $gridTable.getCol('MinCurrentA', false, 'min'),
  153. AvgCurrentA: $gridTable.getCol('AvgCurrentA', false, 'avg').toFixed(2),
  154. MaxCurrentB: $gridTable.getCol('MaxCurrentB', false, 'max'),
  155. MinCurrentB: $gridTable.getCol('MinCurrentB', false, 'min'),
  156. AvgCurrentB: $gridTable.getCol('AvgCurrentB', false, 'avg').toFixed(2),
  157. MaxCurrentC: $gridTable.getCol('MaxCurrentC', false, 'max'),
  158. MinCurrentC: $gridTable.getCol('MinCurrentC', false, 'min'),
  159. AvgCurrentC: $gridTable.getCol('AvgCurrentC', false, 'avg').toFixed(2),
  160. MaxActiveElectricalEnergy: $gridTable.getCol('MaxActiveElectricalEnergy', false, 'max'),
  161. MinActiveElectricalEnergy: $gridTable.getCol('MinActiveElectricalEnergy', false, 'min'),
  162. IncrementActiveElectricalEnergy: $gridTable.getCol('IncrementActiveElectricalEnergy', false, 'sum'),
  163. MaxNetAccumulatedCurrent: $gridTable.getCol('MaxNetAccumulatedCurrent', false, 'max'),
  164. MinNetAccumulatedCurrent: $gridTable.getCol('MinNetAccumulatedCurrent', false, 'min'),
  165. IncrementNetAccumulatedCurrent: $gridTable.getCol('IncrementNetAccumulatedCurrent', false, 'sum'),
  166. MaxPressure: $gridTable.getCol('MaxPressure', false, 'max'),
  167. MinPressure: $gridTable.getCol('MinPressure', false, 'min'),
  168. AvgPressure: $gridTable.getCol('AvgPressure', false, 'avg').toFixed(2),
  169. MaxInstantaneousFlow: $gridTable.getCol('MaxInstantaneousFlow', false, 'max'),
  170. MinInstantaneousFlow: $gridTable.getCol('MinInstantaneousFlow', false, 'min'),
  171. AvgInstantaneousFlow: $gridTable.getCol('AvgInstantaneousFlow', false, 'avg').toFixed(2),
  172. MaxTurbidity: $gridTable.getCol('MaxTurbidity', false, 'max'),
  173. MinTurbidity: $gridTable.getCol('MinTurbidity', false, 'min'),
  174. AvgTurbidity: $gridTable.getCol('AvgTurbidity', false, 'avg').toFixed(2),
  175. MaxTemperature: $gridTable.getCol('MaxTemperature', false, 'max'),
  176. MinTemperature: $gridTable.getCol('MinTemperature', false, 'min'),
  177. AvgTemperature: $gridTable.getCol('AvgTemperature', false, 'avg').toFixed(2),
  178. MaxHeightOfLiquidLevel: $gridTable.getCol('MaxHeightOfLiquidLevel', false, 'max'),
  179. MinHeightOfLiquidLevel: $gridTable.getCol('MinHeightOfLiquidLevel', false, 'min'),
  180. AvgHeightOfLiquidLevel: $gridTable.getCol('AvgHeightOfLiquidLevel', false, 'avg').toFixed(2),
  181. MaxFrequency: $gridTable.getCol('MaxFrequency', false, 'max'),
  182. MinFrequency: $gridTable.getCol('MinFrequency', false, 'min'),
  183. AvgFrequency: $gridTable.getCol('AvgFrequency', false, 'avg').toFixed(2)
  184. });
  185. }
  186. });
  187. // 设置头部
  188. $gridTable.jqGrid('setGroupHeaders', {
  189. useColSpanStyle: true,
  190. groupHeaders: [
  191. { startColumnName: 'MaxVoltageA', numberOfColumns: 3, titleText: 'A相电压(V)' },
  192. { startColumnName: 'MaxVoltageB', numberOfColumns: 3, titleText: 'B相电压(V)' },
  193. { startColumnName: 'MaxVoltageC', numberOfColumns: 3, titleText: 'C相电压(V)' },
  194. { startColumnName: 'MaxCurrentA', numberOfColumns: 3, titleText: 'A相电流(A)' },
  195. { startColumnName: 'MaxCurrentB', numberOfColumns: 3, titleText: 'C相电流(A)' },
  196. { startColumnName: 'MaxCurrentC', numberOfColumns: 3, titleText: 'C相电流(A)' },
  197. { startColumnName: 'MaxActiveElectricalEnergy', numberOfColumns: 3, titleText: '有功电能' },
  198. { startColumnName: 'MaxNetAccumulatedCurrent', numberOfColumns: 3, titleText: '净累计流量' },
  199. { startColumnName: 'MaxPressure', numberOfColumns: 3, titleText: '压力' },
  200. { startColumnName: 'MaxInstantaneousFlow', numberOfColumns: 3, titleText: '瞬时流量' },
  201. { startColumnName: 'MaxTurbidity', numberOfColumns: 3, titleText: '浊度' },
  202. { startColumnName: 'MaxTemperature', numberOfColumns: 3, titleText: '温度' },
  203. { startColumnName: 'MaxHeightOfLiquidLevel', numberOfColumns: 3, titleText: '液位高度' },
  204. { startColumnName: 'MaxFrequency', numberOfColumns: 3, titleText: '泵频率' }
  205. ]
  206. })
  207. }
  208. function initControl() {
  209. $.ajax({
  210. type: "GET",
  211. url: "../../WaterWellManage/Device/SearchWaterWellName",//路径
  212. data: {},
  213. success: function (result) {
  214. if (result !== "") {
  215. var data = JSON.parse(result);
  216. var str = "";
  217. $.map(data, function (item) {
  218. str += "<li><a data-value=" + item.WaterWellId + ">" + item.WaterWellName.trim() + "</a></li>";
  219. })
  220. $("#query_menu").html(str);
  221. //查询条件
  222. $("#queryCondition .dropdown-menu li").click(function () {
  223. var text = $(this).find('a').html();
  224. var value = $(this).find('a').attr('data-value');
  225. $("#queryCondition .dropdown-text").html(text).attr('data-value', value)
  226. });
  227. }
  228. }
  229. });
  230. }
  231. // 查询测点
  232. function searchData() {
  233. var month = $("#report_month").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, month: month },
  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_month" readonly type="text" value="@LeaRun.Util.Time.GetToday().Split('-')[0]-@LeaRun.Util.Time.GetToday().Split('-')[1]" class="form-control input-wdatepicker" onfocus="WdatePicker({dateFmt:'yyyy-MM'})" 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>