index.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>管养问题列表</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/admin.css?v=312"/>
  10. <style>
  11. .layui-table-cell {
  12. height: auto;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <!-- 页面加载loading -->
  18. <div class="page-loading">
  19. <div class="ball-loader">
  20. <span></span><span></span><span></span><span></span>
  21. </div>
  22. </div>
  23. <!-- 正文开始 -->
  24. <div class="layui-fluid">
  25. <div class="layui-card">
  26. <div class="layui-card-body">
  27. <form class="layui-form m-top10px m-bottom10px" lay-filter="filterForm" id="filterForm">
  28. <div class="layui-form toolbar">
  29. <div class="layui-form-item">
  30. <div class="layui-inline">
  31. <label class="layui-form-label w-auto w-padding">网格:</label>
  32. <div class="layui-input-inline mr0">
  33. <div id="grid"></div>
  34. <input type="hidden" name="gridId" id="gridId">
  35. </div>
  36. </div>
  37. <div class="layui-inline">
  38. <label class="layui-form-label ">站点:</label>
  39. <div class="layui-input-inline mr0">
  40. <div id="site"></div>
  41. <input type="hidden" name="parkId" id="parkId">
  42. </div>
  43. </div>
  44. <div class="layui-inline ">
  45. <label class="layui-form-label">日期</label>
  46. <div class="layui-input-block">
  47. <input type="text" name="hiddenTime" id="hiddenTime" autocomplete="off"
  48. placeholder="开始日期 至 结束日期" class="layui-input">
  49. </div>
  50. </div>
  51. <button type="button" lay-filter="formSubSearch" lay-submit
  52. class="layui-btn layui-btn-normal layui-btn-sm"
  53. style="height: 36px;width:80px;margin-left:15px;margin-top: 0px;position: relative;top: -5px">
  54. <i class="layui-icon"></i>搜索
  55. </button>
  56. </div>
  57. </div>
  58. </form>
  59. <table class="layui-table" id="datatable" lay-filter="datatable"></table>
  60. </div>
  61. </div>
  62. </div>
  63. <!-- js部分 -->
  64. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  65. <script type="text/javascript" src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>
  66. <script type="text/javascript" src="../../../assets/libs/leftTime/leftTime.js"></script>
  67. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  68. <script>
  69. layui.use(['layer', 'form', 'table', 'admin', 'jquery', 'uParas', 'util', 'laydate', 'xmSelect'], function () {
  70. var $ = layui.jquery;
  71. var layer = layui.layer;
  72. var form = layui.form;
  73. var table = layui.table;
  74. var admin = layui.admin;
  75. var laydate = layui.laydate;
  76. var uParas = layui.uParas;
  77. var util = layui.util;
  78. var xmSelect = layui.xmSelect;
  79. // var _groupTree = layui._groupTree;
  80. var url1 = uParas.baseUrl + '/ent/parkConf/list';
  81. function toTree(data) {
  82. data.forEach(function (item) {
  83. delete item.children
  84. item.name = item.parkName
  85. item.value = item.parkId
  86. })
  87. var map = {}
  88. data.forEach(function (item) {
  89. map[item.parkId] = item
  90. })
  91. var val = []
  92. data.forEach(function (item) {
  93. var parent = map[item.parkParentId]
  94. if (parent) {
  95. (parent.children || (parent.children = [])).push(item)
  96. } else {
  97. val.push(item)
  98. }
  99. })
  100. return val
  101. }
  102. var gridSelect, siteSelect;
  103. var treeData = [];
  104. admin.req(url1, {}, function (resp) {
  105. if (resp.code == 1) {
  106. resp.data.forEach(function (item) {
  107. item.name = item.parkName
  108. item.value = item.parkId
  109. })
  110. var temp = JSON.parse(JSON.stringify(resp.data))
  111. var tempData = resp.data.filter(function (item) {
  112. return item.parkType === 1;
  113. })
  114. var treeData = toTree(temp);
  115. gridSelect = xmSelect.render({
  116. el: '#grid',
  117. radio: true,
  118. toolbar: {show: true},
  119. on: function (data) {
  120. //arr: 当前多选已选中的数据
  121. var arr = data.arr;
  122. if (arr.length > 0) {
  123. $('#gridId').val(arr[0].value);
  124. var childrenData = [];
  125. for (var i = 0; i < treeData.length; i++) {
  126. if (treeData[i].value === arr[0].value) {
  127. childrenData = treeData[i].children;
  128. }
  129. }
  130. initSiteSelect(childrenData);
  131. } else {
  132. $('#gridId').val("");
  133. initSiteSelect();
  134. }
  135. },
  136. data: tempData
  137. })
  138. }
  139. }, 'GET');
  140. function initSiteSelect(data = []) {
  141. siteSelect = xmSelect.render({
  142. el: '#site',
  143. radio: true,
  144. toolbar: {show: true},
  145. on: function (data) {
  146. //arr: 当前多选已选中的数据
  147. var arr = data.arr;
  148. if (arr.length > 0) {
  149. $('#parkId').val(arr[0].value);
  150. } else {
  151. $('#parkId').val("");
  152. }
  153. },
  154. data: data
  155. })
  156. }
  157. initSiteSelect();
  158. /*日期*/
  159. laydate.render({
  160. elem: '#hiddenTime',
  161. format: 'yyyy-MM-dd',
  162. range: '至',
  163. type: 'date',
  164. });
  165. // 搜索
  166. form.on('submit(formSubSearch)', function (data) {
  167. /*更新数据表*/
  168. // var data = {"hiddenTime":$("#hiddenTime").val(),"groupId":$("#selectedGroup").val()};
  169. var {field} = data;
  170. var timeArr = null;
  171. var timeArr = field.hiddenTime != "" ? field.hiddenTime.split("至") : null;
  172. var reqData = {
  173. gridId: field.gridId,
  174. startTime: timeArr ? timeArr[0].trim() : "",
  175. endTime: timeArr ? timeArr[1].trim() : "",
  176. parkId: field.parkId
  177. }
  178. insTb.reload({where: reqData}, 'data');
  179. });
  180. // 渲染表格数据
  181. var insTb = table.render({
  182. elem: '#datatable',
  183. url: uParas.baseUrl + '/ent/parkPatrolRecord/query',
  184. height: 687,
  185. even: true,
  186. page: true,
  187. toolbar: true,
  188. title: '隐患治理',
  189. cellMinWidth: 100,
  190. cols: [[
  191. {type: 'numbers', title: '序号'},
  192. {
  193. field: 'hiddenDangerImg', align: 'center', sort: false, title: '图片', width: 70,
  194. templet: function (d) {
  195. return setHdangerImg(d.hiddenDangerImg);
  196. }
  197. },
  198. {field: 'parkName', sort: false, title: '网格'},
  199. {field: 'siteName', sort: false, title: '站点'},
  200. {field: 'createdTime', sort: false, title: '管养问题发现时间'},
  201. {field: 'hiddenDangerName', sort: false, title: '管养问题名称'},
  202. {field: 'hdType', sort: false, title: '问题类型'},
  203. // {field: 'hiddenDangerDesc' , sort:false , title:'隐患描述'},
  204. {
  205. field: 'patrolSource', sort: false, title: '管养问题来源', templet: function (d) {
  206. var result = "";
  207. // 1 自己发现 2 上报 3 分发 4不合格
  208. if (d.patrolSource === 1) {
  209. result = "自行巡检"
  210. } else if (d.patrolSource === 2) {
  211. result = "上报"
  212. } else if (d.patrolSource === 3) {
  213. result = "分发"
  214. } else if (d.patrolSource === 4) {
  215. result = "不合格"
  216. }
  217. return result;
  218. }
  219. },
  220. {field: 'positionName', align: 'left', sort: false, title: '巡查岗位'},
  221. {field: 'accountName', align: 'left', sort: false, title: '巡查人'},
  222. {field: 'positionUpName', align: 'left', sort: false, title: '上报岗位'},
  223. {field: 'accountUpName', align: 'left', sort: false, title: '上报处理人'},
  224. // {
  225. // field: 'solveType', sort: false, title: '处理类型', templet: function (d) {
  226. // var result = "";
  227. // // 1 自行解决 2 上报
  228. // if(d.solveType === 1){
  229. // result = "自行解决"
  230. // }else if(d.solveType === 2){
  231. // result = "上报"
  232. // }
  233. // return result;
  234. // }
  235. // },
  236. //
  237. // {field: 'solveDesc' , sort:false , title:'解决办法'},
  238. // {field: 'solveImg' , align: 'center',sort:false , title:'解决完成拍照' , width:70,
  239. // templet: function (d) {
  240. // return setHdangerImg(d.solveImg);
  241. // }
  242. // },
  243. {
  244. field: 'status', sort: false, title: '状态', templet: function (d) {
  245. var result = "";
  246. // 1 未解决 2 撤销 3上报 4 解决
  247. if (d.status === 1) {
  248. result = "未解决"
  249. } else if (d.status === 2) {
  250. result = "已撤销"
  251. } else if (d.status === 3) {
  252. result = "已上报"
  253. } else if (d.status === 4) {
  254. result = "已解决"
  255. }
  256. return result;
  257. }
  258. },
  259. {
  260. align: 'left', title: '操作', width: 110,
  261. templet: function (d) {
  262. return setOperation(d);
  263. }
  264. }
  265. ]]
  266. });
  267. /*隐患附件*/
  268. function setHdangerImg(imgUrl) {
  269. var imgSrc = '/assets/images/error.jpg';
  270. if (imgUrl != null && imgUrl != '') {
  271. var hdImg = imgUrl.split(',');
  272. imgSrc = hdImg[0];
  273. }
  274. return '<a lay-event="showImg"><img style="display: inline-block;width: 40px;height: 40px;" src="' + imgSrc + '" ></a>'
  275. }
  276. /*操作*/
  277. function setOperation(data) {
  278. var html = `
  279. <a style="background-color: #1E9FFF;" class="layui-btn layui-btn-xs" lay-event="detail" >详情</a>
  280. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  281. `;
  282. return html;
  283. }
  284. // 工具条点击事件
  285. table.on('tool(datatable)', function (obj) {
  286. //debugger
  287. var data = obj.data;
  288. var layEvent = obj.event;
  289. if (layEvent == 'del') { // 删除
  290. doDel(data);
  291. } else if (layEvent == 'detail') { // 详情
  292. detail(data);
  293. } else if (layEvent == 'showImg') { // 展示附件
  294. var hdImg = data.hiddenDangerImg.split(',');
  295. showImg(hdImg[0]);
  296. }
  297. });
  298. // 删除
  299. function doDel(data) {
  300. layer.confirm('确定要删除“' + data.hiddenDangerName + '”吗?', {
  301. skin: 'layui-layer-admin',
  302. shade: .1
  303. }
  304. , function (i) {
  305. layer.close(i);
  306. layer.load();
  307. admin.req(uParas.baseUrl + '/ent/parkPatrolRecord/delById', {
  308. id: data.patrolId
  309. }, function (res) {
  310. layer.closeAll('loading');
  311. if (res.code == 1) {
  312. layer.msg(res.msg);
  313. insTb.reload({}, 'data');
  314. } else {
  315. layer.msg(res.msg);
  316. }
  317. }, 'GET');
  318. });
  319. }
  320. //详情
  321. function detail(data) {
  322. location.href = "./details.html?patrolId=" + data.patrolId;
  323. }
  324. function showImg(src) {
  325. openImage(src);
  326. }
  327. });
  328. </script>
  329. </body>
  330. </html>