Нет описания

WorkOrderDetails.js 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. var selid = helper.request.queryString("id");
  2. var type = helper.request.queryString("type");
  3. var isManager = helper.request.queryString("isManager");
  4. var fileData = []
  5. $(document).ready(function () {
  6. //工单详情
  7. getWorkOrderDetails();
  8. getWorkOrderRecord();
  9. //获取角色
  10. getLoginPerson();
  11. // 工单详情、记录切换
  12. $(".ckxq ul li").click(function() {
  13. $(this).addClass("Active").siblings().removeClass("Active");
  14. var i = $(this).index();
  15. $(".gdxq").hide();
  16. $(".gdxq").eq(i).show();
  17. if(i === 0) {
  18. getWorkOrderDetails();
  19. } else if(i === 1) {
  20. getWorkOrderRecord();
  21. } else if (i === 2) {
  22. getWorkOrderDe();
  23. } else if (i === 3) {
  24. // 催单
  25. $('.customerSubmit').click(function() {
  26. saveCustomer();
  27. });
  28. // } else if (i === 4) {
  29. // //完善
  30. // $('.customerSubmit').click(function() {
  31. // saveCustomer();
  32. // });
  33. }
  34. });
  35. //提交
  36. $(".repeatSubmit").click(function() {
  37. submitRepeatWorkOrder();
  38. })
  39. /*
  40. 判断提交按钮是否显示
  41. type:
  42. 1: 隐藏提交按钮
  43. */
  44. if(type === "1") {
  45. $(".repeatSubmit").hide();
  46. } else {
  47. $(".repeatSubmit").show();
  48. }
  49. })
  50. $(".downAllFile").click(function(){
  51. console.log(fileData)
  52. $(fileData).each(function(i,n){
  53. downloadFile(n.url, n.strFileName, n.strMimeType)
  54. })
  55. })
  56. // 工单详情
  57. function getWorkOrderDetails() {
  58. $.getJSON(huayi.config.callcenter_url + 'WorkOrder/GetDetails', {
  59. id: selid,
  60. token: $.cookie("token")
  61. }, function(result) {
  62. if(result.state.toLowerCase() == "success") {
  63. if(result.rows.length > 0) {
  64. var data = result.rows[0];
  65. $("#detailWorkOrderId").text(data.F_WorkOrderId);
  66. $("#detailSource").text(workOrderDetailsSourceJudge(data)); //工单来源
  67. $("#detailType").text(workOrderDetailsTypeJudge(data)); //工单类别
  68. $("#detailAreaName").html(data.F_AreaName);
  69. $("#detailOfficeName").text(data.F_OfficName);
  70. $("#detailCreateTime").text(data.F_CreateTime);
  71. $("#detailDealTimely").text(data.F_DealTimely); //重要级别
  72. $("#detailReason").text(data.F_Reason); //重要原因
  73. $("#detailCusName").text(data.F_CusName);
  74. $("#detailCusPhone").text(data.F_CusPhone); // 联系电话
  75. $("#detailAddress").text(data.F_AddRess);
  76. $("#detailProductType").text(data.F_ProductType); //产品代码
  77. $("#detailProductName").text(data.F_ProductName);
  78. $('#detailSpecifications').text(data.F_Specifications);
  79. $("#detailPRoductDate").text(data.F_ProductDate); //生产日期
  80. $("#detailBatchNumber").text(data.F_BatchNumber);
  81. $("#detailManufacturer").text(data.F_Manufacturer);
  82. $("#detailProblemCode").text(data.F_ProblemCode); //问题代码
  83. $("#detailQualityProblem").text(data.F_QualityProblem);
  84. $("#detailNotifications").text(data.F_Notifications);
  85. $("#detailReceivingPerson").text(data.F_ReceivingPerson);
  86. $("#detailSerialNumber").text(data.F_SerialNumber);
  87. $("#detailState").text(workOrderDetailsStateJudge(data)); //工单状态
  88. $("#detailContent").text(data.F_Content); // 备注
  89. $("#detailDealResult").text(data.F_DealResult); //落实情况
  90. $("#detailDealUser").text(data.F_DealUser);
  91. $("#detailReduction").text(workOrderDetailsReduction(data)); //减免
  92. $("#detailReductionRemarks").text(data.F_RemissionRemarks); //减免备注
  93. $("#detailTransferTime").text(data.F_TransferTime); //转派时间
  94. $("#detailDealTime").text(data.F_DealTime); //处理时间
  95. $("#detailReceiving").text(data.F_Receiving); //接单时间
  96. var processingProgress = data.F_State; //处理进度
  97. getLoginPerson(processingProgress)
  98. if (isManager) {
  99. $("#detailCusPhone").text(" ") // 联系电话
  100. $("#detailContent").text(" ") // 备注
  101. $("#detailDealResult").text(" ") // 落实情况
  102. }
  103. }
  104. }
  105. })
  106. }
  107. // 工单记录
  108. function getWorkOrderRecord() {
  109. //先销毁表格
  110. $('#workOrderRecord').bootstrapTable('destroy');
  111. //初始化表格,动态从服务器加载数据
  112. $('#workOrderRecord').bootstrapTable({
  113. method: "get", //使用get请求到服务器获取数据
  114. url: huayi.config.callcenter_url + "WorkOrder/GetItemList", //获取数据的Servlet地址
  115. contentType: 'application/x-www-form-urlencoded',
  116. striped: true, //表格显示条纹
  117. pagination: true, //启动分页
  118. pageSize: 5, //每页显示的记录数
  119. pageNumber: 1, //当前第几页
  120. pageList: [5, 10, 20], //记录数可选列表
  121. search: false, //是否启用查询
  122. showColumns: false, //显示下拉框勾选要显示的列
  123. showRefresh: false, //显示刷新按钮
  124. sidePagination: "server", //表示服务端请求
  125. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  126. //设置为limit可以获取limit, offset, search, sort, order
  127. queryParamsType: "undefined",
  128. queryParams: function queryParams(params) { //设置查询参数
  129. var param = {
  130. id: selid, // 工单ID
  131. token: $.cookie("token"),
  132. pageindex: params.pageNumber, //页码
  133. pagesize: params.pageSize, //条数
  134. };
  135. return param;
  136. },
  137. // responseHandler: function(res) {
  138. // return {
  139. // "total": res.itemlasts.length,//总页数
  140. // "rows": res.itemlasts //数据
  141. // };
  142. // },
  143. onLoadSuccess: function() { //加载成功时执行
  144. //layer.msg("加载成功");
  145. },
  146. onLoadError: function() { //加载失败时执行
  147. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  148. }
  149. });
  150. }
  151. function getWorkOrderDe() {
  152. $.getJSON(huayi.config.callcenter_url + 'WorkOrder/GetDetails', {
  153. id: selid,
  154. "token": $.cookie("token")
  155. }, function(result) {
  156. if(result.state.toLowerCase() == "success") {
  157. var con = result;
  158. if (con) {
  159. $("#fileList").empty();
  160. var proimglist = con.FileUrl;
  161. if (proimglist && proimglist.length > 0) {
  162. $(proimglist).each(function(i, n) {
  163. var fileType = n.F_Type;
  164. var fileType1 = n.F_Type.split("\/")[0];
  165. if (fileType === '.jpg'||fileType === '.png'||fileType1==='image') {
  166. $('<div class="img-box">' +
  167. '<span class="img_mask"><span onclick=downloadFile("'+ n.F_Url + '","'+con.rows[0].F_WorkOrderId +"_"+ (i+1) + '","' + n.F_Type +
  168. '") title="点击下载"><i class="fa fa-download" aria-hidden="true"></i></span></span>' +
  169. '<img layer-src="' + n.F_Url + '" src="' + n.F_Url + '" alt="'+con.rows[0].F_WorkOrderId +"_"+ (i+1) +
  170. '" class="image-item" /><div>').appendTo("#fileList");
  171. } else {
  172. $('<div class="img-box">' +
  173. '<span class="img_mask"><span href="javascript:;" onclick=downloadFile("'+con.rows[0].F_WorkOrderId +"_"+ (i+1)+
  174. '","' + n.F_Type +
  175. '") title="点击下载"><i class="fa fa-download" aria-hidden="true"></i></span></span>' +
  176. '<span class="img_filename">'+n.F_OriName + n.F_Name.split(".")[1] + '</span><div>').appendTo("#fileList");
  177. }
  178. var fileObj = {}
  179. fileObj.url = n.F_Url
  180. fileObj.strFileName = con.rows[0].F_WorkOrderId +"_"+ (i+1)
  181. fileObj.strMimeType = n.F_Type
  182. fileData.push(fileObj)
  183. });
  184. layer.photos({
  185. photos: '#fileList',
  186. anim: 5, //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
  187. title: '查看图片',
  188. move: '.layui-layer-title',
  189. shadeClose: false,
  190. closeBtn: 1,
  191. area: ['60%', '95%'],
  192. tab: function(pic, layero){
  193. // console.log(pic) //当前图片的一些信息
  194. }
  195. });
  196. }
  197. }
  198. }
  199. });
  200. }
  201. function downloadFile(data, strFileName, strMimeType) {
  202. console.log(data, strFileName, strMimeType)
  203. event.preventDefault();
  204. //详细见文档 http://danml.com/download.html
  205. var x = new XMLHttpRequest();
  206. x.open("GET", data, true);
  207. x.responseType = 'blob';
  208. x.onload = function(e) {
  209. download(x.response, strFileName, strMimeType);
  210. }
  211. x.send();
  212. }
  213. // 工单详情中判断工单来源的值
  214. function workOrderDetailsSourceJudge (data) {
  215. if (data.F_Source === 1) {
  216. return 'PC';
  217. } else if (data.F_Source === 2) {
  218. return 'APP';
  219. } else if (data.F_Source === 3) {
  220. return '微信';
  221. } else {
  222. return '';
  223. }
  224. }
  225. // 工单详情中工单类别返回值判断
  226. function workOrderDetailsTypeJudge (data) {
  227. if (data.F_Type === 1) {
  228. return '咨询';
  229. } else if (data.F_Type === 2) {
  230. if (data.F_ComplaintType) {
  231. return '投诉' + '(' + data.F_ComplaintType + ')';
  232. }
  233. return '投诉';
  234. } else if (data.F_Type === 3) {
  235. return '重复';
  236. } else {
  237. return '';
  238. }
  239. }
  240. // 工单详情中减免返回值判断
  241. function workOrderDetailsReduction (data) {
  242. if (data.F_IsReduction === 0) {
  243. return '否';
  244. } else if (data.F_IsReduction === 1) {
  245. return '是';
  246. }
  247. }
  248. // 工单详情中工单状态返回值判断
  249. function workOrderDetailsStateJudge (data) {
  250. if (data.F_State === 0) {
  251. return '待提交';
  252. } else if (data.F_State === 1) {
  253. return '待分派';
  254. } else if (data.F_State === 2) {
  255. return '待接单';
  256. } else if (data.F_State === 3) {
  257. return '待处理';
  258. } else if (data.F_State === 4) {
  259. return '处理中';
  260. } else if (data.F_State === 5) {
  261. return '退回待分派';
  262. } else if (data.F_State === 6) {
  263. return '退回待提交';
  264. } else if (data.F_State === 10) {
  265. return '已完成';
  266. } else {
  267. return '';
  268. }
  269. }
  270. // 工单记录中工单状态返回值判断
  271. function formatterWorkOrderRecordStatus(val, row) {
  272. var formatterWorkOrderRecordStatusStr = '';
  273. if (row.F_WoState === 0){
  274. formatterWorkOrderRecordStatusStr = "待提交";
  275. }
  276. if (row.F_WoState === 1){
  277. formatterWorkOrderRecordStatusStr = "待分派";
  278. }
  279. if (row.F_WoState === 2){
  280. formatterWorkOrderRecordStatusStr = "待接单";
  281. }
  282. if (row.F_WoState === 3){
  283. formatterWorkOrderRecordStatusStr = "待处理";
  284. }
  285. if (row.F_WoState === 4){
  286. formatterWorkOrderRecordStatusStr = "处理中";
  287. }
  288. if (row.F_WoState === 5){
  289. formatterWorkOrderRecordStatusStr = "退回待分派";
  290. }
  291. if (row.F_OptType == 6){
  292. formatterWorkOrderRecordStatusStr = "退回待提交";
  293. }
  294. if (row.F_OptType == 10){
  295. formatterWorkOrderRecordStatusStr = "已完成";
  296. }
  297. return formatterWorkOrderRecordStatusStr;
  298. }
  299. // 提交重复工单
  300. function submitRepeatWorkOrder () {
  301. var laye = layer.confirm("您确定要提交重复工单吗?", {
  302. btn: ["确定", "取消"]
  303. }, function () {
  304. $.ajax({
  305. type: "post",
  306. url: huayi.config.callcenter_url + "WorkOrder/Repeat",
  307. async: true,
  308. dataType: "json",
  309. data: {
  310. token: $.cookie("token"),
  311. orderid: selid,
  312. isbj: 1
  313. },
  314. success: function (data) {
  315. if (data.state.toLowerCase() == 'success') {
  316. layer.msg("标记重复工单成功!");
  317. //工单列表
  318. parent.$("#workorderlist").bootstrapTable('refresh');
  319. //工单详情
  320. getWorkOrderDetails();
  321. getWorkOrderRecord();
  322. } else {
  323. layer.msg("标记重复工单失败!");
  324. }
  325. }
  326. });
  327. }, function(){
  328. layer.close(laye)
  329. })
  330. }
  331. // 获取当前登录人
  332. function getLoginPerson(processingProgress) {
  333. $.ajax({
  334. type: "get",
  335. url: huayi.config.callcenter_url + "UserAccount/GetNowUser",
  336. dataType: 'json',
  337. async: true,
  338. data: {
  339. token: $.cookie("token")
  340. },
  341. success: function(data) {
  342. var userRoleCode = data.data.role.F_RoleCode;
  343. // var processingProgress = processingProgress;
  344. // 判断角色权限
  345. rolePermission(userRoleCode, processingProgress)
  346. }
  347. });
  348. }
  349. /*
  350. 催单判断
  351. processingProgress
  352. 1、待分派
  353. 3、待处理
  354. 4、处理中
  355. 5、退回待分派
  356. 10、已处理
  357. userRoleCode
  358. XTGLY:系统维护
  359. CJGLY:超级管理员
  360. CLZY:总部处理专员
  361. */
  362. function rolePermission(userRoleCode, processingProgress) {
  363. if (processingProgress == 1 || processingProgress == 3 || processingProgress == 4 || processingProgress == 5) {
  364. if (userRoleCode == "XTGLY" || userRoleCode == "CJGLY" || userRoleCode == "CLZY") {
  365. $(".reminder-title").show();
  366. }
  367. } else if (processingProgress == 10) {
  368. if (userRoleCode == "XTGLY" || userRoleCode == "CJGLY" || userRoleCode == "CLZY") {
  369. $(".reminder-title").text("完善");
  370. $(".reminder-content-title").text("完善内容:")
  371. $(".reminder-title").show();
  372. }
  373. }
  374. }
  375. //催单
  376. function saveCustomer() {
  377. $.ajax({
  378. type: "post",
  379. url: huayi.config.callcenter_url + "WorkOrder/Reminder",
  380. dataType: 'json',
  381. async: true,
  382. beforeSend: function() { //触发ajax请求开始时执行
  383. $('.customerSubmit').attr("disabled", true);
  384. $('.customerSubmit').text('确定中...');
  385. },
  386. data: {
  387. token: $.cookie("token"),
  388. id: selid,
  389. count: $('#cont').val(), //催单备注
  390. },
  391. success: function(data) {
  392. if (data.state.toLowerCase() == 'success') {
  393. parent.layer.msg("催单成功!");
  394. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  395. parent.layer.close(index); //再执行关闭
  396. // parent.$("#workorderlist").bootstrapTable('refresh');
  397. } else {
  398. $('.customerSubmit').attr("disabled", false);
  399. $('.customerSubmit').text('确定');
  400. }
  401. }
  402. });
  403. }