Aucune description

importTel.html 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <script src="../../Script/Common/huayi.load.js"></script>
  6. <script src="../../Script/Common/huayi.config.js"></script>
  7. <title>导入号码</title>
  8. <style>
  9. .btn-success {
  10. color: #fff;
  11. background-color: #1ab394;
  12. border-color: #4cae4c;
  13. border-radius: 4px;
  14. cursor: pointer;
  15. }
  16. .btn-success.active,
  17. .btn-success:active,
  18. .btn-success:focus,
  19. .btn-success:hover {
  20. border-color: #4cae4c;
  21. background-color: #1ab394;
  22. }
  23. .btn-success[disabled],
  24. .btn-success[disabled]:active,
  25. .btn-success[disabled]:focus,
  26. .btn-success[disabled]:hover {
  27. background-color: #1ab394;
  28. }
  29. #importNum {
  30. width: 130px;
  31. margin: 60px auto 0 auto;
  32. }
  33. .progress {
  34. width: 80%;
  35. margin: 20px auto 0 auto;
  36. display: none;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div style="padding: 10px; margin-bottom: 20px;">
  42. <div class="alert alert-info" role="alert">
  43. <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
  44. <span class="sr-only">tips:</span> 上传文件需要严格按照下载的EXCEL模板进行填写!上传后点击导入即可!
  45. </div>
  46. <div class="form-inline clearfix">
  47. <div class="form-group">
  48. <a href="../drmb/importTel.xlsx" download="外呼号码导入模板.xlsx" class="btn btn-success form-control" id="downloadExl" title="点击下载EXCEL模板" rel="nofollow">
  49. 下载EXCEL模板
  50. </a>
  51. </div>
  52. <div class="form-group">
  53. <input class="hidden" type="file" id="upFile" name="upFile" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel,application/x-xls,application/x-xlsx" />
  54. <input class="form-control btn btn-success" title="点击上传Excel文件" type="button" value="上传Excel文件" id="upFileExcel" />
  55. <span class="excelName"></span>
  56. </div>
  57. </div>
  58. <div class="progress">
  59. <div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
  60. </div>
  61. </div>
  62. <div class="form-group text-center">
  63. <input type="button" id="importNum" class="form-control btn btn-success" value="导入" />
  64. </div>
  65. </div>
  66. <script>
  67. var wid = helper.request.queryString("Str");
  68. var percents = 0;//长传文件进度值
  69. $(document).ready(function() {
  70. //上传EXCEL文件
  71. $("#upFileExcel").click(function() {
  72. $("#upFile").trigger("click");
  73. });
  74. $("#upFile").change(function() {
  75. var Files = document.getElementById("upFile").files;
  76. $('.excelName').html(Files[0].name); //文件名称
  77. });
  78. $("#importNum").click(function() {
  79. //ajaxFileUpload();
  80. //upload();
  81. uploads();
  82. });
  83. });
  84. //上传Excel文件 模拟实时进度
  85. function uploads() {
  86. var txtName = $('.excelName').text();
  87. if(txtName == '') {
  88. layer.confirm('请先上传文件', {
  89. icon: 2,
  90. btn: ['确定']
  91. });
  92. return;
  93. }
  94. //一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
  95. if(txtName.indexOf('.xls') != -1 ||
  96. txtName.indexOf('.xlsx') != -1 ||
  97. txtName.indexOf('.xlt') != -1 ||
  98. txtName.indexOf('.xlsm') != -1
  99. ) {
  100. var formData = new FormData();
  101. var Files = document.getElementById("upFile").files;
  102. formData.append("upFile", Files[0]);
  103. formData.append("taskid", wid);
  104. formData.append("token", $.cookie("token"));
  105. $.ajax({
  106. url: huayi.config.callcenter_url + "CallOutPlan/TelInput",
  107. type: "POST",
  108. data: formData,
  109. /**
  110. *必须false才会自动加上正确的Content-Type
  111. */
  112. contentType: false,
  113. /**
  114. * 必须false才会避开jQuery对 formdata 的默认处理
  115. * XMLHttpRequest会对 formdata 进行正确的处理
  116. */
  117. processData: false,
  118. xhr: function() {
  119. var xhr = jQuery.ajaxSettings.xhr();
  120. xhr.upload.onload = function() {
  121. updateProgress(88);
  122. }
  123. xhr.upload.onprogress = function(ev) {
  124. updateProgress(70);
  125. }
  126. return xhr;
  127. },
  128. beforeSend: function(request) {
  129. $('.progress').show();
  130. $("#importNum").attr("disabled", true);
  131. $("#importNum").val('导入中...');
  132. updateProgress(50);
  133. },
  134. success: function(result) {
  135. updateProgress(100);
  136. var r = $.parseJSON(result);
  137. $("#importNum").attr("disabled", false);
  138. $("#importNum").val('导入');
  139. if(r.state.toLowerCase() == "success") {
  140. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  141. parent.layer.close(index); //再执行关闭
  142. parent.Right(wid);
  143. parent.layer.alert(r.message, {
  144. icon: 1,
  145. btn: ['确定']
  146. });
  147. }
  148. },
  149. error: function(textStatus) {
  150. percents = 0;
  151. $('.progress').hide();
  152. layer.confirm('网络繁忙,请稍后再试...', {
  153. btn: ['确定'] //按钮
  154. });
  155. $("#importNum").attr("disabled", false);
  156. $("#importNum").val('导入');
  157. },
  158. complete: function(XMLHttpRequest, textStatus) {
  159. percents = 0;
  160. $('.progress').hide();
  161. if(textStatus == 'timeout') {
  162. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  163. xmlhttp.abort();
  164. layer.confirm('网络超时,请稍后再试...', {
  165. btn: ['确定'] //按钮
  166. });    
  167. }
  168. $("#importNum").attr("disabled", false);
  169. $("#importNum").val('导入');
  170. },
  171. });
  172. } else {
  173. layer.confirm('请上传EXCEL文件', {
  174. icon: 2,
  175. btn: ['确定']
  176. });
  177. return;
  178. }
  179. }
  180. //更新进度条
  181. function updateProgress(p) {
  182. while(percents < p) {
  183. percents++;
  184. $('.progress-bar').css('width', percents + '%');
  185. $('.progress-bar').text(percents + '%');
  186. }
  187. }
  188. //上传Excel文件 (XHR中表示的是文件上传进度;上传完成返回数据还需要时间;)
  189. function upload() {
  190. var txtName = $('.excelName').text();
  191. if(txtName == '') {
  192. layer.confirm('请先上传文件', {
  193. icon: 2,
  194. btn: ['确定']
  195. });
  196. return;
  197. }
  198. //一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
  199. if(txtName.indexOf('.xls') != -1 ||
  200. txtName.indexOf('.xlsx') != -1 ||
  201. txtName.indexOf('.xlt') != -1 ||
  202. txtName.indexOf('.xlsm') != -1
  203. ) {
  204. var formData = new FormData();
  205. var Files = document.getElementById("upFile").files;
  206. formData.append("upFile", Files[0]);
  207. formData.append("taskid", wid);
  208. formData.append("token", $.cookie("token"));
  209. $.ajax({
  210. url: huayi.config.callcenter_url + "CallOutPlan/TelInput",
  211. type: "POST",
  212. data: formData,
  213. /**
  214. *必须false才会自动加上正确的Content-Type
  215. */
  216. contentType: false,
  217. /**
  218. * 必须false才会避开jQuery对 formdata 的默认处理
  219. * XMLHttpRequest会对 formdata 进行正确的处理
  220. */
  221. processData: false,
  222. xhr: function() { //这是关键 获取原生的xhr对象 做以前做的所有事情
  223. var xhr = jQuery.ajaxSettings.xhr();
  224. xhr.upload.onload = function() {
  225. //alert('finish downloading')
  226. }
  227. xhr.upload.onprogress = function(ev) {
  228. //console.log(ev);
  229. //if(ev.lengthComputable) {
  230. var percent = 100 * ev.loaded / ev.total;
  231. //console.log(percent, ev);
  232. $('.progress-bar').css('width', percent + '%');
  233. $('.progress-bar').text(percent + '%');
  234. //}
  235. }
  236. return xhr;
  237. },
  238. beforeSend: function(request) {
  239. $('.progress').show();
  240. $("#importNum").attr("disabled", true);
  241. $("#importNum").val('导入中...');
  242. },
  243. success: function(result) {
  244. $('.progress').hide();
  245. var r = $.parseJSON(result);
  246. $("#importNum").attr("disabled", false);
  247. $("#importNum").val('导入');
  248. if(r.state.toLowerCase() == "success") {
  249. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  250. parent.layer.close(index); //再执行关闭
  251. parent.Right(wid);
  252. parent.layer.alert(r.message, {
  253. icon: 1,
  254. btn: ['确定']
  255. });
  256. }
  257. },
  258. error: function(textStatus) {
  259. $('.progress-bar').css('width', '0%');
  260. $('.progress-bar').text('0%');
  261. layer.confirm('网络繁忙,请稍后再试...', {
  262. btn: ['确定'] //按钮
  263. });
  264. $("#importNum").attr("disabled", false);
  265. $("#importNum").val('导入');
  266. },
  267. complete: function(XMLHttpRequest, textStatus) {
  268. //$('.progress-bar').css('width', '0%');
  269. //$('.progress-bar').text('0%');
  270. if(textStatus == 'timeout') {
  271. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  272. xmlhttp.abort();
  273. layer.confirm('网络超时,请稍后再试...', {
  274. btn: ['确定'] //按钮
  275. });    
  276. }
  277. $("#importNum").attr("disabled", false);
  278. $("#importNum").val('导入');
  279. },
  280. });
  281. } else {
  282. layer.confirm('请上传EXCEL文件', {
  283. icon: 2,
  284. btn: ['确定']
  285. });
  286. return;
  287. }
  288. }
  289. /*function ajaxFileUpload() {
  290. var txtName = $('.excelName').text();
  291. if(txtName == '') {
  292. layer.confirm('请先上传文件', {
  293. icon: 2,
  294. btn: ['确定']
  295. });
  296. return;
  297. }
  298. //一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
  299. if(txtName.indexOf('.xls') != -1 ||
  300. txtName.indexOf('.xlsx') != -1 ||
  301. txtName.indexOf('.xlt') != -1 ||
  302. txtName.indexOf('.xlsm') != -1
  303. ) {
  304. $.ajaxFileUpload({
  305. url: huayi.config.callcenter_url + 'CallOutPlan/TelInput', //用于文件上传的服务器端请求地址
  306. secureuri: false, //是否需要安全协议,一般设置为false
  307. fileElementId: $("#upFile").attr("id"), //'upFile', //文件上传域的ID
  308. contentType: 'application/javascript; charset=utf-8',
  309. dataType: 'json', //返回值类型 一般设置为json
  310. data: {
  311. taskid: wid,
  312. token: $.cookie("token")
  313. },
  314. success: function(data, status, e) { //服务器成功响应处理函数
  315. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  316. parent.layer.close(index); //再执行关闭
  317. parent.Right(wid);
  318. parent.layer.msg("导入成功");
  319. },
  320. error: function(data, status, e) { //服务器响应失败处理函数
  321. //console.log(e);
  322. }
  323. })
  324. return false;
  325. } else {
  326. layer.confirm('请上传EXCEL文件', {
  327. icon: 2,
  328. btn: ['确定']
  329. });
  330. return;
  331. }
  332. }
  333. */
  334. </script>
  335. </body>
  336. </html>