Index.cshtml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  1. @{
  2. ViewBag.Title = "用户管理";
  3. Layout = "~/Views/Shared/_LayoutIndex.cshtml";
  4. }
  5. <script>
  6. "use strict"
  7. $(document).ready(function () {
  8. InitialPage();
  9. InitControl();
  10. GetTree();
  11. GetPointGrid();
  12. //表格表头居中显示
  13. $(".ui-th-column").css("text-align", "center");
  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. $("#pointGridTable").setGridWidth(($('.gridPanel').width()));
  28. $("#pointGridTable").setGridHeight($(window).height() - 160);
  29. $("#itemTree").setTreeHeight($(window).height() - 52);
  30. }, 200);
  31. e.stopPropagation();
  32. });
  33. }
  34. //加载树
  35. var PointTreeCode = 0;
  36. var ParentId = 0;
  37. var PParentId = 0;
  38. function GetTree() {
  39. var item = {
  40. height: $(window).height() - 52,
  41. url: "/NBManage/NBAreas/GetTreeJson",
  42. showcheck: false,
  43. isexpand: true,
  44. onnodeclick: function (item) {
  45. PointTreeCode = item.id;
  46. ParentId = item.parentnodes;
  47. if (item.parentnodes.split("_")[0] == "level2") {
  48. PParentId = item.parent.parent.value;//添加用户时,保存水表信息时需要的小区ID
  49. }
  50. ReloadData()
  51. //展开下级
  52. // $(".bbit-tree-selected").children('.bbit-tree-ec-icon').trigger("click");
  53. }
  54. };
  55. //初始化
  56. $("#itemTree").treeview(item);
  57. }
  58. // 初始化控件
  59. function InitControl() {
  60. $("#queryAreas .dropdown-menu li").click(function () {
  61. var text = $(this).find('a').html();
  62. var value = $(this).find('a').attr('data-value');
  63. $("#queryAreas .dropdown-text").html(text).attr('data-value', value)
  64. ReloadData()
  65. });
  66. }
  67. // 刷新数据
  68. function ReloadData() {
  69. if (PointTreeCode) {
  70. var id = PointTreeCode.split("_")[1]
  71. var level = PointTreeCode.split("_")[0]
  72. //var searchType = $("#queryAreas").find('.dropdown-text').attr('data-value') || 'Area'
  73. var searchType = "Meter"
  74. $("#pointGridTable").jqGrid('setGridParam', {
  75. postData: { keyword: "", searchType: searchType, id: id, level: level },
  76. page: 1
  77. }).trigger('reloadGrid');
  78. }
  79. }
  80. // , PageTable.MeterNo, PageTable.IMEI
  81. //获取列表
  82. function GetPointGrid() {
  83. var $gridTable = $('#pointGridTable');
  84. $gridTable.jqGrid({
  85. url: "/NBManage/NBUserManage/GetNBUserList",
  86. datatype: "json",
  87. height: $(window).height() - 138.8,
  88. autowidth: true,
  89. rownumbers: true,
  90. postData: { keyword: "", searchType: "", id: "", level: "" },
  91. colModel: [
  92. { name: "AreaID", label: "区域id", hidden: true },
  93. { name: "BldgID", label: "楼宇id", hidden: true },
  94. { name: "ApmtID", label: "单元id", hidden: true },
  95. { name: "RoomID", label: "房间id", hidden: true },
  96. { name: "MeterID", label: "表具id", hidden: true },
  97. { name: "AreaName", label: "区域名称", align: "left", hidden: true },
  98. { name: "BldgName", label: "楼宇名称", align: "left", hidden: true },
  99. { name: "ApmtName", label: "单元名称", align: "left", hidden: true },
  100. { name: "RoomName", label: "房间名称", align: "left", hidden: true },
  101. { name: "totalAddr", label: "区域名称", width: 250, align: "left", fixed: true },
  102. { name: "UserNo", label: "用户编号", width: 100, align: "left", fixed: true },
  103. { name: "UserName", label: "用户名称", width: 100, align: "left", fixed: true },
  104. { name: "ElecAddress", label: "表具地址", width: 130, align: "right", fixed: true },
  105. { label: "表读数", name: "NowReading", width: 100, align: "right", sortable: false, formatter: 'number', formatoptions: { decimalPlaces: 2, defaulValue: "", thousandsSeparator: "," }, fixed: true },
  106. { name: "IOT_Code", label: "DeviceId", width: 300, align: "left", fixed: true },
  107. { name: "IMEI", label: "IMEI", width: 150, align: "right", fixed: true },
  108. { name: "ICCID", label: "ICCID", width: 150, align: "right", fixed: true },
  109. { label: "表类型", name: "MeterTypeName", width: 100, align: "left", sortable: false, fixed: true },
  110. { label: "NB表类型", name: "NBDevTypeName", width: 100, align: "left", sortable: false, fixed: true },
  111. { label: "NB厂商", name: "NBDevManufacturerName", width: 100, align: "left", sortable: false, fixed: true },
  112. { label: "NB厂商ID", name: "NBDevManufacturerCodeName", width: 100, align: "left", sortable: false, fixed: true },
  113. { label: "NB型号", name: "NBTypeCodeName", width: 100, align: "left", sortable: false, fixed: true }
  114. ],
  115. pager: '#gridpager',
  116. viewrecords: true,
  117. rowNum: 30,
  118. rowList: [30, 50, 100],
  119. gridview: true,
  120. sortable: true,
  121. sortname: "AreaID",
  122. sortorder: "desc",
  123. gridComplete: function () {
  124. $("#pointGridTable").getDataIDs();
  125. }
  126. });
  127. }
  128. // 查询数据
  129. function searchData() {
  130. var keyword = $("#keyword").val()
  131. $("#pointGridTable").jqGrid('setGridParam', {
  132. postData: { keyword: keyword, searchType: "Meter", id: "", level: "level5" },
  133. page: 1
  134. }).trigger('reloadGrid');
  135. }
  136. // 添加
  137. function addData() {
  138. if (!PointTreeCode) {
  139. return alert("请选择父级数据项!")
  140. }
  141. var level = PointTreeCode.split("_")[0]
  142. var parentId = PointTreeCode.split("_")[1]
  143. if (level === "level0") {
  144. dialogOpen({
  145. id: "AreaForm",
  146. title: '添加小区',
  147. url: '/NBManage/NBUserManage/AreaForm?keyValue=""',
  148. width: "600px",
  149. height: "300px",
  150. callBack: function (iframeId) {
  151. top.frames[iframeId].AcceptAreaClick();
  152. }
  153. });
  154. } else if (level === "level1") {
  155. dialogOpen({
  156. id: "BldgForm",
  157. title: '添加楼宇',
  158. url: '/NBManage/NBUserManage/BldgForm?keyValue=""',
  159. width: "600px",
  160. height: "300px",
  161. callBack: function (iframeId) {
  162. top.frames[iframeId].AcceptBldgClick();
  163. }
  164. });
  165. } else if (level === "level2") {
  166. dialogOpen({
  167. id: "ApmtForm",
  168. title: '添加单元',
  169. url: '/NBManage/NBUserManage/ApmtForm?keyValue=""',
  170. width: "600px",
  171. height: "300px",
  172. callBack: function (iframeId) {
  173. top.frames[iframeId].AcceptApmtClick();
  174. }
  175. });
  176. } else if (level === "level3") {
  177. dialogOpen({
  178. id: "UserForm",
  179. title: '添加用户',
  180. url: '/NBManage/NBUserManage/UserForm?keyValue=""',
  181. width: "750px",
  182. height: "550px",
  183. callBack: function (iframeId) {
  184. top.frames[iframeId].AcceptApmtClick();
  185. }
  186. });
  187. }
  188. }
  189. // 编辑
  190. function editData() {
  191. //首先判断 jqgrid 中有没有选中数据
  192. //有的话 执行删除表信息 操作
  193. var IOT_Code = $("#pointGridTable").jqGridRowValue("IOT_Code");
  194. var RoomID = $("#pointGridTable").jqGridRowValue("RoomID");
  195. var MeterID = $("#pointGridTable").jqGridRowValue("MeterID");
  196. if (RoomID != null && RoomID != "") {
  197. dialogOpen({
  198. id: "ApmtForm",
  199. title: '编辑用户信息',
  200. url: '/NBManage/NBUserManage/UserForm?keyValue=' + RoomID + "_" + MeterID,
  201. width: "750px",
  202. height: "500px",
  203. callBack: function (iframeId) {
  204. top.frames[iframeId].AcceptApmtClick();
  205. }
  206. });
  207. return;
  208. }
  209. if (!PointTreeCode) {
  210. return alert("请选择修改的数据项!")
  211. } else if (PointTreeCode === "level0_0") {
  212. return alert("全部区域不允许修改!");
  213. }
  214. var id = PointTreeCode.split("_")[1]
  215. var level = PointTreeCode.split("_")[0]
  216. if (level === "level1") {
  217. dialogOpen({
  218. id: "AreaForm",
  219. title: '修改小区信息',
  220. url: '/NBManage/NBUserManage/AreaForm?keyValue=' + id,
  221. width: "600px",
  222. height: "300px",
  223. callBack: function (iframeId) {
  224. top.frames[iframeId].AcceptAreaClick();
  225. }
  226. });
  227. } else if (level === "level2") {
  228. dialogOpen({
  229. id: "BldgForm",
  230. title: '修改楼宇信息',
  231. url: '/NBManage/NBUserManage/BldgForm?keyValue=' + id,
  232. width: "600px",
  233. height: "300px",
  234. callBack: function (iframeId) {
  235. top.frames[iframeId].AcceptBldgClick();
  236. }
  237. });
  238. } else if (level === "level3") {
  239. dialogOpen({
  240. id: "ApmtForm",
  241. title: '修改单元信息',
  242. url: '/NBManage/NBUserManage/ApmtForm?keyValue=' + id,
  243. width: "600px",
  244. height: "300px",
  245. callBack: function (iframeId) {
  246. top.frames[iframeId].AcceptApmtClick();
  247. }
  248. });
  249. } else if (level === "level4") {
  250. dialogOpen({
  251. id: "ApmtForm",
  252. title: '编辑用户信息',
  253. url: '/NBManage/NBUserManage/UserForm?keyValue=' + id,
  254. width: "750px",
  255. height: "500px",
  256. callBack: function (iframeId) {
  257. top.frames[iframeId].AcceptApmtClick();
  258. }
  259. });
  260. } else if (level === "level5") {
  261. dialogOpen({
  262. id: "ApmtForm",
  263. title: '编辑表具信息',
  264. url: '/NBManage/NBUserManage/MeterForm?keyValue=' + id,
  265. width: "750px",
  266. height: "500px",
  267. callBack: function (iframeId) {
  268. top.frames[iframeId].AcceptApmtClick();
  269. }
  270. });
  271. }
  272. }
  273. // 删除
  274. function deleteData() {
  275. //首先判断 jqgrid 中有没有选中数据
  276. //有的话 执行删除表信息 操作
  277. var IOT_Code = $("#pointGridTable").jqGridRowValue("IOT_Code");
  278. var RoomID = $("#pointGridTable").jqGridRowValue("RoomID");
  279. var MeterID = $("#pointGridTable").jqGridRowValue("MeterID");
  280. if (RoomID != null && RoomID != "") {
  281. $.RemoveForm({
  282. url: "/NBManage/NBUserManage/DeleteUserForm",
  283. param: { id: RoomID },
  284. success: function (data) {
  285. $("#pointGridTable").trigger("reloadGrid");
  286. GetTree();
  287. }
  288. })
  289. return;
  290. }
  291. if (!PointTreeCode) {
  292. return alert("请选择删除的数据项!")
  293. } else if (PointTreeCode === "level0_0") {
  294. return alert("全部区域不允许删除!");
  295. }
  296. var id = PointTreeCode.split("_")[1]
  297. var level = PointTreeCode.split("_")[0]
  298. if (level === "level1") {
  299. $.RemoveForm({
  300. url: "/NBManage/NBUserManage/DeleteAreaForm",
  301. param: { id: id },
  302. success: function (data) {
  303. $("#pointGridTable").trigger("reloadGrid");
  304. GetTree();
  305. }
  306. })
  307. } else if (level === "level2") {
  308. $.RemoveForm({
  309. url: "/NBManage/NBUserManage/DeleteBldgForm",
  310. param: { id: id },
  311. success: function (data) {
  312. $("#pointGridTable").trigger("reloadGrid");
  313. GetTree();
  314. }
  315. })
  316. } else if (level === "level3") {
  317. $.RemoveForm({
  318. url: "/NBManage/NBUserManage/DeleteApmtForm",
  319. param: { id: id },
  320. success: function (data) {
  321. $("#pointGridTable").trigger("reloadGrid");
  322. GetTree();
  323. }
  324. })
  325. }
  326. }
  327. //导出
  328. function btn_export() {
  329. var datavalue = $("#pointGridTable").jqGrid('getRowData'); //获取全部数据
  330. dialogOpen({
  331. id: "ExcelIExportDialog",
  332. title: '导出',
  333. url: '/Utility/ExcelExportForm?gridId=pointGridTable&filename=用户资料',
  334. width: "500px",
  335. height: "380px",
  336. callBack: function (iframeId) {
  337. top.frames[iframeId].AcceptClick();
  338. }, btn: ['导出Excel', '关闭']
  339. });
  340. }
  341. //换表
  342. function btn_change() {
  343. var keyValue = $("#pointGridTable").jqGridRowValue("MeterID");
  344. if (checkedRow(keyValue)) {
  345. dialogOpen({
  346. id: "Form",
  347. title: '换表',
  348. url: '/NBManage/NBChangeMeterManage/Form?keyValue=' + keyValue,
  349. width: "750px",
  350. height: "500px",
  351. callBack: function (iframeId) {
  352. top.frames[iframeId].AcceptClick();
  353. }
  354. });
  355. }
  356. }
  357. //移动表
  358. function btn_move() {
  359. var keyValue = $("#pointGridTable").jqGridRowValue("MeterID");
  360. if (checkedRow(keyValue)) {
  361. dialogOpen({
  362. id: "Form",
  363. title: '移动表位置',
  364. url: '/NBManage/NBUserManage/RemoveMeterForm?keyValue=' + keyValue,
  365. width: "750px",
  366. height: "350px",
  367. callBack: function (iframeId) {
  368. top.frames[iframeId].AcceptClick();
  369. }
  370. });
  371. }
  372. }
  373. </script>
  374. <div class="ui-layout" id="layout" style="height: 100%; width: 100%;">
  375. <div class="ui-layout-west">
  376. <div class="west-Panel">
  377. <div class="panel-Title">区域信息</div>
  378. <div id="itemTree"></div>
  379. </div>
  380. </div>
  381. <div class="ui-layout-center">
  382. <div class="center-Panel">
  383. <div class="titlePanel">
  384. <div class="title-search">
  385. <table>
  386. <tr>
  387. <td style="padding-left: 10px;">
  388. <a id="btn_add" class="btn btn-primary" onclick="addData()">&nbsp;添&nbsp;&nbsp;加</a>
  389. </td>
  390. <td style="padding-left: 10px;">
  391. <a id="btn_edit" class="btn btn-primary" onclick="editData()">&nbsp;修&nbsp;&nbsp;改</a>
  392. </td>
  393. <td style="padding-left: 10px;">
  394. <a id="btn_remove" class="btn btn-primary" onclick="deleteData()">&nbsp;删&nbsp;&nbsp;除</a>
  395. </td>
  396. <td hidden>
  397. <div id="queryAreas" class="btn-group" style="margin-left: 10px">
  398. <a class="btn btn-default dropdown-text" data-toggle="dropdown">小区信息</a>
  399. <a class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
  400. <ul class="dropdown-menu">
  401. <li><a data-value="Area">小区信息</a></li>
  402. <li><a data-value="Bldg">楼宇信息</a></li>
  403. <li><a data-value="Apmt">单元信息</a></li>
  404. <li><a data-value="Room">用户信息</a></li>
  405. <li><a data-value="Meter">水表信息</a></li>
  406. </ul>
  407. </div>
  408. </td>
  409. <td style="padding-left: 10px;">
  410. <input type="text" id="keyword" name="keyword" class="form-control" style="width: 130px;" />
  411. </td>
  412. <td style="padding-left: 10px;">
  413. <a id="btn_point_Search" class="btn btn-primary" onclick="searchData()">&nbsp;查&nbsp;&nbsp;询</a>
  414. </td>
  415. </tr>
  416. </table>
  417. </div>
  418. <div class="toolbar">
  419. <div class="btn-group">
  420. <a id="lr-replace" class="btn btn-default" onclick="btn_change();"><i class="fa fa-exchange"></i>&nbsp;换表</a>
  421. <a id="lr-replace" class="btn btn-default" onclick="btn_move();"><i class="fa fa-arrows-h"></i>&nbsp;移表</a>
  422. <a id="lr-replace" class="btn btn-default" onclick="reload();"><i class="fa fa-refresh"></i>&nbsp;刷新</a>
  423. <a id="lr-export" class="btn btn-default" onclick="btn_export()"><i class="fa fa-sign-out"></i>&nbsp;导出</a>
  424. </div>
  425. </div>
  426. </div>
  427. <div class="gridPanel" id="gridpanel">
  428. <table id="pointGridTable"></table>
  429. <div id="gridpager"></div>
  430. </div>
  431. </div>
  432. </div>
  433. </div>