Brak opisu

AddKehuOrder.js 6.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. /**
  2. * 手工制单
  3. * */
  4. $(function() {
  5. //helper.getDropList.getlistDropByDic($('#order_handle'), 'QDLX');
  6. CPZL($("#order_handle"));
  7. uploaderImages();
  8. })
  9. $('#save_order').click(function() { //ID为test的元素点击时
  10. orderSave();
  11. });
  12. //新建工单 保存
  13. function orderSave() {
  14. if($('#kehuxing').val()=="") {
  15. layer.confirm('请输入客户姓名!', {
  16. icon: 2,
  17. btn: ['确定']
  18. });
  19. return;
  20. }
  21. if($('#kehudian').val()=="") {
  22. layer.confirm('请输入电话!', {
  23. icon: 2,
  24. btn: ['确定']
  25. });
  26. return;
  27. }
  28. if($("#xiangxi").val()=="") {
  29. layer.confirm('请输入详细地址!', {
  30. icon: 2,
  31. btn: ['确定']
  32. });
  33. return;
  34. }
  35. if($("#reception").val()=="") {
  36. layer.confirm('请输入问题描述!', {
  37. icon: 2,
  38. btn: ['确定']
  39. });
  40. return;
  41. }
  42. $.post(huayi.config.callcenter_url + 'WxLogin/CustomAdd', {
  43. F_Source: 4, //工单来源
  44. F_Type: $('#order_isover').find('input[type="radio"]:checked').val(), //工单类型
  45. F_CusName: $('#kehuxing').val(), //客户姓名
  46. F_CusPhone: $('#kehudian').val(), //否 string 客户电话
  47. F_Canal:$('#order_handle').val(), //渠道类型
  48. F_IncidentDetailed: $("#xiangxi").val(), //详细地址
  49. F_Description: $("#reception").val(), //问题描述
  50. F_Files: proimglist && proimglist.join(',') //附件
  51. }, function(result) {
  52. result = $.parseJSON(result);
  53. if(result.state.toLowerCase() == "success") {
  54. layer.msg("保存成功");
  55. setTimeout(function(){ window.location.reload() ; }, 2000);
  56. }
  57. })
  58. }
  59. function CPZL(obj) {
  60. obj.empty();
  61. obj.append('<option selected="selected" value="">请选择</option>');
  62. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlagWx", {
  63. "token": $.cookie("token"),
  64. flag: 'QDLX'
  65. }, function (data) {
  66. if (data.state.toLowerCase() == "success") {
  67. var content = data.data;
  68. $(content).each(function (i, n) {
  69. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  70. })
  71. }
  72. })
  73. }
  74. /**
  75. * 附件上传
  76. * */
  77. var proimglist = []; //保存附件数组
  78. var uploader; //上传实例
  79. var limitNum = 6; //限制数量
  80. //上传附件
  81. function uploaderImages() {
  82. if(uploader) {
  83. uploader.destroy();
  84. }
  85. uploader = WebUploader.create({
  86. auto: true, // 选完文件后,是否自动上传
  87. swf: '../../js/webuploader/Uploader.swf', // swf文件路径
  88. server: huayi.config.callcenter_url + "Knowledge/UpLoadProcess", // 文件接收服务端
  89. pick: '#imgPicker', // 选择文件的按钮。可选
  90. formData: {
  91. },
  92. // 多类型文件上传
  93. accept: {
  94. title: 'Files',
  95. extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv',
  96. mimeTypes: 'image/*,text/*,audio/mpeg,audio/mp4, video/mp4'
  97. //word
  98. +',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  99. //excel
  100. +',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  101. //ppt
  102. +',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation'
  103. +',application/pdf'
  104. +',application/zip'
  105. +',application/csv'
  106. // title: 'Images',
  107. // extensions: 'gif,jpg,jpeg,bmp,png',
  108. // mimeTypes: 'image/*'
  109. },
  110. compress: false, //webuploader默认压缩图片,设置compress:false,可以按照原始比例上传图片
  111. //fileVal: "upFile",//设置文件上传域的name。
  112. threads: limitNum, //上传并发数。允许同时最大上传进程数,为了保证文件上传顺序
  113. fileNumLimit: limitNum,
  114. fileSizeLimit: 180 * 1024 * 1024, // 180 M
  115. fileSingleSizeLimit: 30 * 1024 * 1024 // 30 M
  116. });
  117. uploader.on('fileQueued', function(file) {
  118. var $list = $("#fileList"),
  119. $li = $(
  120. '<li id="' + file.id + '"><span class="img_mask"><i class="img_del"></i></span>' +
  121. '<img/>' +
  122. '<span class="img_state"><i></i></span>' +
  123. '<span class="file_name">' + file.name + '</span>' +
  124. '</li>'
  125. ),
  126. $img = $li.find('img');
  127. // $list为容器jQuery实例
  128. $list.append($li);
  129. // 保存缩略图
  130. uploader.makeThumb(file, function(error, src) {
  131. if(error) {
  132. $img.replaceWith('<div class="noThumb"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>');
  133. return;
  134. }
  135. $img.attr('src', src);
  136. }, 109, 109); //109*109为缩略图尺寸
  137. //绑定删除
  138. $('#' + file.id).on('click', '.img_del', function() {
  139. uploader.removeFile(file);
  140. var $fileLi = $('#' + file.id);
  141. $fileLi.off().find('.img_del').off().end().remove();
  142. var itemFileName = $(this).parent().parent().find('.file_name').text();
  143. $.each(proimglist, function(i, v) {
  144. if(v && v.filename == itemFileName) {
  145. proimglist.splice(i, 1);
  146. //helper.methods.delImgs(v.filesmallurl, v.fileurl);
  147. }
  148. });
  149. $('#fileNum').text(proimglist.length);
  150. });
  151. });
  152. // 文件上传过程中保存进度条实时显示。
  153. uploader.on('uploadProgress', function(file, percentage) {
  154. var $li = $('#' + file.id),
  155. $percent = $li.find('.progress span');
  156. // 避免重复保存
  157. if(!$percent.length) {
  158. $percent = $('<div class="progress" style="">' +
  159. '<span class="text">0%</span>' +
  160. '<span class="percentage"></span>' +
  161. '</div>')
  162. .appendTo($li)
  163. .find('span');
  164. }
  165. $percent.eq(0).text(Math.round(percentage * 100) + '%');
  166. $percent.eq(1).css('width', Math.round(percentage * 100) + '%');
  167. });
  168. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  169. uploader.on('uploadSuccess', function(file, res) {
  170. proimglist.push(res.data.F_FileId);
  171. $('#fileNum').text(proimglist.length);
  172. $('#' + file.id).addClass('upload-state-done');
  173. });
  174. // 文件上传失败,显示上传出错。
  175. uploader.on('uploadError', function(file) {
  176. var $li = $('#' + file.id),
  177. $error = $li.find('div.error');
  178. // 避免重复创建
  179. if(!$error.length) {
  180. $error = $('<div class="error"></div>').appendTo($li);
  181. }
  182. $error.text('上传失败');
  183. });
  184. // 完成上传完了,成功或者失败,先删除进度条。
  185. uploader.on('uploadComplete', function(file) {
  186. $('#' + file.id).find('.progress').remove();
  187. });
  188. uploader.onError = function(code) {
  189. // console.log('Error:' + code);
  190. switch(code) {
  191. case "Q_EXCEED_NUM_LIMIT":
  192. layer.msg('只能上传六个文件。');
  193. break;
  194. case "Q_TYPE_DENIED":
  195. layer.msg('文件类型不正确。');
  196. break;
  197. case "F_DUPLICATE":
  198. layer.msg('该文件已上传,请选择其它文件。');
  199. break;
  200. case "F_EXCEED_SIZE":
  201. layer.msg('单文件大小不能超过30M。');
  202. break;
  203. case "Q_EXCEED_SIZE_LIMIT":
  204. layer.msg('总文件大小不能超过180M。');
  205. break;
  206. default:
  207. break;
  208. }
  209. };
  210. }
  211. /**
  212. * 附件上传直接在知识库管理拿来用 结束
  213. * */