暫無描述

equipRunOrder.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. /**
  2. * 设备巡检工单
  3. * */
  4. var timeRules = ''; //超时时长规则 暂时定5、10、 15 (分钟)三个阶段;展示不同的颜色
  5. var stateVal = ''; //默认为所有,”day”今天,”week”本周,”month”本月,”year”本年
  6. $(function() {
  7. //项目下拉
  8. helper.getDropList.getProlistDrop($('#sc_pro'));
  9. //系统名称
  10. // helper.getDropList.getlistDropByDic($('#sc_sysname'), 'XTMC');
  11. //设备名称
  12. // helper.getDropList.getEqplistDrop($('#sc_euqpname'));
  13. //巡检人
  14. helper.getDropList.getProUser('', $('#sc_checkby'));
  15. laydate.render({
  16. elem: '#sc_times',
  17. range: '~',
  18. theme: '#249fea',
  19. });
  20. // function getPreDatetime(pdate = 3600 * 1000 * 24 * 30) {
  21. // const start = new Date()
  22. // start.setTime(start.getTime() - pdate)
  23. // start.getYear() // 获取当前年份(2位)
  24. // const YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
  25. // let MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
  26. // MM = MM > 9 ? MM : ('0' + MM)
  27. // let DD = start.getDate() // 获取当前日(1-31)
  28. // DD = DD > 9 ? DD : ('0' + DD)
  29. // var lastmonth=YY + '-' + MM + '-' + DD
  30. // return lastmonth
  31. // }
  32. //获取超时时长的规则
  33. timeoutRules().then(function() {
  34. if ($('#sc_times').val()=="") {
  35. // function p(s) {
  36. // return s < 10 ? '0' + s: s;
  37. // }
  38. // var currentYear=new Date().getFullYear();
  39. // var currentMonth=new Date().getMonth()+1;
  40. // var currentDate=new Date().getDate();
  41. // var prevCurrentYear=0;
  42. // var prevCurrentMonth=0;
  43. // console.log(currentMonth);
  44. // if(currentMonth==1){
  45. // prevCurrentYear=currentYear-1;
  46. // prevCurrentMonth=12;
  47. // }else{
  48. // prevCurrentYear=currentYear;
  49. // prevCurrentMonth=currentMonth-1;
  50. // }
  51. // var current =currentYear+"-"+p(currentMonth)+"-"+p(currentDate);
  52. // var lastmonth=prevCurrentYear+"-"+p(prevCurrentMonth)+"-"+p(currentDate)
  53. initTable();
  54. // $('#sc_times').val(getPreDatetime()+" ~ "+current)
  55. }
  56. });
  57. //搜索
  58. $("#sc_btns").click(function() {
  59. initTable();
  60. });
  61. $('#sc_statebtn').find('input[type="radio"]').on('change', function() {
  62. stateVal = $(this).val();
  63. initTable();
  64. });
  65. $('#sc_pro').on('change', function() {
  66. $('#sc_checkby').empty();
  67. $('#sc_checkby').append('<option value="">请选择巡检人</option>');
  68. //巡检人
  69. helper.getDropList.getProUser($(this).val(), $('#sc_checkby'));
  70. });
  71. });
  72. function initTable() {
  73. //先销毁表格
  74. $('#table_all').bootstrapTable('destroy');
  75. //初始化表格,动态从服务器加载数据
  76. $('#table_all').bootstrapTable({
  77. method: "get", //使用get请求到服务器获取数据
  78. url: huayi.config.callcenter_url + "equipmentapi/api/WoEquipmentRunning/getlistsbypage", //获取数据的Servlet地址
  79. contentType: "application/x-www-form-urlencoded",
  80. striped: true, //表格显示条纹
  81. pagination: true, //启动分页
  82. pageSize: 10, //每页显示的记录数
  83. pageNumber: 1, //当前第几页
  84. pageList: [10, 20, 50, 100], //记录数可选列表
  85. search: false, //是否启用查询
  86. showColumns: false, //显示下拉框勾选要显示的列
  87. showRefresh: false, //显示刷新按钮
  88. sidePagination: "server", //表示服务端请求
  89. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  90. //设置为limit可以获取limit, offset, search, sort, order
  91. queryParamsType: "undefined",
  92. queryParams: function queryParams(params) { //设置查询参数
  93. var param = {
  94. pageindex: params.pageNumber, //否 int 页码
  95. pagesize: params.pageSize, //否 int 条数
  96. daytype: stateVal, //否 string 默认为所有,”day”今天,”week”本周,”month”本月,”year”本年
  97. projectid: $('#sc_pro').val(), // 否 string 项目id
  98. // sysnameid: $('#sc_sysname').val(), //否 string 系统名称id
  99. // equipmentid: $('#sc_euqpname').val(), //否 string 设备名称id
  100. checkby: $('#sc_checkby').val(), //否 string 巡检人code
  101. state: $('#sc_orderstate').val(), //否 int (0创建工单,1已转派,3已处理,6挂起)
  102. stime: $('#sc_times').val() && $('#sc_times').val().split(' ~ ')[0], //string 开始时间,对报修时间的检索,“2018-03-27”
  103. etime: $('#sc_times').val() && $('#sc_times').val().split(' ~ ')[1], //否 string 结束时间,对报修时间的检索,“2018-03-27”
  104. wocode: $('#sc_wecode').val(), //否 string 工单号(模糊查询)
  105. };
  106. return param;
  107. },
  108. responseHandler: function(res) {
  109. return {
  110. "total": res.data && res.data.total, //总页数
  111. "rows": res.data && res.data.rows,
  112. }
  113. },
  114. onLoadSuccess: function() { //加载成功时执行
  115. //layer.msg("加载成功");
  116. $('.tool_down').authorizeOperateButton();
  117. },
  118. onLoadError: function() { //加载失败时执行
  119. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  120. }
  121. });
  122. }
  123. //查看详情
  124. function btn_details(edit_id) {
  125. layer.open({
  126. type: 2,
  127. content: "template/seeEqupRunOrderDetails.html?edit_id=" + edit_id, //iframe的url,no代表不显示滚动条
  128. title: '查看设备巡检工单',
  129. resize: false,
  130. area: ['80%', '90%'], //宽高
  131. });
  132. }
  133. //处理
  134. function btn_deal(edit_id) {
  135. layer.open({
  136. type: 2,
  137. content: "template/dealRunOrder.html?edit_id=" + edit_id, //iframe的url,no代表不显示滚动条
  138. title: '处理设备巡检工单',
  139. resize: false,
  140. area: ['80%', '90%'], //宽高
  141. });
  142. }
  143. //批量转派
  144. function btn_transfers() {
  145. var ids = $.map($('#table_all').bootstrapTable('getSelections'),
  146. function(row) {
  147. return row.id + ',' + row.projectid + '|';
  148. });
  149. /*判断长度*/
  150. if(ids.length <= 0) {
  151. layer.confirm('请选择要转派的工单', {
  152. icon: 7,
  153. btn: ['确定'] //按钮
  154. });
  155. return;
  156. }
  157. if(ids.length >= 100) {
  158. layer.confirm('批量转派一次最多转派100个工单。', {
  159. icon: 7,
  160. btn: ['确定'] //按钮
  161. });
  162. return;
  163. }
  164. btn_transfer(ids);
  165. }
  166. //转派
  167. function btn_transfer(edit_id) {
  168. layer.open({
  169. type: 2,
  170. content: "template/transferRunOrder.html?edit_id=" + encodeURIComponent(edit_id), //iframe的url,no代表不显示滚动条
  171. title: '转派设备巡检工单',
  172. resize: false,
  173. area: ['80%', '90%'], //宽高
  174. });
  175. }
  176. //批量删除
  177. function btn_deletes() {
  178. var ids = $.map($('#table_all').bootstrapTable('getSelections'),
  179. function(row) {
  180. return row.id;
  181. });
  182. /*判断长度*/
  183. if(ids.length <= 0) {
  184. layer.confirm('请选择要删除的选项', {
  185. icon: 7,
  186. btn: ['确定'] //按钮
  187. });
  188. return;
  189. }
  190. btn_delete(ids);
  191. }
  192. //删除
  193. function btn_delete(del_id) {
  194. /*发送请求*/
  195. layer.confirm('您确定要删除当前设备巡检工单吗?', {
  196. icon: 7,
  197. btn: ['确定', '取消'],
  198. yes: function(index, layero) {
  199. $.post(huayi.config.callcenter_url + "equipmentapi/api/WoEquipmentRunning/delete", {
  200. ids: del_id,
  201. }, function(result) {
  202. result = JSON.parse(result);
  203. if(result.state.toLowerCase() == "success") {
  204. layer.msg("删除成功");
  205. $('#table_all').bootstrapTable('refresh');
  206. }
  207. })
  208. },
  209. });
  210. }
  211. //格式化操作
  212. function formatterOperate(val, row) {
  213. //0新工单,1已转派,2已接收,3已处理,4已评价,5已取消,6挂起
  214. var str = '<div class="task_tools" onclick = helper.methods.taskTools(this)>' +
  215. '<a title="操作"><i class="fa fa-cogs" aria-hidden="true"></i></a>' +
  216. '<ul class="tool_down">' +
  217. '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id + '\')"><i class="fa icon-detail tub"></i>详情</a><li>'
  218. if(row.wostate != 3) {
  219. str += '<li><a class="aBtn" authorize="yes" id="HY_deal_' + row.id + '" onclick="btn_deal(\'' + row.id + ',' + row.projectid + '\')"><i class="fa icon-msnui-audit tub"></i>处理</a><li>' +
  220. '<li><a class="aBtn" authorize="yes" id="HY_transfer_' + row.id + '" onclick="btn_transfer(\'' + row.id + ',' + row.projectid + ',' + row.wocode + '\')"><i class="fa icon-transfer tub"></i>转派</a><li>'
  221. }
  222. str += '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id + '\')"><i class="fa icon-delete tub"></i>删除</a><li>' +
  223. '</ul></div>'
  224. return str;
  225. }
  226. //格式化上次巡检结果
  227. function formatterlastcheckresultid(val, row){
  228. if(row.lastchecktime === "0001-01-01 00:00:00"){
  229. return '-';
  230. }else{
  231. return ftype(val);
  232. }
  233. }
  234. ////格式化设备状态
  235. //function formatterquipmenttype(val, row) {
  236. // if(row.equipmentname && row.equipmentname.length > 0 && row.equipmentname != ''){
  237. // return ftype(val);
  238. // }else{
  239. // return '-';
  240. // }
  241. //}
  242. //格式化状态
  243. function ftype(val) {
  244. //1正常,0异常
  245. var stateClass = 'timeout_default';
  246. var stateTxt = '-';
  247. if(val === 1) {
  248. stateClass = 'timeout_success';
  249. stateTxt = '正常';
  250. } else {
  251. stateClass = 'timeout_termination';
  252. stateTxt = '异常';
  253. }
  254. return '<span class="' + stateClass + '">' + stateTxt + '</span>';
  255. }
  256. //格式化工单状态
  257. function formatterwostate(val) {
  258. //int (0创建工单,1已转派,2已接收,3已处理,6挂起,11待处理(包含已接收和已转派))
  259. var stateClass, stateName;
  260. switch(val) {
  261. case 0:
  262. stateClass = 'state_audit_wait';
  263. stateName = '新工单';
  264. break;
  265. case 1:
  266. stateClass = 'state_audit_refuse';
  267. stateName = '已转派';
  268. break;
  269. case 2:
  270. stateClass = 'state_audit_doned';
  271. stateName = '已接收';
  272. break;
  273. case 3:
  274. stateClass = 'state_audit_done';
  275. stateName = '已处理';
  276. break;
  277. case 11:
  278. stateClass = 'state_audit_revoke';
  279. stateName = '待处理';
  280. break;
  281. default:
  282. stateClass = 'text-block';
  283. stateName = '-';
  284. break;
  285. }
  286. return '<a class="state_audit ' + stateClass + '" href="javascript:;">' + stateName + '</a>';
  287. }
  288. //格式化设备名称
  289. function formatterEquipname(val, row) {
  290. if(val && val.length > 1) {
  291. return val[0] + '...';
  292. } else if(val && val.length === 1 && val[0] != "") {
  293. return val;
  294. } else {
  295. return '-';
  296. }
  297. }
  298. //格式化 时间
  299. function formatterCheckTime(val) {
  300. if(val == "0001-01-01 00:00:00" || val == "" || val == null || val == undefined) {
  301. return "-";
  302. } else {
  303. return val;
  304. }
  305. }
  306. //格式化巡检人
  307. function formatterCheckby(val, row){
  308. if(val == "" || val == null || val == undefined) {
  309. return "-";
  310. } else {
  311. return val + '-' + row.checkbyuser;
  312. }
  313. }
  314. //格式化处理人
  315. function formatterDealby(val, row) {
  316. if(val == "" || val == null || val == undefined) {
  317. return "-";
  318. } else {
  319. return val + '-' + row.dealbyuser;
  320. }
  321. }
  322. //格式化创建人
  323. function formatterCreateby(val, row) {
  324. if(val == "" || val == null || val == undefined) {
  325. return "-";
  326. } else {
  327. return val + '-' + row.createbyuser;
  328. }
  329. }
  330. //获取超时时长的规则
  331. function timeoutRules() {
  332. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  333. $.ajax({
  334. type: "get",
  335. url: huayi.config.callcenter_url + "configurationapi/api/dictionary/getdicvaluelistdrop",
  336. dataType: 'json',
  337. async: true,
  338. data: {
  339. code: 'GDCSSC',
  340. },
  341. success: function(data) {
  342. if(data.state.toLowerCase() === 'success') {
  343. data = data.data;
  344. if(data && data.length > 0) {
  345. timeRules = data[0].name;
  346. }
  347. }
  348. dtd.resolve(); // 改变Deferred对象的执行状态
  349. }
  350. });
  351. return dtd.promise(); // 返回promise对象
  352. }
  353. //格式化超时时长 暂时定5、10、 15 (分钟)三个阶段;展示不同的颜色
  354. function formatterTimeoutlong(val) {
  355. if(val < 0){
  356. return val;
  357. }
  358. var stateClass = 'timeout_default';
  359. if(timeRules) {
  360. var rule1 = (timeRules.split('|')[0] - 0) * 60;
  361. var rule2 = (timeRules.split('|')[1] - 0) * 60;
  362. var rule3 = (timeRules.split('|')[2] - 0) * 60;
  363. if(val === 0) {
  364. stateClass = 'timeout_default';
  365. } else if((val > 0) && (val <= rule1)) {
  366. stateClass = 'timeout_wait';
  367. } else if((val > rule1) && (val <= rule2)) {
  368. stateClass = 'timeout_refuse';
  369. } else if((val > rule2) && (val <= rule3)) {
  370. stateClass = 'timeout_revoke';
  371. } else {
  372. stateClass = 'timeout_termination';
  373. }
  374. }
  375. return '<span class="' + stateClass + '" href="javascript:;">' + helper.DateFormat.getDuring(val) + '</span>';
  376. }