modal.js 5.2 KB

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