import_file_modal.ejs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <div class="modal fade" id="base-import-file" data-backdrop="static" enctype="multipart/form-data">
  2. <div class="modal-dialog" role="document">
  3. <div class="modal-content">
  4. <div class="modal-header">
  5. <h5 class="modal-title">导入</h5>
  6. </div>
  7. <div class="modal-body">
  8. <div class="form-group">
  9. <label >选择文件</label>
  10. <input type="file" class="form-control-file" id="bsf-file" accept="*.cpd">
  11. </div>
  12. </div>
  13. <div class="modal-footer d-flex justify-content-between">
  14. <div class="ml-auto">
  15. <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
  16. <button type="button" class="btn btn-primary btn-sm" id="bsf-ok">确认</button>
  17. </div>
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. <script>
  23. const BaseImportFile = (function () {
  24. let importSetting;
  25. // 清除上一次数据
  26. $('#base-import-file').bind('hidden.bs.modal', function () {
  27. $('#bsf-file').val('');
  28. });
  29. // 上传excel内容,并导入
  30. $('#bsf-ok').click(function () {
  31. const files = $('#bsf-file')[0].files;
  32. const formData = new FormData();
  33. for (const file of files) {
  34. if (file === undefined) {
  35. toast('未选择上传文件!', 'error');
  36. return false;
  37. }
  38. const filesize = file.size;
  39. if (filesize > 30 * 1024 * 1024) {
  40. toast('存在上传文件大小过大!', 'error');
  41. return false;
  42. }
  43. const fileext = '.' + file.name.toLowerCase().split('.').splice(-1)[0];
  44. if (importSetting.validList.indexOf(fileext) === -1) {
  45. toast('只能上传指定格式的附件!', 'error');
  46. return false;
  47. }
  48. formData.append('size', filesize);
  49. formData.append('file[]', file);
  50. }
  51. postDataWithFile(importSetting.url, formData, function (data) {
  52. if (importSetting.afterImport) importSetting.afterImport(data);
  53. $('#base-import-file').modal('hide');
  54. });
  55. });
  56. const show = function (setting) {
  57. importSetting = setting;
  58. $('#base-import-file').modal('show');
  59. }
  60. return { show };
  61. })();
  62. </script>