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 3 * TODO extract page preview card used for page list
4 4 */
5 5 export default {
6   - props: ['elements'],
  6 + props: ['elements', 'height'],
7 7 components: {
8 8 NodeWrapper
9 9 },
10 10 methods: {
11 11 renderPreview (h, elements) {
  12 + const pageWrapperStyle = { height: this.height || '100%', position: 'relative' }
12 13 return (
13   - <div style={{ height: '100%', position: 'relative' }}>
  14 + <div style={pageWrapperStyle}>
14 15 {
15 16 elements.map((element, index) => {
16 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 21 import { pluginsList } from './mixins/load-plugins.js'
22 22 import { PAGE_MODE } from './constants/work.js'
23 23 import Element from './components/core/models/element'
  24 +import RenderPreview from '@/components/core/editor/canvas/preview'
24 25 import NodeWrapper from '@/components/preview/node-wrapper.js'
25 26  
26 27 Vue.config.productionTip = true
... ... @@ -61,22 +62,10 @@ const Engine = {
61 62 )
62 63 },
63 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 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 70 getContainerStyle (work) {
82 71 const containerStyle = {
... ...