src/menu/components/card/cardcellcomponent/elementform/index.jsx
@@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader } from 'antd' import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader, Popover } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' import { formRule } from '@/utils/option.js' @@ -119,6 +119,20 @@ } else if (item.key === 'value' && card.eleType === 'slider') { item.type = 'number' item.label = '值' } else if (item.key === 'formula') { item.fields = [] config.columns.forEach(col => { item.fields.push(col.field) }) if (config.subColumns) { config.subColumns.forEach(col => { item.fields.push(col.field) }) } item.fields = item.fields.join(', ') } else if (item.key === 'value' && card.eleType === 'text') { item.type = 'textarea' item.label = '内容' @@ -429,6 +443,31 @@ </Col> ) } else if (item.type === 'textarea') { if (item.key === 'formula') { fields.push( <Col span={24} className="textarea" key={index}> <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.readonly ? false : !!item.required, message: '请输入' + item.label + '!' } ] })(<TextArea autoSize={{minRows: 2}} disabled={item.readonly} placeholder={item.placeholder || ''} />)} </Form.Item> <Popover overlayClassName="formula-fields" placement="topLeft" title="" content={<div>{item.fields}</div>} trigger="click"> <span className="formula-icon">字段集</span> </Popover> </Col> ) } else { fields.push( <Col span={24} className="textarea" key={index}> <Form.Item label={item.tooltip ? @@ -449,6 +488,7 @@ </Form.Item> </Col> ) } } else if (item.type === 'number') { fields.push( <Col span={12} key={index}> src/menu/components/card/cardcellcomponent/elementform/index.scss
@@ -6,12 +6,22 @@ height: 65px; } .ant-col.textarea { position: relative; min-height: 80px; .ant-form-item-label { width: 14.2%; } .ant-form-item-control-wrapper { width: 85.8%; } .formula-icon { position: absolute; bottom: 5px; right: 15px; cursor: pointer; font-size: 12px; color: #1890ff; } } } @@ -27,3 +37,13 @@ font-size: 13px; } } .formula-fields { z-index: 1200!important; .ant-popover-inner-content { div { max-width: 750px; word-break: break-all; } } } src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx
@@ -108,8 +108,18 @@ } updateDataType = (e) => { this.setState({dataType: e.target.value}) this.props.updateDataType(e.target.value) if (e.target.value === 'custom') { setTimeout(() => { this.setState({ dataType: e.target.value, defaultSql: this.props.setting.defaultSql || 'true' }) }, 10) } else { this.setState({dataType: e.target.value}) } } render() { src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
@@ -587,6 +587,18 @@ } else if (activeKey === 'setting') { this.settingForm.handleConfirm().then(res => { let _verify = {...verify, ...res} if (res.dataType !== 'custom') { delete _verify.tableName delete _verify.dataresource delete _verify.queryType delete _verify.primaryKey delete _verify.defaultSql delete _verify.order _verify.scripts = [] } this.setState({ verify: _verify }, () => { @@ -1037,7 +1049,23 @@ } updateDataType = (val) => { this.setState({verify: {...this.state.verify, dataType: val}}) const { config } = this.props let verify = {...this.state.verify, dataType: val} if (val === 'custom' && config.setting) { verify.tableName = verify.tableName || config.setting.tableName || '' verify.dataresource = verify.dataresource || config.setting.dataresource || '' verify.queryType = verify.queryType || config.setting.queryType || '' verify.primaryKey = verify.primaryKey || config.setting.primaryKey || '' verify.defaultSql = verify.defaultSql || config.setting.execute || '' verify.order = verify.order || config.setting.order || '' if (verify.scripts.length === 0 && config.scripts && config.scripts.length > 0) { verify.scripts = fromJS(config.scripts).toJS() } } this.setState({verify: verify}) } render() {