Geen omschrijving

warrantyWorkOrder.js 9.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. /**
  2. * 报修平台
  3. * */
  4. var state = ''; // state tab页的 data-index(工单状态参数);
  5. var stateVal = ''; //默认为所有,”day”今天,”week”本周,”month”本月,”year”本年
  6. var showdatas = [];
  7. $(document).ready(function() {
  8. stateVal = 'week';
  9. initTable1();
  10. $('.tool_bars').authorizeButton();
  11. //搜索
  12. $('#sc_btns').click(function() {
  13. initTable1();
  14. })
  15. $('#HY_seeMore').click(function() {
  16. $('.moreCondition').toggleClass('show');
  17. })
  18. $('#sc_statebtn').find('input[type="radio"]').on('change', function() {
  19. stateVal = $(this).val();
  20. initTable1();
  21. });
  22. //时间
  23. laydate.render({
  24. elem: '#startTime',
  25. range: '~',
  26. theme: '#249fea'
  27. });
  28. // if($('#startTime').val() == "") {
  29. // function p(s) {
  30. // return s < 10 ? '0' + s : s;
  31. // }
  32. // var currentYear = new Date().getFullYear();
  33. // var currentMonth = new Date().getMonth() + 1;
  34. // var currentDate = new Date().getDate();
  35. // var prevCurrentYear = 0;
  36. // var prevCurrentMonth = 0;
  37. // if(currentMonth == 1) {
  38. // prevCurrentYear = currentYear - 1;
  39. // prevCurrentMonth = 12;
  40. // } else {
  41. // prevCurrentYear = currentYear;
  42. // prevCurrentMonth = currentMonth - 1;
  43. // }
  44. // var current = currentYear + "-" + p(currentMonth) + "-" + p(currentDate);
  45. // // var lastmonth=prevCurrentYear+"-"+p(prevCurrentMonth)+"-"+p(currentDate)
  46. // $('#startTime').val(getPreDatetime(3600 * 1000 * 24 * 6) + " ~ " + current)
  47. // initTable1();
  48. // }
  49. });
  50. //前一周
  51. function getPreDatetime(pdate) {
  52. var start = new Date()
  53. start.setTime(start.getTime() - pdate)
  54. start.getYear(); // 获取当前年份(2位)
  55. var YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
  56. var MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
  57. MM = MM > 9 ? MM : ('0' + MM);
  58. var DD = start.getDate() // 获取当前日(1-31)
  59. DD = DD > 9 ? DD : ('0' + DD)
  60. var lastmonth = YY + '-' + MM + '-' + DD;
  61. return lastmonth;
  62. }
  63. function initTable1() {
  64. //先销毁表格
  65. $('#table1').bootstrapTable('destroy');
  66. //初始化表格,动态从服务器加载数据
  67. $('#table1').bootstrapTable({
  68. method: "get", //使用get请求到服务器获取数据
  69. url: huayi.config.callcenter_url + "equipmentapi/api/WoRepairBase/gettjlist", //获取数据的Servlet地址
  70. contentType: "application/x-www-form-urlencoded",
  71. striped: true, //表格显示条纹
  72. smartDisplay: false,
  73. pageSize: 10, //每页显示的记录数
  74. pageNumber: 1, //当前第几页
  75. // pageList: [10, 20, 50, 100], //记录数可选列表
  76. search: false, //是否启用查询
  77. showColumns: false, //显示下拉框勾选要显示的列
  78. showRefresh: false, //显示刷新按钮
  79. sidePagination: "server", //表示服务端请求
  80. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  81. //设置为limit可以获取limit, offset, search, sort, order
  82. queryParamsType: "undefined",
  83. queryParams: function queryParams(params) { //设置查询参数
  84. var param = {
  85. daytype: stateVal,
  86. isdjtype: $("#isdjtype").val(),
  87. Jwocode: $('#teamName').val(), //班组名称
  88. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  89. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  90. };
  91. return param;
  92. },
  93. responseHandler: function(res) {
  94. //格式化数据
  95. let len = res.data.lists.length
  96. let newData = res.data.lists
  97. // console.log'
  98. var changecount = newData.reduce((sum, e) => sum + parseInt(e.changecount), 0) //改派量
  99. var comfrom = newData.reduce((sum, e) => sum + parseInt(e.comfrom), 0) //本院量
  100. var daycounts = newData.reduce((sum, e) => sum + parseInt(e.daycounts), 0) //总接单量
  101. var finishcount = newData.reduce((sum, e) => sum + parseInt(e.finishcount), 0) //已处理量
  102. var wfinishcount= newData.reduce((sum, e) => sum + parseInt(e.wfinishcount), 0) //已完结量
  103. var jsfinishcount = newData.reduce((sum, e) => sum + parseInt(e.jsfinishcount), 0) //及时完成
  104. var csfinishcount = newData.reduce((sum, e) => sum + parseInt(e.csfinishcount), 0) //超时完成
  105. var nfinishcount = newData.reduce((sum, e) => sum + parseInt(e.nfinishcount), 0) //未完结单量
  106. var finishlv; //完成率
  107. var nofinnishlv ;//未完成率
  108. var mywocode = newData.reduce((sum, e) => sum + parseInt(e.mywocode), 0) //满意
  109. var cwocode = newData.reduce((sum, e) => sum + parseInt(e.cwocode), 0) //差
  110. var ybwocode = newData.reduce((sum, e) => sum + parseInt(e.ybwocode), 0) //满意
  111. var wfinishcount = newData.reduce((sum, e) => sum + parseInt(e.wfinishcount), 0) //评价总数
  112. var mydinfo; //满意度
  113. var comfrombl;//本院量率
  114. var comfroms = newData.reduce((sum, e) => sum + parseInt(e.comfroms), 0) //第三方量
  115. var comfromsbl; //第三方量率
  116. if(finishcount==0||daycounts==0){
  117. finishlv=0
  118. }else{
  119. finishlv=((finishcount / daycounts)*100).toFixed(2) + '%'
  120. }
  121. if(nfinishcount==0||daycounts==0){
  122. nofinnishlv=0
  123. }else{
  124. nofinnishlv=((nfinishcount / daycounts)*100).toFixed(2) + '%'
  125. }
  126. if(mywocode==0||daycounts==0){
  127. mydinfo=0
  128. }else{
  129. mydinfo=(((mywocode)/(wfinishcount))*100).toFixed(2) + '%'
  130. }
  131. if(comfrom==0||daycounts==0){
  132. comfrombl=0
  133. }else{
  134. comfrombl=((comfrom / finishcount)*100).toFixed(2) + '%'
  135. }if(comfroms==0||finishcount==0){
  136. comfromsbl=0
  137. }else{
  138. comfromsbl=((comfroms / finishcount)*100).toFixed(2) + '%'
  139. }
  140. var newhzdata = [{
  141. deptname: '合计',
  142. daycounts: daycounts, //随访总数
  143. finishcount: finishcount,
  144. jsfinishcount: jsfinishcount,
  145. csfinishcount: csfinishcount,
  146. nfinishcount: nfinishcount, //满意数
  147. finishlv:finishlv ,//完成率
  148. nofinnishlv: nofinnishlv,
  149. mywocode: mywocode,//+ybwocode,
  150. ybwocode:ybwocode,
  151. cwocode: cwocode,
  152. mydinfo: mydinfo,
  153. comfrom: comfrom,
  154. comfrombl:comfrombl ,
  155. comfroms: comfroms,
  156. comfromsbl:comfromsbl,
  157. changecount: changecount
  158. }]
  159. if(newData.length > 0) {
  160. showdatas = newData.concat(newhzdata)
  161. } else {
  162. showdatas = []
  163. }
  164. return {
  165. "rows": showdatas //数据
  166. };
  167. // return {
  168. // "rows": res.data && res.data.lists, //数据
  169. // };
  170. },
  171. onLoadSuccess: function(res) { //加载成功时执行
  172. },
  173. onLoadError: function() { //加载失败时执行
  174. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  175. }
  176. });
  177. }
  178. // //操作
  179. // function formatterOperate(val, row) {
  180. // var str = '<ul class="tool_downs">' +
  181. // '<li><a class="aBtn" authorize="yes" id="HY_detail_' + row.deptname + '" onclick="btn_detail(\'' + row.deptname + '\')">详情</a><li>' +
  182. // '</ul>';
  183. // return str;
  184. // }
  185. //添加
  186. function btn_add() {
  187. layer.open({
  188. type: 2,
  189. content: "template/addEquipmentRepair.html",
  190. title: '添加故障维修',
  191. area: ['70%', '80%'], //宽高
  192. });
  193. }
  194. //处理
  195. function btn_handle(code, floorId, sysId) {
  196. layer.open({
  197. type: 2,
  198. content: "template/HandleEquipmentRepair.html?code=" + code + "&floorId=" + floorId,
  199. title: '故障维修处理',
  200. area: ['70%', '80%'], //宽高
  201. });
  202. }
  203. //详情
  204. function btn_details(ids) {
  205. layer.open({
  206. type: 2,
  207. content: "template/seeEquipmentRepair.html?ids=" + ids,
  208. title: '故障维修详情',
  209. area: ['70%', '80%'], //宽高
  210. });
  211. }
  212. //派单
  213. function btn_assign(proId, wocode) {
  214. layer.open({
  215. type: 2,
  216. content: "template/assignEquipmentRepair.html?&proId=" + proId + "&code=" + wocode,
  217. title: '故障维修派单',
  218. area: ['70%', '80%'], //宽高
  219. });
  220. }
  221. //导出
  222. function btn_export() {
  223. // var Jwocode = $('#teamName').val() //班组名称
  224. // var isdjtype=$("#isdjtype").val()
  225. // var stime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[0] //开始时间
  226. // var etime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[1] //结束时间
  227. // window.location.href = huayi.config.callcenter_url + "equipmentapi/api/WoRepairBase/exportexcel?Jwocode=" + Jwocode + "&stime=" + stime + "&etime=" + etime+"&isdjtype=" + isdjtype
  228. //要导出的json数据
  229. const jsonData = showdatas
  230. //列标题,逗号隔开,每一个逗号就是隔开一个单元格
  231. var str = `班组名称,总接单量,已处理量,已完结量,及时完成,超时完成,未完结单量,完成率,未完成率,满意,不满意,满意度,本院量,本院量率,第三方量,第三方量率,改派量\n`;
  232. //增加\t为了不让表格显示科学计数法或者其他格式
  233. for(let i = 0; i < jsonData.length; i++) {
  234. for(let item in jsonData[i]) {
  235. str += `${jsonData[i][item] + '\t'},`;
  236. }
  237. str += '\n';
  238. }
  239. //encodeURIComponent解决中文乱码
  240. let uri = 'data:text/csv/xls;charset=utf-8,\ufeff' + encodeURIComponent(str);
  241. //通过创建a标签实现
  242. let link = document.createElement("a");
  243. link.href = uri;
  244. //对下载的文件命名
  245. link.download = "报修工单统计表.xls";
  246. document.body.appendChild(link);
  247. link.click();
  248. document.body.removeChild(link);
  249. }
  250. //详情
  251. function btn_detail(deptname) {
  252. layer.open({
  253. type: 2,
  254. content: "template/warrantyWorkOrderDetail.html?deptname=" + encodeURIComponent(deptname),
  255. title: '报修工单详情',
  256. area: ['70%', '80%'], //宽高
  257. });
  258. }