From a898abd9e42a4b428d6daf1d34fa400ed18e8689 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 23 十一月 2022 17:35:34 +0800 Subject: [PATCH] 2022-11-23 --- src/menu/components/card/cardcellcomponent/elementform/index.jsx | 106 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 70 insertions(+), 36 deletions(-) diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index cab73fe..b720973 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -15,11 +15,11 @@ const cardTypeOptions = { sequence: ['eleType', 'width'], - 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'], - icon: ['eleType', 'icon', 'datatype', 'width'], + text: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'link', 'anchors', 'noValue', 'bgImage', 'fixStyle', 'copyable'], + number: ['eleType', 'datatype', 'width', 'height', 'prefix', 'postfix', 'noValue', 'fixStyle'], + picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'backgroundSize', 'maxWidth', 'link', 'noValue'], + video: ['eleType', 'datatype', 'width', 'aspectRatio', 'autoPlay', 'loop', 'startTime', 'noValue', 'posterType'], + icon: ['eleType', 'datatype', 'width', 'tooltip'], slider: ['eleType', 'datatype', 'width', 'color', 'maxValue', 'showInfo', 'showType', 'strokeWidth', 'strokeLinecap', 'trailColor'], splitline: ['eleType', 'color', 'width', 'borderWidth'], barcode: ['eleType', 'datatype', 'width', 'barHeight', 'displayValue', 'interval', 'noValue'], @@ -30,7 +30,6 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� config: PropTypes.object, // 缁勪欢淇℃伅 formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 card: PropTypes.any, // 鎸夐挳淇℃伅 @@ -49,7 +48,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,14 +57,15 @@ 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 - if (label !== col.field) { + if (label.toLowerCase() !== col.field.toLowerCase()) { label = col.field + ' ' + col.label } if (/^(Int|Decimal)/ig.test(col.datatype) && (card.eleType === 'number' || card.eleType === 'slider')) { @@ -104,19 +104,26 @@ }) } - 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)) { if (datatype === 'dynamic') { _options.push('field') if (eleType === 'number') { - _options.push('decimal') + _options.push('decimal', 'format') } } else if (eleType === 'picture' || eleType === 'video') { _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) { @@ -137,7 +144,7 @@ if (datatype === 'dynamic') { _options.push('field') } else { - _options.push('tooltip') + _options.push('icon') } } if (_options.includes('fixStyle') && fixStyle === 'alone') { @@ -155,10 +162,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) @@ -167,7 +174,7 @@ item.options = [] config.columns.forEach(col => { let label = col.label - if (label !== col.field) { + if (label.toLowerCase() !== col.field.toLowerCase()) { label = col.field + ' ' + col.label } @@ -204,8 +211,14 @@ 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 + } else if (item.key === 'color') { + if (value === 'splitline') { + item.initVal = '#EBE9E9' + } } return item @@ -217,10 +230,10 @@ showType: card.showType || 'line', formlist: _formlist }, () => { - if (value === 'slider') { + if (value === 'splitline') { + this.props.form.setFieldsValue({width: 24, color: '#EBE9E9'}) + } else if (value === 'slider') { this.props.form.setFieldsValue({width: 24, color: '#1890ff'}) - } else if (value === 'splitline') { - this.props.form.setFieldsValue({width: 24, color: '#e8e8e8'}) } else if (value === 'qrcode') { this.props.form.setFieldsValue({color: '#000000'}) } else if (value === 'text' || value === 'number') { @@ -235,7 +248,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 +263,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 +278,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 +290,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 +302,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 +314,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) @@ -341,7 +366,7 @@ rules: [ { required: item.readonly ? false : !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' + message: '璇疯緭鍏�' + item.label + '!' }, { max: formRule.input.max, @@ -366,7 +391,7 @@ rules: [ { required: item.readonly ? false : !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' + message: '璇疯緭鍏�' + item.label + '!' } ] })(<TextArea autoSize={{minRows: 2}} disabled={item.readonly} placeholder={item.placeholder || ''} />)} @@ -386,7 +411,7 @@ initialValue: item.initVal, rules: [{ required: item.readonly ? false : !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' + message: '璇疯緭鍏�' + item.label + '!' }] })(<InputNumber min={item.min || 0} max={item.max || 10000} precision={item.precision || 0} onPressEnter={this.handleSubmit} />)} </Form.Item> @@ -405,7 +430,7 @@ initialValue: item.initVal || '', rules: [{ required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + message: '璇烽�夋嫨' + item.label + '!' }] })( <Select @@ -438,7 +463,7 @@ initialValue: item.initVal || '', rules: [{ required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + message: '璇烽�夋嫨' + item.label + '!' }] })( <MkEditIcon /> @@ -459,7 +484,7 @@ initialValue: item.initVal, rules: [{ required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + message: '璇烽�夋嫨' + item.label + '!' }] })( <Radio.Group onChange={(e) => {this.onChange(e, item.key)}} disabled={item.readonly}> @@ -482,7 +507,7 @@ rules: [ { required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + message: '璇烽�夋嫨' + item.label + '!' } ] })( @@ -492,19 +517,28 @@ </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}> + <Form.Item label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <QuestionCircleOutlined className="mk-form-tip" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.key, { initialValue: item.initVal, rules: [ { required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + message: '璇烽�夋嫨' + item.label + '!' } ] })( - <SourceComponent type={this.state.eleType} /> + <SourceComponent type={type} /> )} </Form.Item> </Col> @@ -523,7 +557,7 @@ rules: [ { required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + message: '璇烽�夋嫨' + item.label + '!' } ] })( -- Gitblit v1.8.0