Keine Beschreibung

overTimeOrder.js 8.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. /**
  2. * 超时工单
  3. * */
  4. var timeRules = ''; //超时时长规则
  5. $(function() {
  6. $('.tool_bars').authorizeButton();
  7. laydate.render({
  8. elem: '#sc_times',
  9. range: '~',
  10. theme: '#249fea',
  11. });
  12. if ($('#sc_times').val()=="") {
  13. function p(s) {
  14. return s < 10 ? '0' + s: s;
  15. }
  16. var currentYear=new Date().getFullYear();
  17. var currentMonth=new Date().getMonth()+1;
  18. var currentDate=new Date().getDate();
  19. var prevCurrentYear=0;
  20. var prevCurrentMonth=0;
  21. if(currentMonth==1){
  22. prevCurrentYear=currentYear-1;
  23. prevCurrentMonth=12;
  24. }else{
  25. prevCurrentYear=currentYear;
  26. prevCurrentMonth=currentMonth-1;
  27. }
  28. var current =currentYear+"-"+p(currentMonth)+"-"+p(currentDate);
  29. var lastmonth=prevCurrentYear+"-"+p(prevCurrentMonth)+"-"+p(currentDate)
  30. $('#sc_times').val(lastmonth+" ~ "+current)
  31. initTable();
  32. }
  33. //搜索
  34. $("#sc_btns").click(function() {
  35. initTable();
  36. });
  37. });
  38. function initTable() {
  39. //先销毁表格
  40. $('#table_all').bootstrapTable('destroy');
  41. //初始化表格,动态从服务器加载数据
  42. $('#table_all').bootstrapTable({
  43. method: "get", //使用get请求到服务器获取数据
  44. url: huayi.config.callcenter_url + "equipmentapi/api/WoTimeOut/getlistsbypage", //获取数据的Servlet地址
  45. contentType: "application/x-www-form-urlencoded",
  46. striped: true, //表格显示条纹
  47. pagination: true, //启动分页
  48. pageSize: 10, //每页显示的记录数
  49. pageNumber: 1, //当前第几页
  50. pageList: [10, 20, 50, 100], //记录数可选列表
  51. search: false, //是否启用查询
  52. showColumns: false, //显示下拉框勾选要显示的列
  53. showRefresh: false, //显示刷新按钮
  54. sidePagination: "server", //表示服务端请求
  55. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  56. //设置为limit可以获取limit, offset, search, sort, order
  57. queryParamsType: "undefined",
  58. queryParams: function queryParams(params) { //设置查询参数
  59. var param = {
  60. pageindex: params.pageNumber, //int 页码
  61. pagesize: params.pageSize, //int 条数
  62. stime: $('#sc_times').val() && $('#sc_times').val().split(' ~ ')[0], //开始时间
  63. etime: $('#sc_times').val() && $('#sc_times').val().split(' ~ ')[1], //结束时间
  64. wotype: $('#sc_orderType').val(), //否 int 工单类型 1报修,2保养,3巡检
  65. };
  66. return param;
  67. },
  68. responseHandler: function(res) {
  69. return {
  70. "total": res.data && res.data.total, //总页数
  71. "rows": res.data && res.data.rows //数据
  72. };
  73. },
  74. onLoadSuccess: function(res) { //加载成功时执行
  75. //layer.msg("加载成功");
  76. $('.tool_down').authorizeOperateButton();
  77. },
  78. onLoadError: function() { //加载失败时执行
  79. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  80. }
  81. });
  82. }
  83. //添加
  84. function btn_add() {
  85. layer.open({
  86. type: 2,
  87. content: "template/addOrEditOverTimeOrders.html", //iframe的url,no代表不显示滚动条
  88. title: '添加超时计划',
  89. resize: false,
  90. area: ['50%', '64%'], //宽高
  91. });
  92. }
  93. //提交超时原因
  94. function btn_overTime(edit_id) {
  95. layer.open({
  96. type: 2,
  97. content: "template/overTimeReasons.html?edit_id=" + edit_id, //iframe的url,no代表不显示滚动条
  98. title: '提交超时原因',
  99. resize: false,
  100. area: ['50%', '64%'], //宽高
  101. });
  102. }
  103. //查看工单详情
  104. function btn_details(orderDetailUrl) {
  105. //console.log(orderDetailUrl);
  106. layer.open({
  107. type: 2,
  108. content: orderDetailUrl, //iframe的url,no代表不显示滚动条
  109. title: '查看工单详情',
  110. resize: false,
  111. area: ['80%', '90%'], //宽高
  112. });
  113. }
  114. //格式化操作
  115. function formatterOperate(val, row) {
  116. var str = '';
  117. str = '<div class="task_tools" onclick = helper.methods.taskTools(this)>' +
  118. '<a title="操作"><i class="fa fa-cogs" aria-hidden="true"></i></a>' +
  119. '<ul class="tool_down">' +
  120. '<li><a class="aBtn" authorize="yes" id="HY_overTime_' + row.id + '" onclick="btn_overTime(\'' + row.id + '\')"><i class="fa icon-xiangmudaoqi tub"></i>超时原因</a><li>'
  121. '</ul></div>'
  122. return str;
  123. }
  124. //格式化工单编号
  125. function formatterWoCode(val, row){
  126. //工单类型 1报修,2保养,3巡检
  127. var orderDetailUrl = '';
  128. switch (row.wotype){
  129. case 1:
  130. orderDetailUrl = "../equipmentOperationManage/template/seeEquipmentRepair.html?ids=" + row.woid
  131. break;
  132. case 2:
  133. orderDetailUrl = "template/seeEqupMaintainOrders.html?edit_id=" + row.woid
  134. break;
  135. case 3:
  136. orderDetailUrl = "template/seeEqupRunOrderDetails.html?edit_id=" + row.woid
  137. break;
  138. default:
  139. break;
  140. }
  141. return '<ul class="tool_downs">' +
  142. '<li><a href="javascript:;" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\''+ orderDetailUrl +'\')" title="点击查看工单详情">'+ val +'</a><li>'
  143. '</ul>'
  144. }
  145. //格式化工单类型
  146. function formatterWotype(val) {
  147. //工单类型 1报修,2保养,3巡检
  148. var stateName = '-';
  149. switch(val) {
  150. case 1:
  151. stateName = '报修';
  152. break;
  153. case 2:
  154. stateName = '保养';
  155. break;
  156. case 3:
  157. stateName = '巡检';
  158. break;
  159. default:
  160. stateName = '-';
  161. break;
  162. }
  163. return stateName;
  164. }
  165. //格式化工单是否完结
  166. function formatterisover(val) {
  167. //工单是否完结 false否 true是
  168. var stateName = '-';
  169. switch(val) {
  170. case false:
  171. stateName = '否';
  172. break;
  173. case true:
  174. stateName = '是';
  175. break;
  176. default:
  177. stateName = '-';
  178. break;
  179. }
  180. return stateName;
  181. }
  182. //格式化是否超时
  183. function formatterIsTimeOut(val) {
  184. //0未确认,1超时,2不超时
  185. var stateClass, stateName;
  186. switch(val) {
  187. case 0:
  188. stateClass = 'state_audit_wait';
  189. stateName = '未确认';
  190. break;
  191. case 1:
  192. stateClass = 'state_audit_termination';
  193. stateName = '超时';
  194. break;
  195. case 2:
  196. stateClass = 'state_audit_doned';
  197. stateName = '不超时';
  198. break;
  199. default:
  200. stateClass = 'text-block';
  201. stateName = '-';
  202. break;
  203. }
  204. return '<a class="state_audit ' + stateClass + '" href="javascript:;">' + stateName + '</a>';
  205. }
  206. //格式化超时等级
  207. function formatterGrade(val) {
  208. //自动识别=1,通报主管=2,通报总监=3,通报甲方=4
  209. var stateClass = 'timeout_default';
  210. var stateTxt = '-';
  211. switch (val){
  212. case 1:
  213. stateClass = 'timeout_wait';
  214. stateTxt = '自动识别';
  215. break;
  216. case 2:
  217. stateClass = 'timeout_refuse';
  218. stateTxt = '通报主管';
  219. break;
  220. case 3:
  221. stateClass = 'timeout_revoke';
  222. stateTxt = '通报总监';
  223. break;
  224. case 4:
  225. stateClass = 'timeout_termination';
  226. stateTxt = '通报甲方';
  227. break;
  228. default:
  229. break;
  230. }
  231. return '<span class="' + stateClass + '">' + stateTxt + '</span>';
  232. }
  233. //获取超时时长的规则
  234. function timeoutRules() {
  235. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  236. $.ajax({
  237. type: "get",
  238. url: huayi.config.callcenter_url + "configurationapi/api/dictionary/getdicvaluelistdrop",
  239. dataType: 'json',
  240. async: true,
  241. data: {
  242. code: 'GDCSSC',
  243. },
  244. success: function(data) {
  245. if(data.state.toLowerCase() === 'success') {
  246. data = data.data;
  247. if(data && data.length > 0) {
  248. timeRules = data[0].name;
  249. }
  250. }
  251. dtd.resolve(); // 改变Deferred对象的执行状态
  252. }
  253. });
  254. return dtd.promise(); // 返回promise对象
  255. }
  256. //格式化超时时长
  257. function formatterTimeoutlong(val) {
  258. if(val < 0){
  259. return val;
  260. }
  261. var stateClass = 'timeout_default';
  262. if(timeRules) {
  263. var rule1 = (timeRules.split('|')[0] - 0) * 60;
  264. var rule2 = (timeRules.split('|')[1] - 0) * 60;
  265. var rule3 = (timeRules.split('|')[2] - 0) * 60;
  266. if(val === 0) {
  267. stateClass = 'timeout_default';
  268. } else if((val > 0) && (val <= rule1)) {
  269. stateClass = 'timeout_wait';
  270. } else if((val > rule1) && (val <= rule2)) {
  271. stateClass = 'timeout_refuse';
  272. } else if((val > rule2) && (val <= rule3)) {
  273. stateClass = 'timeout_revoke';
  274. } else {
  275. stateClass = 'timeout_termination';
  276. }
  277. }
  278. return '<span class="' + stateClass + '" href="javascript:;">' + helper.DateFormat.getDuring(val) + '</span>';
  279. }
  280. //格式化时间
  281. function formatterMaintainTime(val) {
  282. if(val == "0001-01-01 00:00:00" || val == "" || val == null || val == undefined) {
  283. return "-";
  284. } else {
  285. return val;
  286. }
  287. }