From 1a14ff6035932eadfb6ef7970e3adb24b4e158a6 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 18 十二月 2019 18:56:17 +0800 Subject: [PATCH] 2019-12-18 --- src/templates/modalconfig/settingform/index.jsx | 94 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 85 insertions(+), 9 deletions(-) diff --git a/src/templates/modalconfig/settingform/index.jsx b/src/templates/modalconfig/settingform/index.jsx index 8af9ea6..24cfb22 100644 --- a/src/templates/modalconfig/settingform/index.jsx +++ b/src/templates/modalconfig/settingform/index.jsx @@ -1,12 +1,41 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Radio, InputNumber } from 'antd' +import { Form, Row, Col, Input, Radio, InputNumber, Select } from 'antd' import './index.scss' class SettingForm extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - data: PropTypes.object + dict: PropTypes.object, // 瀛楀吀椤� + config: PropTypes.object // 琛ㄥ崟閰嶇疆淇℃伅 + } + + state = { + fields: null + } + + UNSAFE_componentWillMount () { + const { config } = this.props + let fields = [] + + if (config.groups.length > 0) { + config.groups.forEach(group => { + group.sublist.forEach(item => { + if (item.field && (item.type === 'text' || item.type === 'number')) { + fields.push(item) + } + }) + }) + } else if (config.fields.length > 0) { + config.fields.forEach(f => { + if (f.field && (f.type === 'text' || f.type === 'number')) { + fields.push(f) + } + }) + } + console.log(fields) + this.setState({ + fields: fields + }) } handleConfirm = () => { @@ -23,7 +52,8 @@ } render() { - const { data } = this.props + const { config, dict } = this.props + const { fields } = this.state const { getFieldDecorator } = this.props.form const formItemLayout = { @@ -36,27 +66,73 @@ sm: { span: 16 } } } + return ( <Form {...formItemLayout} className="ant-advanced-search-form modal-setting-form"> <Row gutter={24}> <Col span={12}> <Form.Item label="鏍囬"> {getFieldDecorator('title', { - initialValue: data.title + initialValue: config.setting.title })(<Input placeholder="" autoComplete="off"/>)} </Form.Item> </Col> <Col span={12}> <Form.Item label="瀹藉害"> {getFieldDecorator('width', { - initialValue: data.width - })(<InputNumber min={30} max={90} precision={0} />)} + initialValue: config.setting.width + })(<InputNumber min={10} max={90} precision={0} />)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label="鐒︾偣"> + {getFieldDecorator('focus', { + initialValue: config.setting.focus || '' + })( + <Select + showSearch + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + > + <Select.Option value=""> + {dict['header.form.empty']} + </Select.Option> + {fields.map(option => + <Select.Option id={option.uuid} title={option.label} key={option.uuid} value={option.field}> + {option.label} + </Select.Option> + )} + </Select> + )} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label="瀹屾垚鍚�"> + {getFieldDecorator('finish', { + initialValue: config.setting.finish || 'close' + })( + <Radio.Group> + <Radio value="close">鍏抽棴</Radio> + <Radio value="unclose">涓嶅叧闂�</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label="鐐瑰嚮绌虹櫧澶�"> + {getFieldDecorator('clickouter', { + initialValue: config.setting.clickouter || 'unclose' + })( + <Radio.Group> + <Radio value="close">鍏抽棴</Radio> + <Radio value="unclose">涓嶅叧闂�</Radio> + </Radio.Group> + )} </Form.Item> </Col> <Col span={12}> <Form.Item label="鍒楁暟"> {getFieldDecorator('cols', { - initialValue: data.cols + initialValue: config.setting.cols })( <Radio.Group> <Radio value="1">1鍒�</Radio> @@ -69,7 +145,7 @@ <Col span={12}> <Form.Item label="鎸傝浇瀵硅薄"> {getFieldDecorator('container', { - initialValue: data.container || 'view' + initialValue: config.setting.container || 'view' })( <Radio.Group> <Radio value="view">椤甸潰</Radio> -- Gitblit v1.8.0