myIndex.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  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. {field: 'checkMode' ,sort:false , title:'任务类型',width:150,
  110. templet:function (d) {
  111. return setCheckMode(d);
  112. }
  113. },
  114. {field: 'riskCheckDefTitle' , sort:false , title:'任务名称'},
  115. // {field: 'riskCheckTypeName' , sort:false , title:'检查类型'},
  116. // {field: 'checkDefName', sort:false , title:'检查表'},
  117. {field: 'groupName' , sort:false , title:'执行单位',width:200 },
  118. {field: 'riskCheckPositionName', sort: false, title: '岗位',width:120, },
  119. {field: 'riskCheckGroupName', sort: false, title: '受检部门' },
  120. {field: 'status' , sort:false ,width:100, title:'状态', templet:function (d) {
  121. return setStatus(d);
  122. }
  123. },
  124. {field: 'frequency' , sort:false ,width:170, title:'检查频率', templet:function (d) {
  125. return setFrequency(d);
  126. }
  127. },
  128. {field: 'startTime' , sort:false , title:'开始时间',width:160,
  129. templet: function (d) {
  130. return d.startTime.substr(0,16);
  131. }
  132. },
  133. {field: 'endTime' , sort:false , title:'结束时间',width:160 ,
  134. templet: function (d) {
  135. return d.endTime.substr(0,16);
  136. // return '<div class="countDown" data-date="' + (d.endTime||'') + '"></div>'
  137. }
  138. },
  139. {align: 'left', title:'操作', width: 110,fixed:'right',width: 170,
  140. templet: function (d) {
  141. return setOperation(d);
  142. }
  143. }
  144. ]],
  145. done: function (res, curr, count) {
  146. // $(".iManageRiskCount").html(count);
  147. // return '<div class="countDown" data-date="' + (d.countDown||'') + '">
  148. var elem = this.elem.next();
  149. var bodyElem = elem.find('.layui-table-main');
  150. layui.each(bodyElem.find('.countDown'), function (index, domElem) {
  151. domElem = $(domElem);
  152. if (!domElem.data('date')) {
  153. return;
  154. }
  155. var endTime = new Date(domElem.data('date')).getTime(),
  156. serverTime = new Date().getTime();
  157. util.countdown(endTime, serverTime, function (date, serverTime, timer) {
  158. var str = date[0] + '<span style=\'color: red\'>天</span>' + date[1]
  159. + '<span style=\'color: red\'>小时</span>'
  160. + date[2] + '分'
  161. + date[3] + '秒';
  162. if(date[0]==0){
  163. str="<span style='color: red'>已逾期</span>"
  164. }
  165. domElem.html(str);
  166. });
  167. });
  168. }
  169. });
  170. //操作
  171. function setOperation(row) {
  172. var html = '';
  173. var curTime = new Date();
  174. var endtime = new Date(row.endTime);
  175. var startTime = new Date(row.startTime);
  176. if(row.status == '0' || row.status == '1'){
  177. html += '<a class="layui-btn layui-btn-xs bg-c-orange" lay-event="startCheck" >开始检查</a>';
  178. }
  179. //检查方式 1,现场检查2、基础检查
  180. html += '<a class="layui-btn layui-btn-xs bg-c-add" lay-event="baseDetail" >检查记录</a>';
  181. return html;
  182. }
  183. //检查类型
  184. function setCheckMode(row){
  185. var checkModeStr = "";
  186. var checkTypeStr = "";
  187. if(row.checkMode == 1){
  188. checkModeStr = "现场任务";
  189. }else if(row.checkMode == 2){
  190. checkModeStr = "基础任务";
  191. }
  192. if(row.checkType == "fixed"){
  193. checkTypeStr = "【常规】";
  194. }else if(row.checkType == "random"){
  195. checkTypeStr = "【临时】";
  196. }
  197. return checkTypeStr + checkModeStr ;
  198. }
  199. //状态
  200. function setStatus(row){
  201. if (row.checkType === "random") {
  202. // var curTime = new Date();
  203. // var endtime = new Date(row.endTime);
  204. // if (curTime >= endtime) {
  205. // return "<i class=\"layui-icon\" style=\"color: darkred;\"></i> 已逾期";
  206. // }
  207. }
  208. if (row.status === 2) {
  209. return "<i class=\"layui-icon\" style=\"color: limegreen;\">&#xe617; 已检查</i> ";
  210. } else if (row.status === 1) {
  211. return "<i class=\"layui-icon\" style=\"color: #BF79DB;\">&#xe617; 检查中</i> ";
  212. } else if (row.status === 0) {
  213. return "<i class=\"layui-icon\" style=\"color: darkgrey;\">&#xe617; 未检查</i> ";
  214. } else if (row.status === 3) {
  215. return "<i class=\"layui-icon\" style=\"color: indianred\">&#xe617; 已逾期</i> ";
  216. } else {
  217. return "未知"
  218. }
  219. }
  220. //状态
  221. function setFrequency(row){
  222. var totalCheckCount = row.totalCheckCount;
  223. var scheduleCurrentCount = row.scheduleCurrentCount;
  224. var scheduleFrequency = row.scheduleFrequency;
  225. if(action == '0'){
  226. return '<i class="layui-icon" style="color: limegreen;">已检查 '+ (scheduleCurrentCount-1) +' 次</i>' + " / " + totalCheckCount + " "+scheduleFrequency;
  227. }else{
  228. return "("+scheduleFrequency + ")检查 " + totalCheckCount + " 次";
  229. }
  230. }
  231. // 搜索
  232. form.on('submit(formSubSearch)', function(data) {
  233. insTb.reload({where: data.field}, 'data');
  234. });
  235. // 工具条点击事件
  236. table.on('tool(datatable)', function (obj) {
  237. var data = obj.data;
  238. var layEvent = obj.event;
  239. if(layEvent == 'del'){ // 删除
  240. doDel(data);
  241. }else if(layEvent == 'liveDetail'){ // 详情
  242. //现场任务
  243. detail(data,"live");
  244. }else if(layEvent == 'baseDetail'){
  245. //常规任务
  246. detail(data,"base");
  247. }else if (layEvent == 'startCheck'){
  248. //开始检查
  249. startCheck(data);
  250. }
  251. });
  252. // 删除
  253. function doDel(data) {
  254. layer.confirm('确定要删除“' + data.riskCheckDefTitle + '”任务吗?', {
  255. skin: 'layui-layer-admin',
  256. shade: .1
  257. }
  258. , function (i) {
  259. layer.close(i);
  260. layer.load();
  261. admin.req(uParas.baseUrl + '/ent/riskCheckedSchdule/delete/'+ data.scheduleId,{},function (res) {
  262. layer.closeAll('loading');
  263. if (res.code == 1) {
  264. layer.msg(res.msg);
  265. insTb.reload({}, 'data');
  266. } else {
  267. layer.msg(res.msg);
  268. }
  269. },'GET');
  270. });
  271. }
  272. //详情
  273. function detail(data,type) {
  274. if (type == 'live'){
  275. location.href = "./taskCheckRecord.html?scheduleId="+data.scheduleId;
  276. }else{
  277. location.href = "./taskCheckRecord.html?scheduleId="+data.scheduleId;
  278. }
  279. //location.href = "./detail.html?scheduleId="+data.scheduleId;
  280. }
  281. //开始检查
  282. function startCheck(data) {
  283. // alert(JSON.stringify(data))
  284. var checkMode = data.checkMode;
  285. var checkType = data.checkType;
  286. var go_html = "../schduleChecked/baseCheckedItem.html?";
  287. if(checkType == 'fixed'){
  288. //常规任务
  289. if(checkMode == 1){ //现场检查
  290. go_html = "../schdule/schduleRiskPoints.html?";
  291. }else if(checkMode == 2){ //基础检查
  292. go_html = "../schduleChecked/baseCheckedItem.html?";
  293. }
  294. }else if(checkType == 'random'){
  295. //临时任务
  296. layer.msg("【临时任务】请在移动端 app 待办任务中检查");
  297. return;
  298. // go_html = "../schduleChecked/baseCheckedItem.html?";
  299. }
  300. location.href = go_html +
  301. "scheduleId="+ data.scheduleId +
  302. "&riskCheckDefTitle="+ data.riskCheckDefTitle +
  303. "&bizCheckDefId="+ data.bizCheckDefId +
  304. "&checkRecordNo="+ data.checkRecordNo +
  305. "&scheduleFrequency="+ data.scheduleFrequency +
  306. "&scheduleCurrentCount="+ data.scheduleCurrentCount +
  307. "&totalCheckCount="+ data.totalCheckCount;
  308. }
  309. });
  310. </script>
  311. </body>
  312. </html>