lubanPagePreview.html 3.15 KB
<!doctype html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title th:text="${work.title}">标题</title>

    <!-- jQuery -->
    <script src="/works/asserts/js/jquery/v1.11.1/jquery.min.js"></script>
    <!-- d3 -->
    <script src="/works/asserts/js/d3/v4.9.1/d3.min.js"></script>
    <!-- vue -->
    <script src="/works/asserts/js/vue/v2.6.12/vue.min.js"></script>
    <!-- vuex -->
    <script src="/works/asserts/js/vuex/v3.6.2/vuex.min.js"></script>
    <!-- animate css -->
    <link rel="stylesheet" href="/works/asserts/css/animate/v4.1.1/animate.min.css">
    <!-- echarts -->
    <script src="/works/asserts/js/echarts/v5.0.2/echarts.min.js"></script>
    <!-- v-charts -->
    <script src="/works/asserts/js/v-charts/v1.19.0/index.min.js"></script>
    <!-- v-charts css -->
    <link rel="stylesheet" href="/works/asserts/css/v-charts/v1.19.0/v-charts.min.css">
    <!-- 导入鲁班引擎 -->
    <script src="/works/asserts/js/luban-engine/v1.14.1/engine.umd.min.js"></script>

    <!-- 自定义的样式 -->
    <style>
        * {
            outline: none;
        }

        html,body {
            height: 100%;
        }

        .swiper-container {
            height: 100%;
        }
        .swiper-container .swiper-wrapper {
            height: 100%;
        }
        .swiper-container .swiper-wrapper .swiper-slide {
            height: 100%;
        }

    </style>

</head>
<body>
<div id="app" style="width: 100%; height: 100%; border: 0px solid black;">
    <engine />
</div>

<!-- 处理后台work对象 -->
<script type="text/javascript" th:inline="javascript">
    (function() {
        var work = [[${work}]];
        // 长页面模式,暂时不用 h5_swipper模式
        work.pageMode = 'h5_long_page';
        // 按比例修正所有组件的 top left width height
        var $jQuery = jQuery.noConflict();
        var page_width = work.width;
        var page_height = work.height;
        var current_width = $jQuery('#app').width();
        var current_height = $jQuery('#app').height();

        var elements = work.pages[0].elements;
        var top;
        var left;
        var width;
        var height;
        $jQuery.each(elements, function(index, element) {
            top = element.commonStyle.top
            left = element.commonStyle.left
            width = element.commonStyle.width
            height = element.commonStyle.height

            // 按比例缩放
            element.commonStyle.top = (top * current_height) / page_height;
            element.commonStyle.left = (left * current_width) / page_width;
            element.commonStyle.width = (width * current_width) / page_width;
            element.commonStyle.height = (height * current_height) / page_height;
        });

        // console.log(work);
        window.__work = work;
    }());
</script>

<script>
    // Vue.component('engine', window.Engine)
    new Vue({
        el: '#app',
        data: {},
    });
</script>

</body>
</html>