You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IndexImport.js 8.1 KiB

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