Aucune description

equipMaintainOrder.js 11KB

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