Commit 0bb066e61681340418e1a578723c696f8f45f4df
1 parent
8068fc05
refactor(preview): Unified preview module; !#zh: 统一的预览模块
Showing
2 changed files
with
7 additions
and
17 deletions
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 'ant-design-vue/lib/message/style/css' // 加载 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 = { | ... | ... |