From f3167f8371d19d0ea8fe7d0e7af5517ff0b08cd2 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 07 四月 2021 23:25:29 +0800 Subject: [PATCH] 2021-04-07 --- src/menu/components/card/cardcellcomponent/elementform/index.jsx | 147 +++++++++++++++++++++++++++++------------------- 1 files changed, 88 insertions(+), 59 deletions(-) diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index f3507e3..2f0f75c 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -7,6 +7,7 @@ import asyncComponent from '@/utils/asyncComponent' import './index.scss' +const { TextArea } = Input const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent')) @@ -79,7 +80,7 @@ item.required = card.eleType !== 'qrcode' } if (item.key === 'linkurl') { - item.type = card.link === 'dynamic' ? 'select' : 'text' + item.type = card.link === 'dynamic' ? 'select' : 'textarea' } return item @@ -100,7 +101,13 @@ } if (['text', 'picture'].includes(eleType) && link) { - _options.push('linkurl', 'joint') + if (link === 'dynamic' || link === 'static' || link === 'custom') { + _options.push('linkurl', 'joint') + } else if (link === 'page') { + _options.push('copyMenuId', 'joint', 'open') + } else if (link === 'linkpage') { + _options.push('linkmenu', 'joint', 'open') + } } } else if (eleType === 'icon') { if (datatype === 'dynamic') { @@ -121,7 +128,7 @@ */ selectChange = (key, value, option) => { const { config } = this.props - const { datatype } = this.state + const { datatype, eleType } = this.state if (key === 'eleType') { let _options = this.getOptions(value, datatype, '') @@ -185,6 +192,18 @@ if (this.props.form.getFieldValue('value') !== undefined) { this.props.form.setFieldsValue({value: option.props.title}) } + } else if (key === 'link') { + let _options = this.getOptions(eleType, this.state.datatype, value) + this.setState({ + link: value, + formlist: this.state.formlist.map(item => { + item.hidden = !_options.includes(item.key) + if (item.key === 'linkurl') { + item.type = value === 'dynamic' ? 'select' : 'textarea' + } + return item + }) + }) } } @@ -210,7 +229,7 @@ formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) if (item.key === 'linkurl') { - item.type = value === 'dynamic' ? 'select' : 'text' + item.type = value === 'dynamic' ? 'select' : 'textarea' } return item }) @@ -231,15 +250,13 @@ const fields = [] this.state.formlist.forEach((item, index) => { - if (item.hidden) return + if (item.hidden || item.forbid) return if (item.type === 'text') { // 鏂囨湰鎼滅储 - let rules = [] - fields.push( <Col span={12} key={index}> <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" overlayClassName={item.tooltipClass} title={item.tooltip}> + <Tooltip placement="topLeft" title={item.tooltip}> <Icon type="question-circle" /> {item.label} </Tooltip> : item.label @@ -254,39 +271,17 @@ { max: formRule.input.max, message: formRule.input.message - }, - ...rules + } ] })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) - } else if (item.type === 'number') { + } else if (item.type === 'textarea') { // 鏂囨湰鎼滅储 fields.push( - <Col span={12} key={index}> + <Col span={24} className="textarea" key={index}> <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" overlayClassName={item.tooltipClass} title={item.tooltip}> - <Icon type="question-circle" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: item.readonly ? false : !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(<InputNumber min={item.min || 0} max={item.max || 10000} precision={item.precision || 0} onPressEnter={this.handleSubmit} />)} - </Form.Item> - </Col> - ) - } else if (item.type === 'select') { // 涓嬫媺鎼滅储 - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" overlayClassName={item.tooltipClass} title={item.tooltip}> + <Tooltip placement="topLeft" title={item.tooltip}> <Icon type="question-circle" /> {item.label} </Tooltip> : item.label @@ -295,10 +290,52 @@ initialValue: item.initVal || '', rules: [ { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' + required: item.readonly ? false : !!item.required, + message: this.props.dict['form.required.input'] + item.label + '!' + }, + { + max: formRule.input.max, + message: formRule.input.message } ] + })(<TextArea rows={2} disabled={item.readonly} />)} + </Form.Item> + </Col> + ) + } else if (item.type === 'number') { + fields.push( + <Col span={12} key={index}> + <Form.Item label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.key, { + initialValue: item.initVal, + rules: [{ + required: item.readonly ? false : !!item.required, + message: this.props.dict['form.required.input'] + item.label + '!' + }] + })(<InputNumber min={item.min || 0} max={item.max || 10000} precision={item.precision || 0} onPressEnter={this.handleSubmit} />)} + </Form.Item> + </Col> + ) + } else if (item.type === 'select') { // 涓嬫媺鎼滅储 + fields.push( + <Col span={12} key={index}> + <Form.Item label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.key, { + initialValue: item.initVal || '', + rules: [{ + required: !!item.required, + message: this.props.dict['form.required.select'] + item.label + '!' + }] })( <Select showSearch @@ -319,24 +356,25 @@ } else if (item.type === 'radio') { fields.push( <Col span={12} key={index}> - <Form.Item label={item.label}> + <Form.Item label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.key, { initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] + rules: [{ + required: !!item.required, + message: this.props.dict['form.required.select'] + item.label + '!' + }] })( <Radio.Group onChange={(e) => {this.onChange(e, item.key)}} disabled={item.readonly}> - { - item.options.map(option => { - return ( - <Radio key={option.value} value={option.value}>{option.text}</Radio> - ) - }) - } + {item.options.map(option => { + return ( + <Radio key={option.value} value={option.value}>{option.text}</Radio> + ) + })} </Radio.Group> )} </Form.Item> @@ -390,15 +428,6 @@ if (!err) { values.uuid = this.props.card.uuid values.marks = this.props.card.marks || null - - // if (values.eleType === 'picture' && values.datatype === 'static' && !values.url) { - // notification.warning({ - // top: 92, - // message: '灏氭湭娣诲姞鍥剧墖鎴栧浘鐗囦笂浼犲け璐ワ紝璇烽噸鏂版坊鍔狅紒', - // duration: 5 - // }) - // return - // } resolve(values) } else { -- Gitblit v1.8.0