Index.cshtml 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. @{
  2. ViewBag.Title = "DMA差量分析";
  3. Layout = "~/Views/Shared/_LayoutIndex.cshtml";
  4. }
  5. <script>
  6. "use strict"
  7. var selectMonth = "@DateTime.Now.ToString("yyyy-MM")";
  8. $(document).ready(function () {
  9. InitialPage();
  10. GetTree();
  11. Click();
  12. });
  13. //初始化页面
  14. function InitialPage() {
  15. //layout布局
  16. $('#layout').layout({
  17. applyDemoStyles: true,
  18. onresize: function () {
  19. $(window).resize();
  20. }
  21. });
  22. // resize重设(表格、树形)宽高
  23. $(window).resize(function (e) {
  24. window.setTimeout(function () {
  25. $("#pointGridTable").setGridWidth(($('.gridPanel').width()));
  26. $("#pointGridTable").setGridHeight($(window).height() - 160);
  27. $("#itemTree").setTreeHeight($(window).height() - 52);
  28. }, 200);
  29. e.stopPropagation();
  30. });
  31. }
  32. //加载树
  33. var PointTreeCode = 0;
  34. function GetTree() {
  35. var item = {
  36. height: $(window).height() - 52,
  37. url: "/DMAManage/Partitions/GetTreeJson",
  38. showcheck: false,
  39. isexpand: true,
  40. onnodeclick: function (item) {
  41. PointTreeCode = item.value;
  42. var startDate = $("#PointStartTime").val();
  43. var endDate = $("#PointEndTime").val();
  44. $("#pointGridTable").jqGrid('GridUnload');
  45. LoadColModel(startDate, endDate, item.value);
  46. }
  47. };
  48. //初始化
  49. $("#itemTree").treeview(item);
  50. }
  51. // 获取列数据
  52. function LoadColModel(startDate, endDate, DMAID) {
  53. $.ajax({
  54. type: "POST",
  55. async: false,
  56. url: "/DMAManage/DifferenceAnalysis/GetColModel",
  57. dataType: "json",
  58. data: { DMAID: DMAID },
  59. success: function (data) {
  60. GetGrid(data, startDate, endDate, DMAID);
  61. },
  62. error: function (xhr, status, error) {
  63. }
  64. });
  65. }
  66. // 渲染列表
  67. function GetGrid(data, startDate, endDate, DMAID) {
  68. $("#pointGridTable").jqGrid('GridUnload');
  69. $("#pointGridTable").jqGrid({
  70. url: "/DMAManage/DifferenceAnalysis/GetDifferenceAnalysis",
  71. datatype: "json",
  72. postData: { startDate: startDate, endDate: endDate, DMAID: DMAID },
  73. height: $(window).height() - 170,
  74. colModel: data,
  75. rownumbers: true,
  76. viewrecords: true,
  77. rowNum: 1000,
  78. gridview: true,
  79. footerrow: true,
  80. gridComplete: function () {
  81. GridHeadSetting(data);
  82. GridFooterSetting(data);
  83. },
  84. loadError: function (xhr, status, error) {
  85. }
  86. });
  87. }
  88. // 设置标题头
  89. function GridHeadSetting(data) {
  90. var inStartName = "";
  91. var outStartName = "";
  92. var inColNum = 0;
  93. var outColNum = 0;
  94. for (var i = 1; i < data.length; i++) {
  95. if (data[i].name === "InAll") {
  96. break;
  97. } else {
  98. if (i === 1) {
  99. inStartName = data[i].name;
  100. }
  101. inColNum++;
  102. }
  103. }
  104. inColNum++;
  105. for (var i = inColNum; i < data.length; i++) {
  106. if (data[i].name === "OutAll") {
  107. break;
  108. } else {
  109. if (i === inColNum) {
  110. outStartName = data[i].name;
  111. }
  112. outColNum++;
  113. }
  114. }
  115. outColNum++;
  116. $("#pointGridTable").jqGrid('setGroupHeaders', {
  117. useColSpanStyle: true,
  118. groupHeaders: [
  119. { startColumnName: inStartName, numberOfColumns: inColNum, titleText: '入口表' },
  120. { startColumnName: outStartName, numberOfColumns: outColNum, titleText: '出口表' }
  121. ]
  122. })
  123. }
  124. // 设置合计
  125. function GridFooterSetting(data) {
  126. $("#pointGridTable").footerData('set', {
  127. "GetDateTime": '合计',
  128. InAll: $("#pointGridTable").getCol('InAll', false, 'sum').toFixed(2),
  129. OutAll: $("#pointGridTable").getCol('OutAll', false, 'sum').toFixed(2)
  130. });
  131. }
  132. // 查询数据
  133. function searchData() {
  134. var nodes = $("#itemTree").getTSNs(true);//获取所有勾选节点包括半勾选
  135. var devnodes = "";
  136. $.each(nodes, function (i, value) {
  137. var value = value.value;
  138. devnodes += (value + ",");
  139. });
  140. devnodes = devnodes.substr(0, devnodes.length - 1);
  141. selectMonth = $("#report_month").val();
  142. $("#pointGridTable").jqGrid('setGridParam', {
  143. postData: { DMAIDs: devnodes, selectMonth: selectMonth, isAll: false },
  144. page: 1
  145. }).trigger('reloadGrid');
  146. }
  147. // 点击事件
  148. function Click() {
  149. //点击时间范围(今天、近7天、近一个月、近三个月)
  150. $("#time_horizon a.btn-default").click(function () {
  151. $("#time_horizon a.btn-default").removeClass("active");
  152. $(this).addClass("active");
  153. switch ($(this).attr('data-value')) {
  154. case "2"://近7天
  155. $("#PointStartTime").val("@DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd")");
  156. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd")");
  157. break;
  158. case "3"://近一个月
  159. $("#PointStartTime").val("@DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd")");
  160. $("#PointEndTime").val("@DateTime.Now.ToString("yyyy-MM-dd")");
  161. break;
  162. case "4"://自定义
  163. $("#PointStartTime").val("");
  164. $("#PointEndTime").val("");
  165. break;
  166. default:
  167. break;
  168. }
  169. })
  170. }
  171. // 查询事件
  172. function GetDatas() {
  173. var startDate = $("#PointStartTime").val();
  174. var endDate = $("#PointEndTime").val();
  175. $("#pointGridTable").jqGrid('GridUnload');
  176. LoadColModel(startDate, endDate, PointTreeCode);
  177. }
  178. </script>
  179. <div class="ui-layout" id="layout" style="height: 100%; width: 100%;">
  180. <div class="ui-layout-west">
  181. <div class="west-Panel">
  182. <div class="panel-Title">测点列表</div>
  183. <div id="itemTree"></div>
  184. </div>
  185. </div>
  186. <div class="ui-layout-center">
  187. <div class="center-Panel">
  188. <div id="tabs">
  189. <div id="tabs-1">
  190. <div class="titlePanel">
  191. <div class="title-search">
  192. <table>
  193. <tr>
  194. <td style="padding-left: 10px; display: none">测点名称:
  195. </td>
  196. <td style="padding-left: 10px; display:none">
  197. <input type="text" id="device" name="device" class="form-control" style="width: 130px;" />
  198. </td>
  199. <td style="padding-left: 10px;">开始时间:
  200. </td>
  201. <td style="padding-left: 10px;">
  202. <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">
  203. </td>
  204. <td style="padding-left: 10px;">结束时间:
  205. </td>
  206. <td style="padding-left: 10px;">
  207. <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">
  208. </td>
  209. <td style="padding-left: 10px;">
  210. <div id="time_horizon" class="btn-group">
  211. <a class="btn btn-default active" data-value="2">近7天</a>
  212. <a class="btn btn-default" data-value="3">近1个月</a>
  213. <a class="btn btn-default" data-value="4">自定义</a>
  214. </div>
  215. </td>
  216. <td style="padding-left: 10px;">
  217. <a id="btn_point_Search" class="btn btn-primary" onclick="GetDatas()">&nbsp;查&nbsp;&nbsp;询</a>
  218. </td>
  219. </tr>
  220. </table>
  221. </div>
  222. <div class="toolbar">
  223. <div class="btn-group">
  224. <a id="lr-replace" class="btn btn-default" onclick="reload();"><i class="fa fa-refresh"></i>&nbsp;刷新</a>
  225. <a id="lr-export" class="btn btn-default" onclick="btn_point_export()"><i class="fa fa-sign-out"></i>&nbsp;导出</a>
  226. </div>
  227. </div>
  228. </div>
  229. <div class="gridPanel" id="gridpanel" style="width: 0px">
  230. <table id="pointGridTable"></table>
  231. </div>
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. </div>