Commit 0bb066e61681340418e1a578723c696f8f45f4df

Authored by ly525
1 parent 8068fc05

refactor(preview): Unified preview module; !#zh: 统一的预览模块

front-end/h5/src/components/core/editor/canvas/preview.js
@@ -3,14 +3,15 @@ import NodeWrapper from '@/components/preview/node-wrapper.js' @@ -3,14 +3,15 @@ import NodeWrapper from '@/components/preview/node-wrapper.js'
3 * TODO extract page preview card used for page list 3 * TODO extract page preview card used for page list
4 */ 4 */
5 export default { 5 export default {
6 - props: ['elements'], 6 + props: ['elements', 'height'],
7 components: { 7 components: {
8 NodeWrapper 8 NodeWrapper
9 }, 9 },
10 methods: { 10 methods: {
11 renderPreview (h, elements) { 11 renderPreview (h, elements) {
  12 + const pageWrapperStyle = { height: this.height || '100%', position: 'relative' }
12 return ( 13 return (
13 - <div style={{ height: '100%', position: 'relative' }}> 14 + <div style={pageWrapperStyle}>
14 { 15 {
15 elements.map((element, index) => { 16 elements.map((element, index) => {
16 return <node-wrapper element={element}> 17 return <node-wrapper element={element}>
front-end/h5/src/engine-entry.js
@@ -21,6 +21,7 @@ import &#39;ant-design-vue/lib/message/style/css&#39; // 加载 CSS @@ -21,6 +21,7 @@ import &#39;ant-design-vue/lib/message/style/css&#39; // 加载 CSS
21 import { pluginsList } from './mixins/load-plugins.js' 21 import { pluginsList } from './mixins/load-plugins.js'
22 import { PAGE_MODE } from './constants/work.js' 22 import { PAGE_MODE } from './constants/work.js'
23 import Element from './components/core/models/element' 23 import Element from './components/core/models/element'
  24 +import RenderPreview from '@/components/core/editor/canvas/preview'
24 import NodeWrapper from '@/components/preview/node-wrapper.js' 25 import NodeWrapper from '@/components/preview/node-wrapper.js'
25 26
26 Vue.config.productionTip = true 27 Vue.config.productionTip = true
@@ -61,22 +62,10 @@ const Engine = { @@ -61,22 +62,10 @@ const Engine = {
61 ) 62 )
62 }, 63 },
63 renderPreview (pageElements = []) { 64 renderPreview (pageElements = []) {
64 - const pageWrapperStyle = this.isLongPage ? {  
65 - height: window.__work.height + 'px'  
66 - } : {}  
67 - 65 + const height = this.isLongPage ? window.__work.height + 'px' : '100%'
68 const elements = pageElements.map(element => new Element(element)) 66 const elements = pageElements.map(element => new Element(element))
69 - return (  
70 - <div style={pageWrapperStyle}>  
71 - {  
72 - elements.map((element, index) => {  
73 - return <node-wrapper element={element}>  
74 - {this.$createElement(element.name, element.getPreviewData({ position: 'static' }))}  
75 - </node-wrapper>  
76 - })  
77 - }  
78 - </div>  
79 - ) 67 + // src/components/core/editor/canvas/preview
  68 + return <RenderPreview elements={elements} height={height} />
80 }, 69 },
81 getContainerStyle (work) { 70 getContainerStyle (work) {
82 const containerStyle = { 71 const containerStyle = {