Нет описания

Dr.html 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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/导入模板.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. //upload();
  80. uploads();
  81. });
  82. });
  83. //上传Excel文件 模拟实时进度
  84. function uploads() {
  85. var txtName = $('.excelName').text();
  86. if(txtName == '') {
  87. layer.confirm('请先上传文件', {
  88. icon: 2,
  89. btn: ['确定']
  90. });
  91. return;
  92. }
  93. //一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
  94. if(txtName.indexOf('.xls') != -1 ||
  95. txtName.indexOf('.xlsx') != -1 ||
  96. txtName.indexOf('.xlt') != -1 ||
  97. txtName.indexOf('.xlsm') != -1
  98. ) {
  99. var formData = new FormData();
  100. var Files = document.getElementById("upFile").files;
  101. formData.append("upFile", Files[0]);
  102. formData.append("taskid", wid);
  103. formData.append("token", $.cookie("token"));
  104. $.ajax({
  105. url: huayi.config.callcenter_url + "CallOutPlan/TelInput",
  106. type: "POST",
  107. data: formData,
  108. /**
  109. *必须false才会自动加上正确的Content-Type
  110. */
  111. contentType: false,
  112. /**
  113. * 必须false才会避开jQuery对 formdata 的默认处理
  114. * XMLHttpRequest会对 formdata 进行正确的处理
  115. */
  116. processData: false,
  117. xhr: function() {
  118. var xhr = jQuery.ajaxSettings.xhr();
  119. xhr.upload.onload = function() {
  120. updateProgress(88);
  121. }
  122. xhr.upload.onprogress = function(ev) {
  123. updateProgress(70);
  124. }
  125. return xhr;
  126. },
  127. beforeSend: function(request) {
  128. $('.progress').show();
  129. $("#importNum").attr("disabled", true);
  130. $("#importNum").val('导入中...');
  131. updateProgress(50);
  132. },
  133. success: function(result) {
  134. updateProgress(100);
  135. var r = $.parseJSON(result);
  136. $("#importNum").attr("disabled", false);
  137. $("#importNum").val('导入');
  138. if(r.state.toLowerCase() == "success") {
  139. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  140. parent.layer.close(index); //再执行关闭
  141. parent.Right(wid);
  142. parent.layer.alert(r.message, {
  143. icon: 1,
  144. btn: ['确定']
  145. });
  146. }
  147. },
  148. error: function(textStatus) {
  149. percents = 0;
  150. $('.progress').hide();
  151. layer.confirm('网络繁忙,请稍后再试...', {
  152. btn: ['确定'] //按钮
  153. });
  154. $("#importNum").attr("disabled", false);
  155. $("#importNum").val('导入');
  156. },
  157. complete: function(XMLHttpRequest, textStatus) {
  158. percents = 0;
  159. $('.progress').hide();
  160. if(textStatus == 'timeout') {
  161. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  162. xmlhttp.abort();
  163. layer.confirm('网络超时,请稍后再试...', {
  164. btn: ['确定'] //按钮
  165. });    
  166. }
  167. $("#importNum").attr("disabled", false);
  168. $("#importNum").val('导入');
  169. },
  170. });
  171. } else {
  172. layer.confirm('请上传EXCEL文件', {
  173. icon: 2,
  174. btn: ['确定']
  175. });
  176. return;
  177. }
  178. }
  179. //更新进度条
  180. function updateProgress(p) {
  181. while(percents < p) {
  182. percents++;
  183. $('.progress-bar').css('width', percents + '%');
  184. $('.progress-bar').text(percents + '%');
  185. }
  186. }
  187. //上传Excel文件 (XHR中表示的是文件上传进度;上传完成返回数据还需要时间;)
  188. function upload() {
  189. var txtName = $('.excelName').text();
  190. if(txtName == '') {
  191. layer.confirm('请先上传文件', {
  192. icon: 2,
  193. btn: ['确定']
  194. });
  195. return;
  196. }
  197. //一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
  198. if(txtName.indexOf('.xls') != -1 ||
  199. txtName.indexOf('.xlsx') != -1 ||
  200. txtName.indexOf('.xlt') != -1 ||
  201. txtName.indexOf('.xlsm') != -1
  202. ) {
  203. var formData = new FormData();
  204. var Files = document.getElementById("upFile").files;
  205. formData.append("upFile", Files[0]);
  206. formData.append("taskid", wid);
  207. formData.append("token", $.cookie("token"));
  208. $.ajax({
  209. url: huayi.config.callcenter_url + "CallOutPlan/TelInput",
  210. type: "POST",
  211. data: formData,
  212. /**
  213. *必须false才会自动加上正确的Content-Type
  214. */
  215. contentType: false,
  216. /**
  217. * 必须false才会避开jQuery对 formdata 的默认处理
  218. * XMLHttpRequest会对 formdata 进行正确的处理
  219. */
  220. processData: false,
  221. xhr: function() { //这是关键 获取原生的xhr对象 做以前做的所有事情
  222. var xhr = jQuery.ajaxSettings.xhr();
  223. xhr.upload.onload = function() {
  224. //alert('finish downloading')
  225. }
  226. xhr.upload.onprogress = function(ev) {
  227. //console.log(ev);
  228. //if(ev.lengthComputable) {
  229. var percent = 100 * ev.loaded / ev.total;
  230. //console.log(percent, ev);
  231. $('.progress-bar').css('width', percent + '%');
  232. $('.progress-bar').text(percent + '%');
  233. //}
  234. }
  235. return xhr;
  236. },
  237. beforeSend: function(request) {
  238. $('.progress').show();
  239. $("#importNum").attr("disabled", true);
  240. $("#importNum").val('导入中...');
  241. },
  242. success: function(result) {
  243. $('.progress').hide();
  244. var r = $.parseJSON(result);
  245. $("#importNum").attr("disabled", false);
  246. $("#importNum").val('导入');
  247. if(r.state.toLowerCase() == "success") {
  248. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  249. parent.layer.close(index); //再执行关闭
  250. parent.Right(wid);
  251. parent.layer.alert(r.message, {
  252. icon: 1,
  253. btn: ['确定']
  254. });
  255. }
  256. },
  257. error: function(textStatus) {
  258. $('.progress-bar').css('width', '0%');
  259. $('.progress-bar').text('0%');
  260. layer.confirm('网络繁忙,请稍后再试...', {
  261. btn: ['确定'] //按钮
  262. });
  263. $("#importNum").attr("disabled", false);
  264. $("#importNum").val('导入');
  265. },
  266. complete: function(XMLHttpRequest, textStatus) {
  267. //$('.progress-bar').css('width', '0%');
  268. //$('.progress-bar').text('0%');
  269. if(textStatus == 'timeout') {
  270. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  271. xmlhttp.abort();
  272. layer.confirm('网络超时,请稍后再试...', {
  273. btn: ['确定'] //按钮
  274. });    
  275. }
  276. $("#importNum").attr("disabled", false);
  277. $("#importNum").val('导入');
  278. },
  279. });
  280. } else {
  281. layer.confirm('请上传EXCEL文件', {
  282. icon: 2,
  283. btn: ['确定']
  284. });
  285. return;
  286. }
  287. }
  288. </script>
  289. </body>
  290. </html>