| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <!DOCTYPE html>
- <html class="procuremen-details-dialog">
- <head>
- {include file="common/meta" /}
- <title>详情</title>
- </head>
- <body class="inside-header inside-aside is-dialog procuremen-details-dialog">
- {include file="procuremen/details_fragment" /}
- <script>
- require(['jquery'], function ($) {
- function measureDetailsContentHeight() {
- var $wrap = $('.procuremen-details-wrap');
- if (!$wrap.length) {
- return Math.ceil(document.body.scrollHeight || 0);
- }
- var wrapH = Math.ceil($wrap.outerHeight(true) || 0);
- var scrollH = Math.ceil(document.body.scrollHeight || 0);
- return Math.max(wrapH, scrollH);
- }
- function applyDetailsLayerLayout() {
- try {
- var index = parent.Layer.getFrameIndex(window.name);
- if (!index) {
- return;
- }
- var $parentWin = parent.$(parent.window);
- var $layer = parent.$('#layui-layer' + index);
- if (!$layer.length) {
- return;
- }
- var viewH = $parentWin.height();
- var titleH = $layer.find('.layui-layer-title').outerHeight() || 42;
- var btnH = $layer.find('.layui-layer-btn').outerHeight() || 0;
- var contentH = measureDetailsContentHeight();
- if (contentH < 120) {
- return;
- }
- var isMax = $layer.hasClass('layui-layer-max');
- var edge = isMax ? 8 : 24;
- var availableH = Math.max(320, viewH - titleH - btnH - edge);
- var iframeH = Math.min(contentH + 12, availableH);
- var layerH = titleH + btnH + iframeH;
- var top = isMax ? 0 : Math.max(0, Math.floor((viewH - layerH) / 2));
- parent.Layer.style(index, {
- height: layerH,
- top: top
- });
- var $content = $layer.find('.layui-layer-content');
- $content.css({
- height: iframeH + 'px',
- overflow: 'hidden',
- padding: 0,
- margin: 0
- });
- $layer.find('iframe').css({
- height: iframeH + 'px',
- width: '100%',
- display: 'block',
- border: 0
- });
- var needScroll = contentH + 12 > iframeH;
- $('html, body').css({
- height: needScroll ? iframeH + 'px' : 'auto',
- minHeight: '0',
- maxHeight: needScroll ? iframeH + 'px' : 'none',
- overflowX: 'hidden',
- overflowY: needScroll ? 'auto' : 'visible',
- WebkitOverflowScrolling: 'touch',
- background: '#fff'
- });
- } catch (e) {
- }
- }
- function scheduleDetailsLayerLayout() {
- applyDetailsLayerLayout();
- setTimeout(applyDetailsLayerLayout, 80);
- setTimeout(applyDetailsLayerLayout, 220);
- setTimeout(applyDetailsLayerLayout, 480);
- }
- function bindLayerResize() {
- try {
- var index = parent.Layer.getFrameIndex(window.name);
- if (!index) {
- return;
- }
- var $layer = parent.$('#layui-layer' + index);
- $layer.find('.layui-layer-maxmin').off('click.procuremenDetails').on('click.procuremenDetails', function () {
- scheduleDetailsLayerLayout();
- });
- } catch (e) {
- }
- }
- $(function () {
- scheduleDetailsLayerLayout();
- bindLayerResize();
- $(window).off('resize.procuremenDetails').on('resize.procuremenDetails', function () {
- scheduleDetailsLayerLayout();
- });
- if (typeof window.ResizeObserver !== 'undefined') {
- var $wrap = $('.procuremen-details-wrap');
- if ($wrap.length) {
- var ro = new ResizeObserver(function () {
- scheduleDetailsLayerLayout();
- });
- ro.observe($wrap[0]);
- }
- }
- });
- });
- </script>
- </body>
- </html>
|