myIndex.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  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-header" style="background-color: #fff;padding-top: 10px;padding-bottom: 10px;">-->
  26. <!--<div class="layui-inline pull-left" >-->
  27. <!--<h3 id="htmlHeader">我的任务</h3>-->
  28. <!--</div>-->
  29. <!--</div>-->
  30. <div class="layui-card">
  31. <div class="layui-card-body">
  32. <div class="layui-form toolbar">
  33. <div class="layui-form-item text-right">
  34. <div class="layui-inline">
  35. <label class="layui-form-label w-auto">搜索:</label>
  36. <div class="layui-input-inline mr0">
  37. <input name="keyword" class="layui-input" type="text" placeholder="输入关键字"/>
  38. </div>
  39. <button class="layui-btn icon-btn bg-c-add" lay-filter="formSubSearch" lay-submit>
  40. <i class="layui-icon">&#xe615;</i>
  41. </button>
  42. </div>
  43. <div class="layui-inline">
  44. </div>
  45. </div>
  46. </div>
  47. <div class="layui-tab" lay-filter="tabChange">
  48. <ul class="layui-tab-title">
  49. <li class="layui-this" lay-id="wait">待检查</li>
  50. <li lay-id="already">已检查</li>
  51. <li lay-id="already">已逾期</li>
  52. </ul>
  53. <div class="layui-tab-content">
  54. <div class="layui-tab-item layui-show">
  55. <table class="layui-table" id="datatable" lay-filter="datatable"></table>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. <!--数据TPL-->
  63. <script type="text/html" id="checkModeTpl">
  64. {{# if(d.checkMode != null && d.checkMode == '1'){ }}
  65. 现场检查
  66. {{# } else { }}
  67. 基础检查
  68. {{# } }}
  69. </script>
  70. <!-- js部分 -->
  71. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  72. <!--<script type="text/javascript" src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>-->
  73. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  74. <script>
  75. layui.use(['layer', 'form', 'table', 'admin', 'uParas', '_groupTree', 'util', 'laydate', 'element'], function () {
  76. var $ = layui.jquery;
  77. var layer = layui.layer;
  78. var form = layui.form;
  79. var table = layui.table;
  80. var admin = layui.admin;
  81. var uParas = layui.uParas;
  82. var util = layui.util;
  83. var element = layui.element;
  84. var action = "0";
  85. element.on('tab(tabChange)', function (data) {
  86. // alert(data.index)
  87. if (data.index == 0) {
  88. action = "0"; //未检查
  89. } else if (data.index == 1) {
  90. action = "2"; //已检查
  91. } else if (data.index == 2) {
  92. action = "3"; //已逾期
  93. }
  94. insTb.reload({where: {"action": action}}, 'data');
  95. });
  96. // 渲染表格数据
  97. var insTb = table.render({
  98. elem: '#datatable',
  99. url: uParas.baseUrl + '/ent/riskCheckedSchdule/query',
  100. where: {"action": action},
  101. page: true,
  102. even: true,
  103. height: 630,
  104. toolbar: true,
  105. title: '我的任务列表',
  106. cellMinWidth: 100,
  107. cols: [[
  108. {type: 'numbers', title: '序号'},
  109. {
  110. field: 'checkMode', sort: false, title: '任务类型', width: 150,
  111. templet: function (d) {
  112. return setCheckMode(d);
  113. }
  114. },
  115. {field: 'riskCheckDefTitle', sort: false, title: '任务名称'},
  116. // {field: 'riskCheckTypeName' , sort:false , title:'检查类型'},
  117. // {field: 'checkDefName', sort:false , title:'检查表'},
  118. {field: 'groupName', sort: false, title: '执行单位', width: 200},
  119. {field: 'riskCheckPositionName', sort: false, title: '岗位', width: 120,},
  120. {field: 'riskCheckGroupName', sort: false, title: '受检部门'},
  121. {
  122. field: 'status', sort: false, width: 100, title: '状态', templet: function (d) {
  123. return setStatus(d);
  124. }
  125. },
  126. {
  127. field: 'frequency', sort: false, width: 170, title: '检查频率', templet: function (d) {
  128. return setFrequency(d);
  129. }
  130. },
  131. {
  132. field: 'startTime', sort: false, title: '开始时间', width: 160,
  133. templet: function (d) {
  134. return d.startTime.substr(0, 16);
  135. }
  136. },
  137. {
  138. field: 'endTime', sort: false, title: '结束时间', width: 160,
  139. templet: function (d) {
  140. return d.endTime.substr(0, 16);
  141. // return '<div class="countDown" data-date="' + (d.endTime||'') + '"></div>'
  142. }
  143. },
  144. {
  145. align: 'left', title: '操作', width: 110, fixed: 'right', width: 170,
  146. templet: function (d) {
  147. return setOperation(d);
  148. }
  149. }
  150. ]],
  151. done: function (res, curr, count) {
  152. // $(".iManageRiskCount").html(count);
  153. // return '<div class="countDown" data-date="' + (d.countDown||'') + '">
  154. var elem = this.elem.next();
  155. var bodyElem = elem.find('.layui-table-main');
  156. layui.each(bodyElem.find('.countDown'), function (index, domElem) {
  157. domElem = $(domElem);
  158. if (!domElem.data('date')) {
  159. return;
  160. }
  161. var endTime = new Date(domElem.data('date')).getTime(),
  162. serverTime = new Date().getTime();
  163. util.countdown(endTime, serverTime, function (date, serverTime, timer) {
  164. var str = date[0] + '<span style=\'color: red\'>天</span>' + date[1]
  165. + '<span style=\'color: red\'>小时</span>'
  166. + date[2] + '分'
  167. + date[3] + '秒';
  168. if (date[0] == 0) {
  169. str = "<span style='color: red'>已逾期</span>"
  170. }
  171. domElem.html(str);
  172. });
  173. });
  174. }
  175. });
  176. //操作
  177. function setOperation(row) {
  178. var html = '';
  179. var curTime = new Date();
  180. var endtime = new Date(row.endTime);
  181. var startTime = new Date(row.startTime);
  182. if (row.status == '0' || row.status == '1') {
  183. html += '<a class="layui-btn layui-btn-xs bg-c-orange" lay-event="startCheck" >开始检查</a>';
  184. }
  185. //检查方式 1,现场检查2、基础检查
  186. html += '<a class="layui-btn layui-btn-xs bg-c-add" lay-event="baseDetail" >检查记录</a>';
  187. return html;
  188. }
  189. //检查类型
  190. function setCheckMode(row) {
  191. var checkModeStr = "";
  192. var checkTypeStr = "";
  193. if (row.checkMode == 1) {
  194. checkModeStr = "现场任务";
  195. } else if (row.checkMode == 2) {
  196. checkModeStr = "基础任务";
  197. }
  198. if (row.checkType == "fixed") {
  199. checkTypeStr = "【常规】";
  200. } else if (row.checkType == "random") {
  201. checkTypeStr = "【临时】";
  202. }
  203. return checkTypeStr + checkModeStr;
  204. }
  205. //状态
  206. function setStatus(row) {
  207. if (row.checkType === "random") {
  208. // var curTime = new Date();
  209. // var endtime = new Date(row.endTime);
  210. // if (curTime >= endtime) {
  211. // return "<i class=\"layui-icon\" style=\"color: darkred;\"></i> 已逾期";
  212. // }
  213. }
  214. if (row.status === 2) {
  215. return "<i class=\"layui-icon\" style=\"color: limegreen;\">&#xe617; 已检查</i> ";
  216. } else if (row.status === 1) {
  217. return "<i class=\"layui-icon\" style=\"color: #BF79DB;\">&#xe617; 检查中</i> ";
  218. } else if (row.status === 0) {
  219. return "<i class=\"layui-icon\" style=\"color: darkgrey;\">&#xe617; 未检查</i> ";
  220. } else if (row.status === 3) {
  221. return "<i class=\"layui-icon\" style=\"color: indianred\">&#xe617; 已逾期</i> ";
  222. } else {
  223. return "未知"
  224. }
  225. }
  226. //状态
  227. function setFrequency(row) {
  228. var totalCheckCount = row.totalCheckCount;
  229. var scheduleCurrentCount = row.scheduleCurrentCount;
  230. var scheduleFrequency = row.scheduleFrequency;
  231. if (action == '0') {
  232. return '<i class="layui-icon" style="color: limegreen;">已检查 ' + (scheduleCurrentCount - 1) + ' 次</i>' + " / " + totalCheckCount + " " + scheduleFrequency;
  233. } else {
  234. return "(" + scheduleFrequency + ")检查 " + totalCheckCount + " 次";
  235. }
  236. }
  237. // 搜索
  238. form.on('submit(formSubSearch)', function (data) {
  239. insTb.reload({where: data.field}, 'data');
  240. });
  241. // 工具条点击事件
  242. table.on('tool(datatable)', function (obj) {
  243. var data = obj.data;
  244. var layEvent = obj.event;
  245. if (layEvent == 'del') { // 删除
  246. doDel(data);
  247. } else if (layEvent == 'liveDetail') { // 详情
  248. //现场任务
  249. detail(data, "live");
  250. } else if (layEvent == 'baseDetail') {
  251. //常规任务
  252. detail(data, "base");
  253. } else if (layEvent == 'startCheck') {
  254. //开始检查
  255. startCheck(data);
  256. }
  257. });
  258. // 删除
  259. function doDel(data) {
  260. layer.confirm('确定要删除“' + data.riskCheckDefTitle + '”任务吗?', {
  261. skin: 'layui-layer-admin',
  262. shade: .1
  263. }
  264. , function (i) {
  265. layer.close(i);
  266. layer.load();
  267. admin.req(uParas.baseUrl + '/ent/riskCheckedSchdule/delete/' + data.scheduleId, {}, function (res) {
  268. layer.closeAll('loading');
  269. if (res.code == 1) {
  270. layer.msg(res.msg);
  271. insTb.reload({}, 'data');
  272. } else {
  273. layer.msg(res.msg);
  274. }
  275. }, 'GET');
  276. });
  277. }
  278. //详情
  279. function detail(data, type) {
  280. if (type == 'live') {
  281. location.href = "./taskCheckRecord.html?scheduleId=" + data.scheduleId;
  282. } else {
  283. location.href = "./taskCheckRecord.html?scheduleId=" + data.scheduleId;
  284. }
  285. //location.href = "./detail.html?scheduleId="+data.scheduleId;
  286. }
  287. //开始检查
  288. function startCheck(data) {
  289. // alert(JSON.stringify(data))
  290. var checkMode = data.checkMode;
  291. var checkType = data.checkType;
  292. var go_html = "../schduleChecked/baseCheckedItem.html?";
  293. if (checkType == 'fixed') {
  294. //常规任务
  295. if (checkMode == 1) { //现场检查
  296. go_html = "../schdule/schduleRiskPoints.html?";
  297. } else if (checkMode == 2) { //基础检查
  298. go_html = "../schduleChecked/baseCheckedItem.html?";
  299. }
  300. } else if (checkType == 'random') {
  301. //临时任务
  302. layer.msg("【临时任务】请在移动端 app 待办任务中检查");
  303. return;
  304. // go_html = "../schduleChecked/baseCheckedItem.html?";
  305. }
  306. location.href = go_html +
  307. "scheduleId=" + data.scheduleId +
  308. "&riskCheckDefTitle=" + data.riskCheckDefTitle +
  309. "&bizCheckDefId=" + data.bizCheckDefId +
  310. "&checkRecordNo=" + data.checkRecordNo +
  311. "&scheduleFrequency=" + data.scheduleFrequency +
  312. "&scheduleCurrentCount=" + data.scheduleCurrentCount +
  313. "&totalCheckCount=" + data.totalCheckCount;
  314. }
  315. });
  316. </script>
  317. </body>
  318. </html>