Commit 10fc6e38262c8f9811b7f26ceb45133c28beba84

Authored by ly525
Committed by 小小鲁班
1 parent 3b894fd6

fix(preview): #196; !#zh: 预览模块支持长页面 !#en: support long page

Showing 1 changed file with 36 additions and 28 deletions
front-end/h5/src/engine-entry.js
@@ -30,34 +30,54 @@ const Engine = { @@ -30,34 +30,54 @@ const Engine = {
30 components: { 30 components: {
31 NodeWrapper 31 NodeWrapper
32 }, 32 },
  33 + data() {
  34 + return {
  35 + isLongPage: window.__work.mode === 'h5_long_page',
  36 + }
  37 + },
33 methods: { 38 methods: {
34 - renderPreview (h, _elements) {  
35 - const isLongPage = window.__work.mode === 'h5_long_page'  
36 - const elements = _elements.map(element => new Element(element)) 39 + renderLongPage () {
  40 + const work = window.__work
  41 + return this.renderPreview(work.pages[0].elements)
  42 + },
  43 + renderSwiperPage () {
  44 + const work = window.__work
  45 + return (
  46 + <div class="swiper-container">
  47 + <div class="swiper-wrapper">{
  48 + work.pages.map(page => {
  49 + return (
  50 + <section class="swiper-slide flat">
  51 + {/* this.walk(h, page.elements) */}
  52 + { this.renderPreview(page.elements) }
  53 + </section>
  54 + )
  55 + })
  56 + }</div>
  57 + <div class="swiper-pagination"></div>
  58 + </div>
  59 + )
  60 + },
  61 + renderPreview (pageElements) {
37 let pageWrapperStyle = { 62 let pageWrapperStyle = {
38 height: '100%', 63 height: '100%',
39 position: 'relative' 64 position: 'relative'
40 } 65 }
41 66
42 - if (isLongPage) { 67 + if (this.isLongPage) {
43 pageWrapperStyle = { 68 pageWrapperStyle = {
44 ...pageWrapperStyle, 69 ...pageWrapperStyle,
45 'overflow-y': 'scroll' 70 'overflow-y': 'scroll'
46 } 71 }
47 } 72 }
48 73
  74 + const elements = pageElements.map(element => new Element(element))
49 return ( 75 return (
50 <div style={pageWrapperStyle}> 76 <div style={pageWrapperStyle}>
51 { 77 {
52 elements.map((element, index) => { 78 elements.map((element, index) => {
53 - // const style = element.getStyle({ position: 'absolute', isRem: true })  
54 - // const data = {  
55 - // style,  
56 - // props: element.getProps({ mode: 'preview' })  
57 - // }  
58 - // return h(element.name, data)  
59 return <node-wrapper element={element}> 79 return <node-wrapper element={element}>
60 - {h(element.name, element.getPreviewData({ position: 'static' }))} 80 + {this.$createElement(element.name, element.getPreviewData({ position: 'static' }))}
61 </node-wrapper> 81 </node-wrapper>
62 }) 82 })
63 } 83 }
@@ -67,23 +87,11 @@ const Engine = { @@ -67,23 +87,11 @@ const Engine = {
67 }, 87 },
68 render (h) { 88 render (h) {
69 const work = window.__work 89 const work = window.__work
70 - return (  
71 - <div id="work-container" data-work-id={work.id}>  
72 - <div class="swiper-container">  
73 - <div class="swiper-wrapper">{  
74 - work.pages.map(page => {  
75 - return (  
76 - <section class="swiper-slide flat">  
77 - {/* this.walk(h, page.elements) */}  
78 - { this.renderPreview(h, page.elements) }  
79 - </section>  
80 - )  
81 - })  
82 - }</div>  
83 - <div class="swiper-pagination"></div>  
84 - </div>  
85 - </div>  
86 - ) 90 + return <div id="work-container" data-work-id={work.id}>
  91 + {
  92 + this.isLongPage ? this.renderLongPage() : this.renderSwiperPage()
  93 + }
  94 + </div>
87 } 95 }
88 } 96 }
89 97