check_data_modal.ejs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. if (percent % 2 === 0) {
  64. const oldPercent = parseInt($('.progress-bar').attr('aria-valuenow'));
  65. progress(oldPercent + percent/2);
  66. }
  67. }
  68. const checkAndPost = async function (postUrl, postForm) {
  69. progress(0);
  70. $('#check').modal('show');
  71. const lastestData = await loadCheckData();
  72. progress(50);
  73. const result = setting.checkFun(lastestData, addProgress);
  74. progress(100);
  75. setTimeout(function () {
  76. if (result && result.length > 0) {
  77. $('#check-error-hint').modal('show');
  78. setting.errorList.loadErrorData(result);
  79. } else {
  80. postDataWithFile(postUrl, postForm, function () {
  81. window.location.reload();
  82. });
  83. }
  84. }, 1000);
  85. }
  86. return {checkAndPost};
  87. }
  88. </script>