Brak opisu

backorder.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. /**
  2. * 报修平台
  3. * */
  4. var $storages = window.localStorage;
  5. $(document).ready(function() {
  6. $('.tool_bars').authorizeButton();
  7. $('#sc_btns').click(function() {
  8. initTable1();
  9. })
  10. //时间
  11. laydate.render({
  12. elem: '#startTime',
  13. range: '~',
  14. theme: '#249fea'
  15. });
  16. if ($('#startTime').val() == "") {
  17. function p(s) {
  18. return s < 10 ? '0' + s : s;
  19. }
  20. var currentYear = new Date().getFullYear();
  21. var currentMonth = new Date().getMonth() + 1;
  22. var currentDate = new Date().getDate();
  23. var prevCurrentYear = 0;
  24. var prevCurrentMonth = 0;
  25. if (currentMonth == 1) {
  26. prevCurrentYear = currentYear - 1;
  27. prevCurrentMonth = 12;
  28. } else {
  29. prevCurrentYear = currentYear;
  30. prevCurrentMonth = currentMonth - 1;
  31. }
  32. var current = currentYear + "-" + p(currentMonth) + "-" + p(currentDate);
  33. // var lastmonth = prevCurrentYear + "-" + p(prevCurrentMonth) + "-" + p(currentDate)
  34. var a = getPreDatetime(3600 * 1000 * 24 * 30);
  35. $('#startTime').val(getPreDatetime(3600 * 1000 * 24 * 30) + " ~ " + current)
  36. initTable1();
  37. }
  38. initTable1()
  39. });
  40. function getPreDatetime(pdate) {
  41. var start = new Date()
  42. start.setTime(start.getTime() - pdate)
  43. start.getYear(); // 获取当前年份(2位)
  44. var YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
  45. var MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
  46. MM = MM > 9 ? MM : ('0' + MM);
  47. var DD = start.getDate() // 获取当前日(1-31)
  48. DD = DD > 9 ? DD : ('0' + DD)
  49. var lastmonth = YY + '-' + MM + '-' + DD;
  50. return lastmonth;
  51. }
  52. function initTable1() {
  53. //先销毁表格
  54. $('#table1').bootstrapTable('destroy');
  55. //初始化表格,动态从服务器加载数据
  56. $('#table1').bootstrapTable({
  57. method: "get", //使用get请求到服务器获取数据
  58. url: huayi.config.callcenter_url + "equipmentapi/api/WoRepairBase/getfxwocodelist", //获取数据的Servlet地址
  59. contentType: "application/x-www-form-urlencoded",
  60. striped: true, //表格显示条纹
  61. pagination: true, //启动分页
  62. pageSize: 10, //每页显示的记录数
  63. pageNumber: 1, //当前第几页
  64. pageList: [10, 20, 50, 100], //记录数可选列表
  65. search: false, //是否启用查询
  66. showColumns: false, //显示下拉框勾选要显示的列
  67. showRefresh: false, //显示刷新按钮
  68. sidePagination: "server", //表示服务端请求
  69. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  70. //设置为limit可以获取limit, offset, search, sort, order
  71. queryParamsType: "undefined",
  72. queryParams: function queryParams(params) { //设置查询参数
  73. var param = {
  74. pageindex: params.pageNumber,
  75. pagesize: params.pageSize,
  76. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  77. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  78. };
  79. return param;
  80. },
  81. responseHandler: function(res) {
  82. //格式化数据
  83. return {
  84. "total": res.data && res.data.total, //总页数
  85. "rows": res.data && res.data.rows, //数据
  86. "totalcounts": res.data && res.data.totalcounts,
  87. "wzpcounts": res.data && res.data.wzpcounts,
  88. "yjdcounts": res.data && res.data.yjdcounts,
  89. "dpjcounts": res.data && res.data.dpjcounts,
  90. "ywjcounts": res.data && res.data.ywjcounts,
  91. "ygqcounts": res.data && res.data.ygqcounts,
  92. "yqxcounts": res.data && res.data.yqxcounts,
  93. };
  94. },
  95. onPostBody:function () {
  96. //console.log("行数据渲染完成!");
  97. var totalPages = $('#table1').bootstrapTable("getOptions").totalPages;
  98. var pageNumber = $('#table1').bootstrapTable("getOptions").pageNumber;
  99. var goInputWidth = 45;//输入框默认宽度
  100. var maxLen = (""+totalPages).length;
  101. //根据总页数设定跳转页面输入框宽度
  102. if (totalPages>999)
  103. goInputWidth = maxLen*10+15;
  104. var $pageGo = $('<span style="padding-left: 5px;">跳转到<input type="number" maxlength="'
  105. + maxLen+ '" min="1" max="' + totalPages
  106. + '" class="input-box" id="c_jump-to-page" value="'
  107. + pageNumber+ '" style="width: '+goInputWidth+'px;" />/'
  108. + totalPages+'页&nbsp;</span>');
  109. var $go = $("<a href=\"javascript:;\">Go</a>");
  110. $pageGo.append($go);
  111. $(".pagination-detail").append($pageGo);
  112. //页码范围限定(部分浏览器min~max失效时)
  113. $pageGo.change(function () {
  114. var goPage = $('#c_jump-to-page').val();
  115. if (goPage<1)
  116. $('#c_jump-to-page').val(1);
  117. if (goPage>totalPages)
  118. $('#c_jump-to-page').val(totalPages);
  119. });
  120. //跳转到
  121. $go.click(function () {
  122. var goPage = parseInt($('#c_jump-to-page').val());
  123. if (goPage!=pageNumber)
  124. $('#table1').bootstrapTable('selectPage', parseInt(goPage));
  125. });
  126. },
  127. onLoadSuccess: function(res) { //加载成功时执行
  128. if (res.totalcounts >= 100) {
  129. res.totalcounts = '99+';
  130. }
  131. if (res.wzpcounts >= 100) {
  132. res.wzpcounts = '99+';
  133. }
  134. if (res.yjdcounts >= 100) {
  135. res.yjdcounts = '99+';
  136. }
  137. if (res.dpjcounts >= 100) {
  138. res.dpjcounts = '99+';
  139. }
  140. if (res.ywjcounts >= 100) {
  141. res.ywjcounts = '99+';
  142. }
  143. if (res.ygqcounts >= 100) {
  144. res.ygqcounts = '99+';
  145. }
  146. if (res.yqxcounts >= 100) {
  147. res.yqxcounts = '99+';
  148. }
  149. $('.audit_all').text(res.totalcounts); //全部
  150. $('.audit_none').text(res.wzpcounts); //未指派
  151. $('.audit_order').text(res.yjdcounts); //已接单
  152. $('.audit_waitEvaluate').text(res.dpjcounts); //待评价
  153. $('.audit_complete').text(res.ywjcounts); //已完结
  154. $('.audit_ygqcounts').text(res.ygqcounts); //挂起
  155. $('.audit_yqxcounts').text(res.yqxcounts); //挂起
  156. $('.tool_down').authorizeOperateButton();
  157. //layer.msg("加载成功");
  158. // 判断满意度的显隐
  159. if ($storages.getItem('roleCode') == "YWYG") {
  160. $('#table1').bootstrapTable('hideColumn', 'score'); //隐藏上述score列
  161. }
  162. },
  163. onLoadError: function() { //加载失败时执行
  164. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  165. }
  166. });
  167. }
  168. //操作
  169. function formatterOperate(val, row) {
  170. var str = '';
  171. str = '<div class="task_tools" onclick = helper.methods.taskTools(this)>' +
  172. '<a title="操作"><i class="fa fa-cogs" aria-hidden="true"></i></a>' +
  173. '<ul class="tool_down">'
  174. switch (val + '') {
  175. case '0':
  176. str += '<li><a class="aBtn" authorize="yes" id="HY_assign_' + row.id + '" onclick="btn_assign(\'' + row.projectid +
  177. '\',\'' + row.wocode + '\')"><i class="fa icon-paidan tub"></i>派单</a><li>' +
  178. '<li><a class="aBtn" authorize="yes" id="HY_handle_' + row.id + '" onclick="btn_robbing(\'' + row.wocode +
  179. '\')"><i class="fa icon-qiangdan tub"></i>接收</a><li>' +
  180. '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id +
  181. '\')"><i class="fa icon-detail tub"></i>详情</a><li>' +
  182. '<li><a class="aBtn" authorize="yes" id="HY_edit_' + row.id + '" onclick="btn_edit(\'' + row.id +
  183. '\')"><i class="fa icon-edit tub"></i>编辑</a><li>' +
  184. '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id +
  185. '\')"><i class="fa icon-delete tub"></i>删除</a><li>'
  186. break;
  187. case '1':
  188. str += '<li><a class="aBtn" authorize="yes" id="HY_assign_' + row.id + '" onclick="btn_assign(\'' + row.projectid +
  189. '\',\'' + row.wocode + '\')"><i class="fa icon-paidan tub"></i>派单</a><li>' +
  190. '<li><a class="aBtn" authorize="yes" id="HY_deal' + row.id + '" onclick="btn_handle(\'' + row.wocode + '\',\'' +
  191. row.floorid + '\')"><i class="fa icon-msnui-audit tub"></i>处理</a><li>' +
  192. '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id +
  193. '\')"><i class="fa icon-detail tub"></i>详情</a><li>' +
  194. '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id +
  195. '\')"><i class="fa icon-delete tub"></i>删除</a><li>'
  196. break;
  197. case '2':
  198. str += '<li><a class="aBtn" authorize="yes" id="HY_evaluate_' + row.id + '" onclick="btn_evaluate(\'' + row.wocode +
  199. '\')"><i class="fa icon-zan tub"></i>评价</a><li>' +
  200. '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id +
  201. '\')"><i class="fa icon-detail tub"></i>详情</a><li>' +
  202. '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id +
  203. '\')"><i class="fa icon-delete tub"></i>删除</a><li>'
  204. break;
  205. case '3':
  206. str += '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id +
  207. '\')"><i class="fa icon-detail tub"></i>详情</a><li>' +
  208. '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id +
  209. '\')"><i class="fa icon-delete tub"></i>删除</a><li>'
  210. break;
  211. case '7':
  212. str += '<li><a class="aBtn" authorize="yes" id="HY_assign_' + row.id + '" onclick="btn_assign(\'' + row.projectid +
  213. '\',\'' + row.wocode + '\')"><i class="fa icon-paidan tub"></i>派单</a><li>' +
  214. '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id +
  215. '\')"><i class="fa icon-detail tub"></i>详情</a><li>' +
  216. '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id +
  217. '\')"><i class="fa icon-delete tub"></i>删除</a><li>'
  218. break;
  219. case '8':
  220. str += '<li><a class="aBtn" authorize="yes" id="HY_details_' + row.id + '" onclick="btn_details(\'' + row.id +
  221. '\')"><i class="fa icon-detail tub"></i>详情</a><li>' +
  222. '<li><a class="aBtn" authorize="yes" id="HY_delete_' + row.id + '" onclick="btn_delete(\'' + row.id +
  223. '\')"><i class="fa icon-delete tub"></i>删除</a><li>'
  224. break;
  225. default:
  226. str += '<li><a class="aBtn">-</a><li>'
  227. break;
  228. }
  229. str += '</ul>';
  230. str += '</div>';
  231. return str;
  232. }
  233. //编号
  234. function Code(val, row, index) {
  235. return index + 1;
  236. }
  237. //渠道来源
  238. function formatterChannel(val, row) {
  239. var str = '';
  240. switch (val + '') {
  241. case '1':
  242. str = '电话';
  243. break;
  244. case '2':
  245. str = "安卓";
  246. break;
  247. case '3':
  248. str = "IOS";
  249. break;
  250. case '4':
  251. str = "PC端";
  252. break;
  253. default:
  254. str = "其他"
  255. }
  256. return str
  257. }
  258. function formatterCreateuser(val, row) {
  259. var str = '';
  260. if (row.channel == 4) {
  261. str = row.repairman + '<br>' + '(' + row.createusername + ')'
  262. } else {
  263. str = row.repairman + '<br>' + '(' + val + ')'
  264. }
  265. return '<span>' + str + '</span>'
  266. }
  267. //格式化接单人
  268. function formatterToUser(val, row) {
  269. var toUserStr = '';
  270. var touser = row.touser;
  271. var tousername = row.tousername;
  272. // var touser = ["AA000", "AA001", "AA002"];
  273. // var tousername = ["张山", "李四", "王五"];
  274. if (touser != null) {
  275. if (touser.length < 1) {
  276. toUserStr = '-';
  277. } else {
  278. var toUsers = touser.concat(tousername);
  279. var toUsersLength = toUsers.length;
  280. if (toUsersLength === 2) {
  281. toUserStr = toUsers[0] + '-' + toUsers[1];
  282. } else {
  283. for (var i = 0; i < toUsersLength; i++) {
  284. if (i < toUsersLength / 2) {
  285. toUserStr += toUsers[i] + '-' + toUsers[toUsersLength / 2 + i] + ','
  286. toUserStr.substring(0, toUserStr.length - 1);
  287. } else {
  288. break;
  289. }
  290. }
  291. }
  292. }
  293. }
  294. return toUserStr;
  295. }
  296. //格式化满意度
  297. function formatterScore(val) {
  298. //1 差、2 不满意、3 一般、4 满意、5 很满意
  299. var stateClass = 'timeout_default';
  300. var stateTxt = '-';
  301. switch (val) {
  302. case 1:
  303. stateClass = 'timeout_termination';
  304. stateTxt = '差';
  305. break;
  306. case 2:
  307. stateClass = 'timeout_refuse';
  308. stateTxt = '不满意';
  309. break;
  310. case 3:
  311. stateClass = 'timeout_wait';
  312. stateTxt = '一般';
  313. break;
  314. case 4:
  315. stateClass = 'timeout_doned';
  316. stateTxt = '满意';
  317. break;
  318. case 5:
  319. stateClass = 'timeout_success';
  320. stateTxt = '很满意';
  321. break;
  322. default:
  323. stateClass = 'timeout_default';
  324. stateTxt = '-';
  325. break;
  326. }
  327. return '<span class="' + stateClass + '">' + stateTxt + '</span>';
  328. }
  329. // 格式化报修地点
  330. // function formatterRepairPlace(val, row) {
  331. // return val + ' ' + (row.repairoom || '')
  332. // }
  333. //故障说明
  334. function formatterDescripe(val) {
  335. if (val) {
  336. //var strD = decodeURIComponent(val);
  337. if (val.length > 12) {
  338. val = val.substring(0, 12) + '...';
  339. }
  340. return val;
  341. }
  342. }
  343. // 格式化超时时长
  344. function formatterdate(val, row) {
  345. var dateval = ''
  346. // console.log(val, row)
  347. if (row.tobztimes != null && val != null && row.wxtimeleths != null && row.wxtimeid != null) {
  348. var beginTimes = row.tobztimes.replace(/-/g, '/')
  349. var endTimes = val.replace(/-/g, '/')
  350. var middletime = row.wxtimeleths
  351. var a = (Date.parse(endTimes) - Date.parse(beginTimes)) / 3600 / 1000- middletime
  352. if(a>0){
  353. dateval = a.toFixed(2)+'小时'
  354. }
  355. } else {
  356. dateval = ''
  357. }
  358. return dateval;
  359. }
  360. // 格式化维修时效
  361. function formatterwxtimeleths(val,row) {
  362. var wxtimeval = ''
  363. // console.log(val, row)
  364. if ( val != null && val >0) {
  365. wxtimeval=val
  366. } else {
  367. wxtimeval = ''
  368. }
  369. return wxtimeval;
  370. }
  371. //工单状态
  372. function formatterState(val, row) {
  373. var str = '',
  374. className = '';
  375. switch (val) {
  376. case 0:
  377. str = '新工单';
  378. className = 'state_audit_wait';
  379. break;
  380. case 1: //已接收
  381. str = "已接单";
  382. className = 'state_audit_doned';
  383. break;
  384. case 2:
  385. str = "已处理";
  386. className = 'state_audit_refuse';
  387. break;
  388. case 3:
  389. str = "已完结";
  390. className = 'state_audit_done';
  391. break;
  392. case 7:
  393. str = "挂起";
  394. className = 'state_audit_revoke';
  395. break;
  396. case 8:
  397. str = "已取消";
  398. className = 'state_audit_hang';
  399. break;
  400. default:
  401. str = "其他";
  402. className = 'state_audit_other';
  403. break;
  404. }
  405. return '<a href="javaScript:;" class="state_audit ' + className + '">' + str + '</a>'
  406. }