开封利通水务前端

WorkOrderEnd.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  1. /**
  2. * 工单处理(结束)
  3. * */
  4. $(document).ready(function() {
  5. autosize($('textarea'));
  6. var ID = helper.request.queryString("oid"); //工单ID
  7. if(ID) {
  8. getWorkOrderInfo(ID);
  9. }
  10. //点击确定
  11. $("#clgd").click(function() {
  12. if(!$("#cont").val()) {
  13. layer.confirm('请输入处理内容!', {
  14. icon: 2,
  15. btn: ['确定']
  16. });
  17. return;
  18. }
  19. var str=proimglist.toString();
  20. dealWorkOrder(ID,str);
  21. });
  22. })
  23. //获取工单信息
  24. function getWorkOrderInfo(oid) {
  25. $.ajax({
  26. type: "get",
  27. url: huayi.config.callcenter_url + "WorkOrder/GetWorkOrder",
  28. async: true,
  29. dataType: 'json',
  30. data: {
  31. orderid: oid,
  32. token: $.cookie("token")
  33. },
  34. success: function(data) {
  35. /*验证请求*/
  36. if(data.state == "success") {
  37. var Str = data.data.data;
  38. if(Str && Str.length > 0) {
  39. $('#cl_gdbh').text(Str[0].WorkOrderID); //工单编号
  40. $("#cl_gdlx").text(Str[0].GDLXName); //工单类型
  41. $("#xq_source").text(Str[0].GDLYName); //工单来源
  42. $("#xq_handle").text(Str[0].YWLXName); //业务办理
  43. $("#cl_khxm").text(Str[0].Customer); //姓名
  44. $("#cl_khdh").text(helper.filter.cutTel(Str[0].CustomerTel)); //电话
  45. $('#cl_gdnr').text(decodeURIComponent(Str[0].Detail));
  46. //微信内文件(暂时不用)
  47. var Files = Str[0].Files;
  48. if(Files) {
  49. var a;
  50. var b;
  51. $(Files).each(function(i, n) {
  52. a = n.F_FileType.split("\/")[0];
  53. b = n.F_FileName.split(".")[1];
  54. // console.log(a);
  55. if(a == 'image') {
  56. $('<div class="img-box"><a href="+' + n.F_FileUrl + '" download="' + n.F_FileName + '"><img src="' + n.F_FileUrl + '" alt="" class="image-item" data-preview-group="1" /><span class="">' + b + '</span></a><div>').appendTo(".space");
  57. } else {
  58. $('<div class="img-box "><a href="+' + n.F_FileUrl + '" download="' + n.F_FileName + '"><span class="">' + b + '</span></a><div>').appendTo(".space");
  59. }
  60. })
  61. }
  62. }
  63. }
  64. }
  65. });
  66. }
  67. //获取工单类型
  68. function getTypeName(val) {
  69. var str = '';
  70. switch(val + '') {
  71. case '107':
  72. str = "咨询";
  73. break;
  74. case '108':
  75. str = "投诉";
  76. break;
  77. }
  78. return str;
  79. }
  80. //上传文件
  81. $('#filelist').change(function(){
  82. var objUrl = getObjectURL(this.files[0]) ;//获取文件信息
  83. // console.log(objUrl);
  84. // if (objUrl) {
  85. // $("#img0").attr("src", objUrl);
  86. // }
  87. })
  88. //获取图片路径
  89. function getObjectURL(file) {
  90. console.log(file)
  91. var url = null;
  92. if (window.createObjectURL!=undefined) {
  93. url = window.createObjectURL(file) ;
  94. } else if (window.URL!=undefined) { // mozilla(firefox)
  95. url = window.URL.createObjectURL(file) ;
  96. } else if (window.webkitURL!=undefined) { // webkit or chrome
  97. url = window.webkitURL.createObjectURL(file) ;
  98. }
  99. return url ;
  100. }
  101. //处理
  102. function dealWorkOrder(oid,str) {
  103. var isDetail = helper.request.queryString("isDetail"); //是否是详情页面的处理
  104. $.post(huayi.config.callcenter_url + 'WorkOrder/DealWorkOrder', {
  105. // ResultFiles:$('')
  106. orderid: oid, //否 strubg 工单ID
  107. isover: $("input[name='isoverOptions']:checked").val(), //是否完结 0否,1是
  108. cont: $("#cont").val(), //否 处理内容
  109. ResultFiles:str,
  110. token: $.cookie("token")
  111. }, function(result) {
  112. result = $.parseJSON(result);
  113. if(result.state.toLowerCase() == "success") {
  114. if(isDetail === "true") {
  115. parent.parent.layer.closeAll();
  116. parent.parent.$('#orderlist').bootstrapTable('refresh');
  117. parent.parent.layer.msg("工单处理成功!");
  118. } else {
  119. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  120. parent.layer.close(index); //再执行关闭
  121. parent.$('#workorderlist').bootstrapTable('refresh');
  122. parent.$('.Closed').trigger('click');
  123. parent.layer.msg("工单处理成功!");
  124. }
  125. top.workcount();
  126. }
  127. })
  128. }
  129. /**
  130. * 附件上传直接在知识库管理拿来用 开始
  131. * */
  132. var proimglist = []; //保存附件数组
  133. var uploader; //上传实例
  134. var limitNum = 6; //限制数量
  135. var edit_id = helper.request.queryString("edit_id");
  136. var token = $.cookie("token");
  137. $(function() {
  138. autosize($('textarea'));
  139. getChangeTree();
  140. if(edit_id) {
  141. getDetail();
  142. } else {
  143. $('#kn_type').val('顶级分类');
  144. $('#kn_type').attr('data-id', 0)
  145. uploaderImages();
  146. }
  147. //初始化 下拉
  148. $('.inps1').focus(function() {
  149. $('.xlAdd').css('display', 'block');
  150. });
  151. $('.xl_one').click(function() {
  152. if($('.xlAdd').css('display') == 'block') {
  153. $('.xlAdd').css('display', 'none')
  154. } else {
  155. $('.xlAdd').css('display', 'block')
  156. }
  157. });
  158. $('.addTree').mouseleave(function() {
  159. $(this).css('display', 'none')
  160. });
  161. $('#save_knowledge').on('click', saveKnowledge);
  162. });
  163. //修改弹出框内 下拉树形图参数配置项
  164. function getChangeTree() {
  165. var setting3 = {
  166. data: {
  167. key: {
  168. name: "text"
  169. },
  170. simpleData: {
  171. enable: true,
  172. idKey: "id",
  173. rootPId: 0
  174. }
  175. },
  176. callback: {
  177. onClick: changeTreeClick
  178. }
  179. }
  180. $.get(huayi.config.callcenter_url + 'KnowledgeClass/GetList', {
  181. // "pid": pid,
  182. "token": token,
  183. }, function(result) {
  184. result = $.parseJSON(result);
  185. $.fn.zTree.init($("#addTreeDemo"), setting3, result.data); //实例化树形图
  186. });
  187. }
  188. function changeTreeClick(event, treeId, treeNode) {
  189. $('#kn_type').val(treeNode.text);
  190. $('#kn_type').attr('data-id', treeNode.id);
  191. };
  192. //获取详情
  193. function getDetail() {
  194. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  195. $.ajax({
  196. type: "post",
  197. url: huayi.config.callcenter_url + "Knowledge/GetInfo",
  198. async: true,
  199. dataType: 'json',
  200. data: {
  201. infoid: edit_id,
  202. token: token
  203. },
  204. success: function(data) {
  205. var con = data.data;
  206. $('#kn_title').val(con.F_Title);
  207. $('#kn_key').val(con.F_KeyWords);
  208. $('#kn_content').val(con.F_Description);
  209. $('#kn_type').val(con.F_Expand1);
  210. $('#kn_type').attr('data-id', con.F_CategoryId);
  211. //附件
  212. var proimglists = con.FileUrls;
  213. proimglists = proimglists == null ? [] : proimglists;
  214. limitNum -= proimglists.length;
  215. uploaderImages(); //附件上传
  216. if(proimglists.length > 0) {
  217. $('#fileNum').text(proimglists.length);
  218. var $list = $("#fileList");
  219. $.each(proimglists, function(i, v) {
  220. proimglist.push(v.F_FileId);
  221. if(v.F_FileType.split("\/")[0] === 'image') {
  222. //原来的图片
  223. var $li = $(
  224. '<li><span class="img_mask"><i class="img_del"></i></span>' +
  225. '<img src="' + v.F_FileUrl + '" title="原来的图片"/>' +
  226. '<span class="file_name">' + v.F_FileName + '</span>' +
  227. '</li>'
  228. );
  229. $list.append($li);
  230. } else {
  231. var $liFile = $(
  232. '<li><span class="img_mask"><i class="img_del"></i></span>' +
  233. '<div class="noThumb" title="原来的文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
  234. '<span class="file_name">' + v.F_FileName + '</span>' +
  235. '</li>'
  236. );
  237. $list.append($liFile);
  238. }
  239. });
  240. $list.find('li').off('click');
  241. $list.find('li').on('click', '.img_del', function() {
  242. $(this).parent().parent().remove();
  243. var itemFileName = $(this).parent().parent().find('.file_name').text();
  244. $.each(proimglists, function(i, v) {
  245. if(v && v.F_FileName == itemFileName) {
  246. proimglist.splice(i, 1);
  247. }
  248. });
  249. $('#fileNum').text(proimglist.length);
  250. limitNum = 6 - proimglist.length;
  251. uploaderImages();
  252. });
  253. }
  254. dtd.resolve(); // 改变Deferred对象的执行状态
  255. }
  256. });
  257. return dtd.promise(); // 返回promise对象
  258. }
  259. //保存
  260. function saveKnowledge() {
  261. var wUrl;
  262. if(!$.trim($('#kn_type').val())) {
  263. layer.confirm('所属分类不能为空', {
  264. icon: 2,
  265. btn: ['确定'] //按钮
  266. });
  267. return;
  268. }
  269. if(!$.trim($('#kn_title').val())) {
  270. layer.confirm('标题不能为空', {
  271. icon: 2,
  272. btn: ['确定'] //按钮
  273. });
  274. return;
  275. }
  276. if(edit_id) {
  277. wURL = "Knowledge/EditInfo";
  278. } else {
  279. wURL = "Knowledge/AddInfo";
  280. }
  281. $.ajax({
  282. type: "post",
  283. url: huayi.config.callcenter_url + wURL,
  284. dataType: 'json',
  285. async: true,
  286. beforeSend: function() { //触发ajax请求开始时执行
  287. $('#save_knowledge').attr("disabled", true);
  288. $('#save_knowledge').text('保存中...');
  289. $(document).off('click', '#save_knowledge', saveKnowledge);
  290. loadIndex = layer.load();
  291. },
  292. data: {
  293. infoid: edit_id,
  294. title: $('#kn_title').val(),
  295. key: $('#kn_key').val(),
  296. con: helper.filter.delHtmlTag($('#kn_content').val()),
  297. pid: $('#kn_type').attr('data-id'),
  298. fileids: proimglist && proimglist.join(','),
  299. token: token
  300. },
  301. success: function(result) {
  302. if(result.state.toLowerCase() === "success") {
  303. var index = parent.layer.getFrameIndex(window.name);
  304. parent.layer.close(index);
  305. parent.table.bootstrapTable('refresh');
  306. layer.msg("保存成功");
  307. }
  308. },
  309. error: function(textStatus) {
  310. layer.close(loadIndex);
  311. layer.confirm('网络繁忙,请稍后再试...', {
  312. icon: 7,
  313. closeBtn: 0,
  314. btn: ['确定'] //按钮
  315. });
  316. $('#save_knowledge').text('保存');
  317. $('#save_knowledge').attr("disabled", false);
  318. $(document).off('click', '#save_knowledge', saveKnowledge);
  319. $(document).on('click', '#save_knowledge', saveKnowledge);
  320. },
  321. complete: function(XMLHttpRequest, textStatus) {
  322. layer.close(loadIndex);
  323. if(textStatus == 'timeout') {
  324. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  325. xmlhttp.abort();
  326. layer.confirm('网络超时,请稍后再试...', {
  327. icon: 7,
  328. closeBtn: 0,
  329. btn: ['确定'] //按钮
  330. });    
  331. }
  332. $('#save_knowledge').text('保存');
  333. $('#save_knowledge').attr("disabled", false);
  334. $(document).off('click', '#save_knowledge', saveKnowledge);
  335. $(document).on('click', '#save_knowledge', saveKnowledge);
  336. },
  337. });
  338. }
  339. //上传附件
  340. function uploaderImages() {
  341. if(uploader) {
  342. uploader.destroy();
  343. }
  344. uploader = WebUploader.create({
  345. auto: true, // 选完文件后,是否自动上传
  346. swf: '../../js/webuploader/Uploader.swf', // swf文件路径
  347. server: huayi.config.callcenter_url + "Knowledge/UpLoadProcess", // 文件接收服务端
  348. pick: '#imgPicker', // 选择文件的按钮。可选
  349. formData: {
  350. token: token,
  351. },
  352. // 多类型文件上传
  353. accept: {
  354. title: 'Files',
  355. extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv',
  356. mimeTypes: 'image/*,text/*,audio/mpeg,audio/mp4, video/mp4'
  357. //word
  358. +',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  359. //excel
  360. +',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  361. //ppt
  362. +',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation'
  363. +',application/pdf'
  364. +',application/zip'
  365. +',application/csv'
  366. // title: 'Images',
  367. // extensions: 'gif,jpg,jpeg,bmp,png',
  368. // mimeTypes: 'image/*'
  369. },
  370. compress: false, //webuploader默认压缩图片,设置compress:false,可以按照原始比例上传图片
  371. //fileVal: "upFile",//设置文件上传域的name。
  372. threads: limitNum, //上传并发数。允许同时最大上传进程数,为了保证文件上传顺序
  373. fileNumLimit: limitNum,
  374. fileSizeLimit: 180 * 1024 * 1024, // 180 M
  375. fileSingleSizeLimit: 30 * 1024 * 1024 // 30 M
  376. });
  377. // uploader.on('uploadBeforeSend', function (obj,formData) {
  378. // console.log(obj.file)
  379. // console.log(formData)
  380. // formData['ResultFiles']=obj.file;
  381. //// delete formData['file']
  382. // return formData;
  383. // });
  384. uploader.on('fileQueued', function(file) {
  385. var $list = $("#fileList"),
  386. $li = $(
  387. '<li id="' + file.id + '"><span class="img_mask"><i class="img_del"></i></span>' +
  388. '<img/>' +
  389. '<span class="img_state"><i></i></span>' +
  390. '<span class="file_name">' + file.name + '</span>' +
  391. '</li>'
  392. ),
  393. $img = $li.find('img');
  394. // $list为容器jQuery实例
  395. $list.append($li);
  396. // 保存缩略图
  397. uploader.makeThumb(file, function(error, src) {
  398. if(error) {
  399. $img.replaceWith('<div class="noThumb"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>');
  400. return;
  401. }
  402. $img.attr('src', src);
  403. }, 109, 109); //109*109为缩略图尺寸
  404. //绑定删除
  405. $('#' + file.id).on('click', '.img_del', function() {
  406. uploader.removeFile(file);
  407. var $fileLi = $('#' + file.id);
  408. $fileLi.off().find('.img_del').off().end().remove();
  409. var itemFileName = $(this).parent().parent().find('.file_name').text();
  410. $.each(proimglist, function(i, v) {
  411. if(v && v.filename == itemFileName) {
  412. proimglist.splice(i, 1);
  413. //helper.methods.delImgs(v.filesmallurl, v.fileurl);
  414. }
  415. });
  416. $('#fileNum').text(proimglist.length);
  417. });
  418. });
  419. // 文件上传过程中保存进度条实时显示。
  420. uploader.on('uploadProgress', function(file, percentage) {
  421. var $li = $('#' + file.id),
  422. $percent = $li.find('.progress span');
  423. // 避免重复保存
  424. if(!$percent.length) {
  425. $percent = $('<div class="progress" style="">' +
  426. '<span class="text">0%</span>' +
  427. '<span class="percentage"></span>' +
  428. '</div>')
  429. .appendTo($li)
  430. .find('span');
  431. }
  432. $percent.eq(0).text(Math.round(percentage * 100) + '%');
  433. $percent.eq(1).css('width', Math.round(percentage * 100) + '%');
  434. });
  435. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  436. uploader.on('uploadSuccess', function(file, res) {
  437. proimglist.push(res.data.F_FileId);
  438. $('#fileNum').text(proimglist.length);
  439. $('#' + file.id).addClass('upload-state-done');
  440. });
  441. // 文件上传失败,显示上传出错。
  442. uploader.on('uploadError', function(file) {
  443. var $li = $('#' + file.id),
  444. $error = $li.find('div.error');
  445. // 避免重复创建
  446. if(!$error.length) {
  447. $error = $('<div class="error"></div>').appendTo($li);
  448. }
  449. $error.text('上传失败');
  450. });
  451. // 完成上传完了,成功或者失败,先删除进度条。
  452. uploader.on('uploadComplete', function(file) {
  453. $('#' + file.id).find('.progress').remove();
  454. });
  455. uploader.onError = function(code) {
  456. // console.log('Error:' + code);
  457. switch(code) {
  458. case "Q_EXCEED_NUM_LIMIT":
  459. layer.msg('只能上传六个文件。');
  460. break;
  461. case "Q_TYPE_DENIED":
  462. layer.msg('文件类型不正确。');
  463. break;
  464. case "F_DUPLICATE":
  465. layer.msg('该文件已上传,请选择其它文件。');
  466. break;
  467. case "F_EXCEED_SIZE":
  468. layer.msg('单文件大小不能超过30M。');
  469. break;
  470. case "Q_EXCEED_SIZE_LIMIT":
  471. layer.msg('总文件大小不能超过180M。');
  472. break;
  473. default:
  474. break;
  475. }
  476. };
  477. }
  478. /**
  479. * 附件上传直接在知识库管理拿来用 结束
  480. * */