modal.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. const jQuery = require('jquery');
  2. (function ($) {
  3. let close = require("../images/icon_close_default.png")
  4. let suc = require("../images/success.png")
  5. let def = require("../images/default.png")
  6. let warn = require("../images/warn.png")
  7. let loadingImg = require("../images/loading.gif")
  8. $.alerModal = function (options) {
  9. var dft = {
  10. sureBtn: true,
  11. quiteBtn: false,
  12. gobackBtn: false,
  13. width: "400",
  14. title: "标题",
  15. sureText: "确定",
  16. cancalText: '取消',
  17. gobackText: '我知道了',
  18. message: '<p class="tip">内容</p>',
  19. time: 1500,
  20. isFather: true,
  21. fatherWrapper: $("#mainBox", parent.document),
  22. type: 'modal', //tip,loading
  23. callback: null
  24. };
  25. var ops = $.extend(dft, options || {});
  26. var popDom = $('.alertModal:visible');
  27. if(ops.isFather){
  28. ops.fatherWrapper.find('.alertModal:visible');
  29. }
  30. if(popDom.length){ //如果该弹窗已存在,则不再显示多个
  31. return;
  32. }
  33. var html = `
  34. <div class="alertModal">
  35. <div class="modalBg"></div>
  36. <div class="modalMain" style="width:${ops.width}px;margin-left:-${ops.width/2}px">
  37. <p class="titlemodal">${ops.title} <img src="${close}" alt=""></p>
  38. <div class="content ${ops.gobackBtn?'contentleft':''}">
  39. <img style='display:${ops.gobackBtn?'inlineBlock':'none'} ' class='warnimg' src="${warn}" />
  40. ${ops.message}
  41. </div>
  42. <div class="btns clearfix">
  43. <span class="quite" style="display:${ops.quiteBtn?'inlineBlock':'none'}">${ops.cancalText}</span>
  44. <span class="sure sureChange" style="display:${ops.sureBtn?'inlineBlock':'none'}">${ops.sureText}</span>
  45. <span class="gobackbtn" style="display:${ops.gobackBtn?'inlineBlock':'none'}">${ops.gobackText}</span>
  46. </div>
  47. </div>
  48. </div>
  49. `
  50. var radioExp = `<div class='colSetBox'>
  51. <div class='mask'></div>
  52. <div class='cloInfobox cloInfoPort'>
  53. <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>导出提示</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
  54. <div class='cloInfo closePort'>
  55. <p class="selectDateTip">请选择一种导出的报表样式:</p>
  56. <p class="selectDate"><input checked="true" type="radio" name="date" id="date1" data-select="1"><label for="date1">含缺陷明细项,最多只能导出7天</label></p>
  57. <p class="selectDate"><input type="radio" name="date" id="date2" data-select="2"><label for="date2">不含缺陷明细项,最多只能导出90天</label></p>
  58. </div>
  59. <div class='btnBox'>
  60. <span class='cancalColSet canclePort'>取消</span>
  61. <span class='saveColSet savePort'>确定</span>
  62. </div>
  63. </div>
  64. </div>`
  65. // var tip = `
  66. // <div class="modaltip">${ops.message}</div>
  67. // `
  68. var tip = `
  69. ${ops.win===true?`
  70. <div class="modaltipSuc">
  71. <img src="${suc}" />
  72. ${ops.message}
  73. </div>`:ops.win=='default'?`
  74. <div class="modaltipSuc">
  75. <img src="${def}" />
  76. ${ops.message}
  77. </div>`:`
  78. <div class="modaltip">
  79. ${ops.message}
  80. </div>`}
  81. `
  82. var loading = `
  83. <div class="loading"><img src="${loadingImg}" alt=""></div>
  84. `
  85. var box = $("<div/>", {
  86. "class": "divModal",
  87. "html": ops.type == 'tip' ? tip : ops.type == 'loading' ? loading : ops.type == 'radio' ? radioExp : html
  88. }).css({
  89. left: $(".modaltip").width() / 2 + 'px',
  90. top: $(".modaltip").height() / 2 + 'px'
  91. })
  92. if (ops.isFather) {
  93. //console.log('bbbbbbb')
  94. ops.fatherWrapper.append(box)
  95. } else {
  96. console.log()
  97. $("body").append(box)
  98. }
  99. if (ops.type == 'tip') {
  100. setTimeout(function () {
  101. box.remove();
  102. }, ops.time);
  103. }
  104. if (ops.callback && typeof ops.callback === 'function') {
  105. $(parent.document||document).on('click', ".alertModal .titlemodal img,.alertModal .quite,.alertModal .gobackbtn", function () {
  106. ops.callback();
  107. })
  108. } else {
  109. $(parent.document||document).on('click', ".alertModal .titlemodal img,.alertModal .quite,.alertModal .gobackbtn", function () {
  110. box.remove();
  111. })
  112. }
  113. }
  114. })(jQuery);