ImportForm.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /*
  2. * 描 述:导入Excel
  3. */
  4. var id = request('id');
  5. var ordertype = request('ordertype');
  6. var keyVaule = '';
  7. var acceptClick;
  8. var bootstrap = function ($, learun) {
  9. "use strict";
  10. var fileInfo = {};
  11. // 触发合并文件碎片
  12. var mergeFileChunks = function (file) {
  13. var param = {};
  14. param['__RequestVerificationToken'] = $.lrToken;
  15. //param['fileId'] = fileInfo[file.id].fileGuid;
  16. //param['chunks'] = fileInfo[file.id].chunks;
  17. //param['ext'] = file.ext;
  18. //param['templateId'] = id;
  19. //var curr = sessionStorage.getItem('CurrentWarehouse');
  20. param['fileId'] = fileInfo[file.id].fileGuid;
  21. param['ordertype'] = ordertype;
  22. param['chunks'] = fileInfo[file.id].chunks;
  23. param['ext'] = file.ext;
  24. // { fileId=fileInfo[file.id].fileGuid, ordertype=7, chunks=fileInfo[file.id].chunks, ext=file.ext }
  25. learun.httpAsyncPost(top.$.rootUrl + "/Utility/ExecuteImportExcel",
  26. param, function (res) {
  27. var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id);
  28. $fileItem.find('.lr-uploader-progress').remove();
  29. if (res.code == -1) {
  30. learun.alert.error(res.info);
  31. }
  32. else {
  33. if (res.code > 0) {
  34. learun.alert.success(res.info);
  35. }
  36. else {
  37. // 文件保存成功后
  38. $fileItem.append('<div class="lr-msg2"><span style="color:#b94a48;" >' + res.info + '</span></div>');
  39. if (res.code != -1) {
  40. learun.downloaderr({ url: top.$.rootUrl + '/Utility/DownImportErrorFile', param: { fileId: fileInfo[file.id].fileGuid, fileName: fileInfo[file.id].name, __RequestVerificationToken: $.lrToken }, method: 'POST' });
  41. // learun.download({ url: top.$.rootUrl + '/Utility/DownImportErrorFile', param: { fileId: fileInfo[file.id].fileGuid, fileName: fileInfo[file.id].name, __RequestVerificationToken: $.lrToken }, method: 'POST' });
  42. }
  43. else {
  44. learun.alert_res(res);
  45. }
  46. }
  47. }
  48. learun.layerTopReload();//刷新
  49. learun.layerClose(window.name);
  50. });
  51. }
  52. // 触发清楚文件碎片
  53. var reomveFileChunks = function (file) {
  54. var param = {};
  55. param['__RequestVerificationToken'] = $.lrToken;
  56. param['fileGuid'] = fileInfo[file.id].fileGuid;
  57. param['chunks'] = fileInfo[file.id].chunks;
  58. learun.httpAsyncPost(top.$.rootUrl + "/Utility/MergeAnnexesFile", param, function (res) { });
  59. var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id);
  60. $fileItem.find('.lr-uploader-progress').remove();
  61. $fileItem.append('<div class="lr-msg"><i class="fa fa-exclamation-circle"></i></div>');
  62. }
  63. var page = {
  64. uploader: null,
  65. init: function () {
  66. /*模板下载*/
  67. $('#lr_down_file_btn').on('click', function () {
  68. learun.download({ url: top.$.rootUrl + '/Utility/DownSchemeFile', param: { bustype: ordertype, __RequestVerificationToken: $.lrToken }, method: 'POST' });
  69. });
  70. if (!WebUploader.Uploader.support()) {
  71. alert('Web Uploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器');
  72. throw new Error('WebUploader does not support the browser you are using.');
  73. }
  74. page.uploader = WebUploader.create({
  75. auto: true,
  76. swf: top.$.rootUrl + '/Content/webuploader/Uploader.swf',
  77. // 文件接收服务端。
  78. server: top.$.rootUrl + "/Utility/UploadAnnexesFileChunk",
  79. // 选择文件的按钮。可选。
  80. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  81. pick: '#lr_add_file_btn',
  82. dnd: '#lr_form_file_queue',
  83. paste: 'document.body',
  84. disableGlobalDnd: true,
  85. accept: {
  86. extensions: "xls,xlsx"
  87. },
  88. multiple: true,
  89. // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
  90. resize: false,
  91. // 文件分片上传
  92. chunked: true,
  93. chunkRetry: 3,
  94. prepareNextFile: true,
  95. chunkSize: '1048576',
  96. // 上传参数
  97. formData: {
  98. __RequestVerificationToken: $.lrToken
  99. }
  100. });
  101. page.uploader.on('fileQueued', page.fileQueued);
  102. page.uploader.on('uploadStart', page.uploadStart);
  103. page.uploader.on('uploadBeforeSend', page.uploadBeforeSend);
  104. page.uploader.on('uploadProgress', page.uploadProgress);
  105. page.uploader.on('uploadSuccess', page.uploadSuccess);
  106. page.uploader.on('uploadError', page.uploadError);
  107. page.uploader.on('uploadComplete', page.uploadComplete);
  108. page.uploader.on('error', page.error);
  109. $('#lr_form_file_queue').lrscroll();
  110. },
  111. fileQueued: function (file) {// 文件加载到队列
  112. fileInfo[file.id] = { name: file.name };
  113. $('#lr_form_file_queue .lr-form-file-queue-bg').hide();
  114. // 添加一条文件记录
  115. var $item = $('<div class="lr-form-file-queue-item" id="lr_filequeue_' + file.id + '" ></div>');
  116. $item.append('<div class="lr-file-image"><img src="' + top.$.rootUrl + '/Content/images/filetype/' + file.ext + '.png"></div>');
  117. $item.append('<span class="lr-file-name">' + file.name + '(' + learun.countFileSize(file.size) + ')</span>');
  118. $('#lr_form_file_queue_list').append($item);
  119. },
  120. uploadStart: function (file) {
  121. var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id);
  122. $fileItem.append('<div class="lr-uploader-progress"><div class="lr-uploader-progress-bar" style="width:0%;"></div></div>');
  123. },
  124. uploadBeforeSend: function (object, data, headers) {
  125. data.chunk = data.chunk || 0;
  126. data.chunks = data.chunks || 1;
  127. fileInfo[data.id].fileGuid = fileInfo[data.id].fileGuid || WebUploader.Base.guid();
  128. data.fileGuid = fileInfo[data.id].fileGuid;
  129. fileInfo[data.id].chunks = data.chunks;
  130. },
  131. uploadProgress: function (file, percentage) {
  132. var $fileItem = $('#lr_form_file_queue_list').find('#lr_filequeue_' + file.id);
  133. $fileItem.find('.lr-uploader-progress-bar').css('width', (percentage * 100 + '%'));
  134. },
  135. uploadSuccess: function (file, res) {
  136. if (res.code > 0) {// 上传成功
  137. mergeFileChunks(file);
  138. }
  139. else {// 上传失败
  140. reomveFileChunks(file);
  141. }
  142. },
  143. uploadError: function (file, code) {
  144. reomveFileChunks(file);
  145. },
  146. uploadComplete: function (file) {
  147. },
  148. error: function (type) {
  149. switch (type) {
  150. case 'Q_TYPE_DENIED':
  151. learun.alert.error('当前文件类型不允许上传');
  152. break;
  153. };
  154. }
  155. };
  156. page.init();
  157. }