check_data_modal.ejs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <!--上报审批 自检-->
  2. <div class="modal fade" id="check" data-backdrop="static">
  3. <div class="modal-dialog" role="document">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6. <h5 class="modal-title">上报审批</h5>
  7. </div>
  8. <div class="modal-body">
  9. <h5>数据计算中,完成后会自动进入审批流程设置。</h5>
  10. <div class="progress">
  11. <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
  12. </div>
  13. </div>
  14. </div>
  15. </div>
  16. </div>
  17. <!--上报审批 自检 计算错误-->
  18. <div class="modal fade" id="check-error-hint" data-backdrop="static">
  19. <div class="modal-dialog" role="document">
  20. <div class="modal-content">
  21. <div class="modal-header">
  22. <h5 class="modal-title">上报审批</h5>
  23. </div>
  24. <div class="modal-body">
  25. <div class="alert alert-danger" role="alert">
  26. 部分清单存在问题,请前往错误列表进行查看,并进行修改。
  27. </div>
  28. </div>
  29. <div class="modal-footer">
  30. <button type="button" class="btn btn-sm btn-primary" data-dismiss="modal" id="show-error-list">查看错误列表</button>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. <script>
  36. /**
  37. *
  38. * @param setting
  39. * {
  40. * loadUrl,
  41. * loadData,
  42. * checkFun,
  43. * errorList
  44. * }
  45. */
  46. const DataChecker = function (setting) {
  47. $('#show-error-list').click(function () {
  48. $('#check').modal('hide');
  49. setting.errorList.show();
  50. });
  51. const loadCheckData = function () {
  52. const promise = new Promise(function (resolve, reject) {
  53. postData(setting.loadUrl, setting.loadData, function (result) {
  54. resolve(result);
  55. });
  56. });
  57. return promise;
  58. }
  59. const progress = function (percent) {
  60. $('.progress-bar').attr('aria-valuenow', percent).width(percent + '%').html(percent + '%');
  61. }
  62. const addProgress = function (percent) {
  63. const oldPercent = parseInt($('.progress-bar').attr('aria-valuenow'));
  64. progress(oldPercent + percent);
  65. }
  66. const checkAndPost = async function (postUrl, postForm) {
  67. progress(0);
  68. $('#check').modal('show');
  69. const lastestData = await loadCheckData();
  70. progress(50);
  71. const result = setting.checkFun(lastestData, addProgress);
  72. progress(100);
  73. setTimeout(function () {
  74. if (result && result.length > 0) {
  75. $('#check-error-hint').modal('show');
  76. setting.errorList.loadErrorData(result);
  77. } else {
  78. postDataWithFile(postUrl, postForm, function (data) {
  79. if (data.url) window.location.href = data.url;
  80. });
  81. }
  82. }, 1000);
  83. }
  84. return {checkAndPost};
  85. }
  86. </script>