details_dialog_shell.html 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <!DOCTYPE html>
  2. <html class="procuremen-details-dialog">
  3. <head>
  4. {include file="common/meta" /}
  5. <title>详情</title>
  6. </head>
  7. <body class="inside-header inside-aside is-dialog procuremen-details-dialog">
  8. {include file="procuremen/details_fragment" /}
  9. <script>
  10. require(['jquery'], function ($) {
  11. function fitProcuremenDetailsLayer() {
  12. try {
  13. var index = parent.Layer.getFrameIndex(window.name);
  14. if (!index) {
  15. return;
  16. }
  17. var $parentWin = parent.$(parent.window);
  18. var $layer = parent.$('#layui-layer' + index);
  19. if (!$layer.length) {
  20. return;
  21. }
  22. var isMax = $layer.hasClass('layui-layer-max');
  23. var viewH = $parentWin.height();
  24. var contentH = Math.ceil($('body').prop('scrollHeight') || 0);
  25. if (contentH < 120) {
  26. return;
  27. }
  28. if (isMax) {
  29. parent.Layer.style(index, {
  30. top: 0,
  31. height: viewH
  32. });
  33. $('html, body').css({
  34. height: viewH + 'px',
  35. overflowY: 'auto',
  36. overflowX: 'hidden'
  37. });
  38. return;
  39. }
  40. var titleH = $layer.find('.layui-layer-title').outerHeight() || 42;
  41. var maxBodyH = Math.max(320, viewH - 24);
  42. var layerH = Math.min(contentH + titleH + 2, maxBodyH);
  43. var top = Math.max(0, Math.floor((viewH - layerH) / 2));
  44. parent.Layer.style(index, {
  45. height: layerH,
  46. top: top
  47. });
  48. $('html, body').css({
  49. height: 'auto',
  50. overflowY: 'visible',
  51. overflowX: 'hidden'
  52. });
  53. } catch (e) {
  54. }
  55. }
  56. function bindLayerResize() {
  57. try {
  58. var index = parent.Layer.getFrameIndex(window.name);
  59. if (!index) {
  60. return;
  61. }
  62. var $layer = parent.$('#layui-layer' + index);
  63. $layer.find('.layui-layer-maxmin').off('click.procuremenDetails').on('click.procuremenDetails', function () {
  64. setTimeout(fitProcuremenDetailsLayer, 80);
  65. });
  66. } catch (e) {
  67. }
  68. }
  69. $(function () {
  70. fitProcuremenDetailsLayer();
  71. bindLayerResize();
  72. setTimeout(fitProcuremenDetailsLayer, 120);
  73. setTimeout(fitProcuremenDetailsLayer, 400);
  74. $(window).off('resize.procuremenDetails').on('resize.procuremenDetails', function () {
  75. setTimeout(fitProcuremenDetailsLayer, 80);
  76. });
  77. });
  78. });
  79. </script>
  80. </body>
  81. </html>