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,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 'ant-design-vue/lib/message/style/css' // 加载 CSS | @@ -21,6 +21,7 @@ import 'ant-design-vue/lib/message/style/css' // 加载 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 = { |