Commit 13cf3423f2de3d911420739e934cbbc5f49c1122

Authored by ly525
1 parent 9eb1bab3

fix #85

front-end/h5/src/components/core/editor/edit-panel/props.js
... ... @@ -58,6 +58,7 @@ export default {
58 58 }
59 59 return (
60 60 <a-form-item label={item.label} labelCol={{ span: 8 }} wrapperCol={{ span: 14, offset: 2 }}>
  61 + { item.extra && <div slot="extra">{typeof item.extra === 'function' ? item.extra(h) : item.extra}</div>}
61 62 { h(item.type, data) }
62 63 </a-form-item>
63 64 )
... ...
front-end/h5/src/components/core/models/element.js
1 1 import { parsePx } from '../../../utils/element.js'
2 2  
3 3 // #! 编辑状态,不可以点击的按钮,因为点击按钮会触发一些默认行为,比如表单提交等
4   -const disabledPluginsForEditMode = ['lbp-form-input', 'lbp-form-button']
  4 +const disabledPluginsForEditMode = ['lbp-form-input', 'lbp-form-button', 'lbp-video']
5 5 const cloneObj = (value) => JSON.parse(JSON.stringify(value))
6 6  
7 7 const defaultStyle = {
... ...
front-end/h5/src/components/plugins/lbp-video.js
  1 +import playIcon from './play.svg'
  2 +import './styles/video.scss'
  3 +// 这里有个动画演示,可以用来学习 CSS:《CSS制作播放、暂停按钮》https://codepen.io/chriscoyier/full/lotjh
  4 +
1 5 export default {
2 6 name: 'lbp-video',
3 7 props: {
... ... @@ -12,17 +16,29 @@ export default {
12 16 },
13 17 watch: {
14 18 src () {
15   - this.$el.innerHTML = this.src
  19 + this.appendIframe()
16 20 }
17 21 },
18 22 mounted () {
19   - this.$el.innerHTML = this.src
  23 + this.appendIframe()
  24 + },
  25 + methods: {
  26 + appendIframe () {
  27 + if (this.src) {
  28 + this.$el.innerHTML = this.src
  29 + }
  30 + }
20 31 },
21   -
22 32 render (h) {
23   - const style = this.disabled ? { 'pointer-events': 'none' } : {}
  33 + const style = this.disabled ? { 'pointer-events': 'none' } : { }
24 34 return (
25   - <div style={style}></div>
  35 + <div class="lbc-video" style={style}>
  36 + {
  37 + this.disabled
  38 + ? <video playsinline="true" webkit-playsinline="" width="100%" height="100%" poster={playIcon}><source type="video/mp4" /></video>
  39 + : <div></div>
  40 + }
  41 + </div>
26 42 )
27 43 },
28 44 editorConfig: {
... ... @@ -33,6 +49,9 @@ export default {
33 49 prop: {
34 50 type: 'textarea'
35 51 },
  52 + extra: (h) => {
  53 + return <a href='https://github.com/ly525/luban-h5/issues/85' target='_blank'>教程(Tutorial)</a>
  54 + },
36 55 defaultPropValue: ''
37 56 }
38 57 },
... ...
front-end/h5/src/components/plugins/play.svg 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg width="320px" height="180px" viewBox="0 0 320 180" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  3 + <!-- Generator: Sketch 51.3 (57544) - http://www.bohemiancoding.com/sketch -->
  4 + <title>Rectangle 3</title>
  5 + <desc>Created with Sketch.</desc>
  6 + <defs></defs>
  7 + <g id="play" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
  8 + <g id="Group-29" fill-rule="nonzero">
  9 + <rect id="Rectangle-3" fill="#D8D8D8" opacity="0" x="0" y="0" width="320" height="180"></rect>
  10 + <g id="Group-2" transform="translate(124.000000, 54.000000)">
  11 + <circle id="Combined-Shape" fill="#FFFFFF" opacity="0.400000006" cx="36" cy="36" r="36"></circle>
  12 + <path d="M52.5014571,38.4687039 L29.5125474,53.0910406 C28.4252016,53.7826583 26.9830667,53.4618573 26.291449,52.3745114 C26.0533764,52.000219 25.9269295,51.5658183 25.9269295,51.1222268 L25.9269295,21.8775534 C25.9269295,20.588889 26.9715984,19.5442201 28.2602628,19.5442201 C28.7038543,19.5442201 29.138255,19.6706671 29.5125474,19.9087397 L52.5014571,34.5310764 C53.5888029,35.2226941 53.909604,36.6648289 53.2179863,37.7521747 C53.0345158,38.0406229 52.7899052,38.2852335 52.5014571,38.4687039 Z" id="Triangle-2" fill="#000000" opacity="0.5"></path>
  13 + </g>
  14 + </g>
  15 + </g>
  16 +</svg>
0 17 \ No newline at end of file
... ...
front-end/h5/src/components/plugins/styles/video.scss 0 → 100644
  1 +.lbc-video {
  2 + iframe {
  3 + width: 100%;
  4 + height: 100%;
  5 + }
  6 +}
0 7 \ No newline at end of file
... ...