From 7b195359dea54b8440e4c9ca8ad66ed78d1e10b4 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 30 五月 2022 10:33:02 +0800 Subject: [PATCH] 2022-05-30 --- src/menu/components/card/cardcellcomponent/dragaction/card.jsx | 2 src/menu/components/card/cardcellcomponent/formconfig.jsx | 27 +++++++++++++ src/tabviews/custom/components/card/cardcellList/index.jsx | 10 ++++ src/menu/components/card/table-card/index.jsx | 2 src/menu/components/card/prop-card/index.jsx | 2 src/menu/components/share/actioncomponent/formconfig.jsx | 1 src/components/video/index.jsx | 9 ++-- src/menu/components/card/cardcellcomponent/elementform/index.jsx | 54 ++++++++++++++++++++------- src/menu/components/card/data-card/index.jsx | 2 9 files changed, 86 insertions(+), 23 deletions(-) diff --git a/src/components/video/index.jsx b/src/components/video/index.jsx index d83636e..960bbbf 100644 --- a/src/components/video/index.jsx +++ b/src/components/video/index.jsx @@ -15,8 +15,9 @@ class Video extends Component { static propTpyes = { - card: PropTypes.object, // 鏉$爜璁剧疆 - value: PropTypes.any, // 鏉$爜鍊� + poster: PropTypes.string, + card: PropTypes.object, + value: PropTypes.any, } shouldComponentUpdate (nextProps, nextState) { @@ -24,11 +25,11 @@ } render() { - const { value, card } = this.props + const { value, card, poster } = this.props return ( <div style={{overflow: 'hidden'}}> - <Player startTime={card.startTime || 0} poster="" currentTime={10} autoPlay={card.autoPlay === 'true'} aspectRatio={card.aspectRatio || '16:9'} loop={card.loop === 'true'}> + <Player startTime={card.startTime || 0} poster={poster || ''} currentTime={10} autoPlay={card.autoPlay === 'true'} aspectRatio={card.aspectRatio || '16:9'} loop={card.loop === 'true'}> <source src={value} /> <BigPlayButton position="center" /> <ControlBar> diff --git a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx index 480b17c..acf2043 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx +++ b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx @@ -142,7 +142,7 @@ } else if (card.eleType === 'video') { return ( <div> - <Video card={card} value={card.url || 'http://qingqiumarket.cn/mkwms/Content/images/upload/20210104/trailer.mp4'}/> + <Video card={card} poster={card.posterUrl || ''} value={card.url || 'http://qingqiumarket.cn/mkwms/Content/images/upload/20210104/trailer.mp4'}/> </div> ) } else if (card.eleType === 'currentDate') { diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index cab73fe..be98901 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -18,7 +18,7 @@ text: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'link', 'anchors', 'noValue', 'bgImage', 'fixStyle'], number: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'noValue', 'fixStyle'], picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'maxWidth', 'link', 'noValue'], - video: ['eleType', 'datatype', 'width', 'aspectRatio', 'autoPlay', 'loop', 'startTime', 'noValue'], + video: ['eleType', 'datatype', 'width', 'aspectRatio', 'autoPlay', 'loop', 'startTime', 'noValue', 'posterType'], icon: ['eleType', 'icon', 'datatype', 'width'], slider: ['eleType', 'datatype', 'width', 'color', 'maxValue', 'showInfo', 'showType', 'strokeWidth', 'strokeLinecap', 'trailColor'], splitline: ['eleType', 'color', 'width', 'borderWidth'], @@ -49,7 +49,7 @@ UNSAFE_componentWillMount () { const { card, config } = this.props - let _options = this.getOptions(card.eleType, card.datatype, card.link, (card.showType || 'line'), card.showInfo, card.fixStyle || '') + let _options = this.getOptions(card.eleType, card.datatype, card.link, (card.showType || 'line'), card.showInfo, card.fixStyle || '', card.posterType || '') this.setState({ link: card.link, @@ -58,10 +58,11 @@ showType: card.showType || 'line', showInfo: card.showInfo || 'false', fixStyle: card.fixStyle || '', + posterType: card.posterType || '', formlist: this.props.formlist.map(item => { item.hidden = !_options.includes(item.key) - if (item.key === 'field' || item.key === 'linkurl' || item.key === 'bgImage') { + if (item.key === 'field' || item.key === 'linkurl' || item.key === 'bgImage' || item.key === 'posterField') { item.options = [] config.columns.forEach(col => { let label = col.label @@ -104,7 +105,7 @@ }) } - getOptions = (eleType, datatype, link, showType, showInfo, fixStyle) => { + getOptions = (eleType, datatype, link, showType, showInfo, fixStyle, posterType) => { let _options = fromJS(cardTypeOptions[eleType]).toJS() // 閫夐」鍒楄〃 if (['text', 'number', 'picture', 'slider', 'barcode', 'qrcode', 'video'].includes(eleType)) { @@ -117,6 +118,13 @@ _options.push('url') } else { _options.push('value') + } + if (eleType === 'video' && posterType) { + if (posterType === 'dynamic') { + _options.push('posterField') + } else { + _options.push('posterUrl') + } } if (['text', 'picture'].includes(eleType) && link) { @@ -155,10 +163,10 @@ */ selectChange = (key, value, option) => { const { card, config } = this.props - const { datatype, eleType, showType, showInfo, fixStyle } = this.state + const { datatype, eleType, showType, showInfo, fixStyle, posterType } = this.state if (key === 'eleType') { - let _options = this.getOptions(value, datatype, '', showType, showInfo, fixStyle) + let _options = this.getOptions(value, datatype, '', showType, showInfo, fixStyle, posterType) let _formlist = this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -204,6 +212,8 @@ item.required = value !== 'qrcode' } else if (item.key === 'showInfo') { item.initVal = showInfo + } else if (item.key === 'posterType') { + item.initVal = posterType } else if (item.key === 'fixStyle') { item.initVal = fixStyle } @@ -235,7 +245,7 @@ this.props.form.setFieldsValue({value: option.props.title}) } } else if (key === 'link') { - let _options = this.getOptions(eleType, datatype, value, showType, showInfo, fixStyle) + let _options = this.getOptions(eleType, datatype, value, showType, showInfo, fixStyle, posterType) this.setState({ link: value, formlist: this.state.formlist.map(item => { @@ -250,11 +260,11 @@ } onChange = (e, key) => { - const { eleType, datatype, link, showType, showInfo, fixStyle } = this.state + const { eleType, datatype, link, showType, showInfo, fixStyle, posterType } = this.state let value = e.target.value if (key === 'datatype') { - let _options = this.getOptions(eleType, value, link, showType, showInfo, fixStyle) + let _options = this.getOptions(eleType, value, link, showType, showInfo, fixStyle, posterType) this.setState({ datatype: value, @@ -265,7 +275,7 @@ }) }) } else if (key === 'link') { - let _options = this.getOptions(eleType, datatype, value, showType, showInfo, fixStyle) + let _options = this.getOptions(eleType, datatype, value, showType, showInfo, fixStyle, posterType) this.setState({ link: value, formlist: this.state.formlist.map(item => { @@ -277,7 +287,7 @@ }) }) } else if (key === 'showInfo') { - let _options = this.getOptions(eleType, datatype, link, showType, value, fixStyle) + let _options = this.getOptions(eleType, datatype, link, showType, value, fixStyle, posterType) this.setState({ showInfo: value, formlist: this.state.formlist.map(item => { @@ -289,7 +299,7 @@ this.setState({ showType: value }, () => { - let _options = this.getOptions(eleType, datatype, link, value, showInfo, fixStyle) + let _options = this.getOptions(eleType, datatype, link, value, showInfo, fixStyle, posterType) this.setState({ formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -301,7 +311,19 @@ this.setState({ fixStyle: value }, () => { - let _options = this.getOptions(eleType, datatype, link, showType, showInfo, value) + let _options = this.getOptions(eleType, datatype, link, showType, showInfo, value, posterType) + this.setState({ + formlist: this.state.formlist.map(item => { + item.hidden = !_options.includes(item.key) + return item + }) + }) + }) + } else if (key === 'posterType') { + this.setState({ + posterType: value + }, () => { + let _options = this.getOptions(eleType, datatype, link, showType, showInfo, fixStyle, value) this.setState({ formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -492,6 +514,10 @@ </Col> ) } else if (item.type === 'file') { + let type = this.state.eleType + if (item.key === 'posterUrl') { + type = 'picture' + } fields.push( <Col span={12} key={index}> <Form.Item label={item.label}> @@ -504,7 +530,7 @@ } ] })( - <SourceComponent type={this.state.eleType} /> + <SourceComponent type={type} /> )} </Form.Item> </Col> diff --git a/src/menu/components/card/cardcellcomponent/formconfig.jsx b/src/menu/components/card/cardcellcomponent/formconfig.jsx index 675e05e..656a1ab 100644 --- a/src/menu/components/card/cardcellcomponent/formconfig.jsx +++ b/src/menu/components/card/cardcellcomponent/formconfig.jsx @@ -133,6 +133,33 @@ required: false }, { + type: 'radio', + key: 'posterType', + label: '棰勮鍥�', + initVal: card.posterType || '', + required: false, + options: [ + { value: '', text: '鏃�' }, + { value: 'dynamic', text: '鍔ㄦ��' }, + { value: 'static', text: '闈欐��' } + ] + }, + { + type: 'file', + key: 'posterUrl', + label: '棰勮鍦板潃', + initVal: card.posterUrl || '', + maxfile: 1, + required: true + }, + { + type: 'select', + key: 'posterField', + label: '棰勮鍦板潃', + initVal: card.posterField || '', + required: true + }, + { type: 'select', key: 'format', label: '鏍煎紡鍖�', diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx index a3ee8d4..a57d028 100644 --- a/src/menu/components/card/data-card/index.jsx +++ b/src/menu/components/card/data-card/index.jsx @@ -607,7 +607,7 @@ res.setting.width = res.setting.width || 6 let copyBtns = [] - let mobtypes = ['pop', 'prompt', 'exec', 'innerpage'] + let mobtypes = ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'] let elements = [] res.elements && res.elements.forEach(cell => { diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx index 9901bd8..f64170d 100644 --- a/src/menu/components/card/prop-card/index.jsx +++ b/src/menu/components/card/prop-card/index.jsx @@ -506,7 +506,7 @@ res.setting.width = res.setting.width || 6 let copyBtns = [] - let mobtypes = ['pop', 'prompt', 'exec', 'innerpage'] + let mobtypes = ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'] let elements = [] res.elements && res.elements.forEach(cell => { diff --git a/src/menu/components/card/table-card/index.jsx b/src/menu/components/card/table-card/index.jsx index d08009c..9fb3c24 100644 --- a/src/menu/components/card/table-card/index.jsx +++ b/src/menu/components/card/table-card/index.jsx @@ -453,7 +453,7 @@ res.setting.width = res.setting.width || 6 let copyBtns = [] - let mobtypes = ['pop', 'prompt', 'exec', 'innerpage'] + let mobtypes = ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'] let elements = [] res.elements && res.elements.forEach(cell => { diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx index ef17d57..e41738f 100644 --- a/src/menu/components/share/actioncomponent/formconfig.jsx +++ b/src/menu/components/share/actioncomponent/formconfig.jsx @@ -112,6 +112,7 @@ { value: 'mkUnBinding', text: '鐢ㄦ埛瑙g粦' }, { value: 'mkUnsubscribe', text: '娉ㄩ攢璐︽埛' }, { value: 'reAuth', text: '鍒囨崲绯荤粺锛堟竻绌虹紦瀛�-灏忕▼搴忥級' }, + { value: 'copyurl', text: '澶嶅埗閾炬帴鍦板潃' }, { value: 'goBack', text: '杩斿洖' }, ] pageTemps = [ diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index 560d562..dd37a29 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -600,10 +600,18 @@ return null } + let poster = '' + + if (card.posterType === 'dynamic') { + poster = data[card.posterField] || '' + } else { + poster = card.posterUrl || '' + } + return ( <Col key={card.uuid} span={card.width}> <div style={card.style}> - <Video card={card} value={url}/> + <Video card={card} poster={poster} value={url}/> </div> </Col> ) -- Gitblit v1.8.0