From 6c44bc79e5edc338b44fdc469220ddf0e3fc4028 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 14 九月 2021 22:51:27 +0800 Subject: [PATCH] 2021-09-14 --- src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx | 532 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 461 insertions(+), 71 deletions(-) diff --git a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx index 705111e..055561e 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx @@ -1,26 +1,72 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Radio, Tooltip, Icon, notification } from 'antd' +import { Form, Row, Col, Input, Radio, Tooltip, Icon, notification, Select, InputNumber } from 'antd' import moment from 'moment' import Api from '@/api' import { formRule } from '@/utils/option.js' import Utils from '@/utils/utils.js' -import CodeMirror from '@/templates/zshare/codemirror' +import asyncComponent from '@/utils/asyncComponent' import './index.scss' + +const CodeMirror = asyncComponent(() => import('@/templates/zshare/codemirror')) +const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor')) +const { TextArea } = Input class SettingForm extends Component { static propTpyes = { + config: PropTypes.object, // 椤甸潰閰嶇疆 dict: PropTypes.object, // 瀛楀吀椤� - menuId: PropTypes.string, // 鑿滃崟Id - permFuncField: PropTypes.any, // 鑿滃崟Id + menu: PropTypes.object, // 鑿滃崟淇℃伅 setting: PropTypes.object, // 鏁版嵁婧愰厤缃� columns: PropTypes.array, // 鍒楄缃� scripts: PropTypes.array, // 鑷畾涔夎剼鏈� + updateStatus: PropTypes.func, // 鐘舵�佹洿鏂� } state = { - interType: this.props.setting.interType || 'inner', + interType: 'system', + procMode: 'script', + requestMode: 'system', + funcTooltip: '', + funcRules: [] + } + + UNSAFE_componentWillMount () { + const { setting } = this.props + + let usefulFields = sessionStorage.getItem('permFuncField') + if (usefulFields) { + try { + usefulFields = JSON.parse(usefulFields) + } catch (e) { + usefulFields = [] + } + } else { + usefulFields = [] + } + + let tooltip = null + let rules = [] + + if (usefulFields.length > 0) { + tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + usefulFields.join(', ') + let str = '^(' + usefulFields.join('|') + ')' + let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') + + rules.push({ + pattern: _patten, + message: formRule.func.innerMessage + }) + } + + this.setState({ + interType: setting.interType || 'system', + procMode: setting.procMode || 'script', + requestMode: setting.requestMode || 'system', + funcTooltip: tooltip, + funcRules: rules + }) } handleConfirm = () => { @@ -30,15 +76,15 @@ this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { // 鏁版嵁婧愬墠绔獙璇� - if (values.interType === 'inner' && !values.innerFunc && values.execute !== 'false' && !values.dataresource) { + if (values.interType === 'system' && values.default !== 'false' && !values.dataresource) { notification.warning({ top: 92, - message: '璇峰~鍐欏唴閮ㄥ嚱鏁版垨鏁版嵁婧愶紒', + message: '璇峰~鍐欐暟鎹簮锛�', duration: 5 }) reject() return - } else if (values.interType === 'inner' && !values.innerFunc && values.execute !== 'false' && values.dataresource) { + } else if (values.interType === 'system' && values.default !== 'false' && values.dataresource) { let _quot = values.dataresource.match(/'{1}/g) let _lparen = values.dataresource.match(/\({1}/g) let _rparen = values.dataresource.match(/\){1}/g) @@ -88,17 +134,17 @@ // 鏁版嵁婧愪繚瀛� if ( - values.interType === 'inner' && !values.innerFunc && values.execute !== 'false' && + values.interType === 'system' && values.default !== 'false' && /[^\s]+\s+[^\s]+/ig.test(values.dataresource) && setting.dataresource !== values.dataresource ) { let param = { func: 's_DataSrc_Save', LText: values.dataresource, - MenuID: this.props.menuId + MenuID: this.props.menu.MenuID } param.LText = Utils.formatOptions(param.LText) - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) Api.getLocalConfig(param) @@ -119,13 +165,34 @@ this.setState({ interType: value }) + } else if (key === 'procMode') { + this.setState({ + procMode: value + }) + } else if (key === 'requestMode') { + this.setState({ + requestMode: value + }) + } else if (key === 'sysInterface' && value === 'true') { + this.props.form.setFieldsValue({ + interface: window.GLOB.mainSystemApi || '' + }) + } + this.props.updateStatus({[key]: value}) + } + + primaryKeyChange = (val) => { + if (val) { + this.props.form.setFieldsValue({ + order: `${val} desc` + }) } } render() { - const { setting, permFuncField } = this.props + const { setting, dict, menu, config, columns } = this.props const { getFieldDecorator } = this.props.form - const { interType } = this.state + const { interType, funcRules, funcTooltip, procMode, requestMode } = this.state const formItemLayout = { labelCol: { @@ -138,93 +205,217 @@ } } - let tooltip = null - let rules = [] - - if (permFuncField && permFuncField.length > 0) { - tooltip = '寮�澶村彲鐢ㄥ瓧绗︼細' + permFuncField.join(', ') - let str = '^(' + permFuncField.join('|') + ')' - let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') - - rules.push({ - pattern: _patten, - message: formRule.func.innerMessage - }) - } - return ( - <div className="model-datasource-setting-form-box"> + <div className="model-table-datasource-setting-form-box"> <Form {...formItemLayout} className="model-setting-form"> <Row gutter={24}> - <Col span={8}> + <Col span={12}> <Form.Item label="琛ㄥ悕"> {getFieldDecorator('tableName', { - initialValue: setting.tableName, + initialValue: setting.tableName || '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + '琛ㄥ悕!' + message: dict['form.required.input'] + '琛ㄥ悕!' }, + { + max: 50, + message: '琛ㄥ悕鏈�闀夸负50涓瓧绗�!' + } ] })(<Input placeholder={''} autoComplete="off" />)} </Form.Item> </Col> - <Col span={8}> - <Form.Item label="鎺ュ彛绫诲瀷"> + <Col span={12}> + <Form.Item label="琛ㄦ牸灞炴��"> + {getFieldDecorator('tableType', { + initialValue: setting.tableType + })( + <Radio.Group> + <Radio value="">涓嶅彲閫�</Radio> + <Radio value="radio">鍗曢��</Radio> + <Radio value="checkbox">澶氶��</Radio> + </Radio.Group> + )} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label={dict['header.form.intertype']}> {getFieldDecorator('interType', { initialValue: interType, rules: [ { required: true, - message: this.props.dict['form.required.select'] + '鎺ュ彛绫诲瀷!' + message: dict['form.required.select'] + dict['header.form.intertype'] + '!' }, ] })( - <Radio.Group onChange={(e) => {this.onRadioChange(e, 'interType')}}> + <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => {this.onRadioChange(e, 'interType')}}> + <Radio value="system">绯荤粺</Radio> <Radio value="inner">鍐呴儴</Radio> <Radio value="outer">澶栭儴</Radio> + <Radio value="custom">鑷畾涔�</Radio> </Radio.Group>)} </Form.Item> </Col> - {interType === 'inner' ? <Col span={8}> - <Form.Item label={tooltip ? - <Tooltip placement="topLeft" title={tooltip}> + {interType === 'outer' ? <Col span={12}> + <Form.Item label={dict['header.form.sysInterface']}> + {getFieldDecorator('sysInterface', { + initialValue: setting.sysInterface || 'false', + rules: [ + { + required: true, + message: dict['form.required.select'] + dict['header.form.sysInterface'] + '!' + }, + ] + })( + <Radio.Group onChange={(e) => {this.onRadioChange(e, 'sysInterface')}}> + <Radio value="true">{dict['model.true']}</Radio> + <Radio value="false">{dict['model.false']}</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label="鍙傛暟澶勭悊"> + {getFieldDecorator('procMode', { + initialValue: procMode, + rules: [ + { + required: true, + message: dict['form.required.select'] + '鍙傛暟澶勭悊鏂瑰紡!' + }, + ] + })( + <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => {this.onRadioChange(e, 'procMode')}}> + <Radio value="script">鍓嶇疆鑴氭湰</Radio> + <Radio value="inner">鍓嶇疆鍑芥暟</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'custom' && procMode === 'inner' ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title={funcTooltip}> <Icon type="question-circle" /> - 鍐呴儴鍑芥暟 - </Tooltip> : '鍐呴儴鍑芥暟' + 鍓嶇疆鍑芥暟 + </Tooltip> }> - {getFieldDecorator('innerFunc', { - initialValue: setting.innerFunc || '', - rules: rules + {getFieldDecorator('prevFunc', { + initialValue: setting.prevFunc || '', + rules: [ + { + required: true, + message: dict['form.required.input'] + '鍓嶇疆鍑芥暟!' + }, + { + max: formRule.func.max, + message: formRule.func.maxMessage + }, + ...funcRules + ] })(<Input placeholder={''} autoComplete="off" />)} </Form.Item> </Col> : null} - {interType === 'outer' ? <Col span={8}> - <Form.Item label="鎺ュ彛鍦板潃"> + {interType === 'outer' || interType === 'custom' ? <Col className="data-source" span={24}> + <Form.Item label="娴嬭瘯鍦板潃"> {getFieldDecorator('interface', { initialValue: setting.interface || '', rules: [ { required: true, - message: this.props.dict['form.required.input'] + '鎺ュ彛鍦板潃!' + message: dict['form.required.input'] + '娴嬭瘯鍦板潃!' }, + ] + })(<TextArea rows={2} />)} + </Form.Item> + </Col> : null} + {interType === 'outer' || interType === 'custom' ? <Col className="data-source" span={24}> + <Form.Item label={ + <Tooltip placement="topLeft" title="姝e紡绯荤粺鎵�浣跨敤鐨勭殑鎺ュ彛鍦板潃銆�"> + <Icon type="question-circle" /> + 姝e紡鍦板潃 + </Tooltip> + }> + {getFieldDecorator('proInterface', { + initialValue: setting.proInterface || '' + })(<TextArea rows={2} />)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label="璇锋眰鏂瑰紡"> + {getFieldDecorator('method', { + initialValue: setting.method || 'post', + rules: [ + { + required: true, + message: dict['form.required.select'] + '璇锋眰鏂瑰紡!' + }, + ] + })( + <Radio.Group> + <Radio value="get">GET</Radio> + <Radio value="post">POST</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label="鏁版嵁璇锋眰"> + {getFieldDecorator('requestMode', { + initialValue: requestMode, + rules: [ + { + required: true, + message: dict['form.required.select'] + '鏁版嵁璇锋眰鏂瑰紡!' + }, + ] + })( + <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => {this.onRadioChange(e, 'requestMode')}}> + <Radio value="system">绯荤粺鍑芥暟</Radio> + <Radio value="inner">鍐呴儴鍑芥暟</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'inner' || (interType === 'custom' && requestMode === 'inner') ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title={funcTooltip}> + <Icon type="question-circle" /> + 鍐呴儴鍑芥暟 + </Tooltip> + }> + {getFieldDecorator('innerFunc', { + initialValue: setting.innerFunc || '', + rules: [ + { + required: true, + message: dict['form.required.input'] + '鍐呴儴鍑芥暟!' + }, + { + max: formRule.func.max, + message: formRule.func.maxMessage + }, + ...funcRules ] })(<Input placeholder={''} autoComplete="off" />)} </Form.Item> </Col> : null} - {interType === 'outer' ? <Col span={8}> + {interType === 'outer' ? <Col span={12}> <Form.Item label="澶栭儴鍑芥暟"> {getFieldDecorator('outerFunc', { initialValue: setting.outerFunc || '', rules: [ - + { + pattern: formRule.func.pattern, + message: formRule.func.message + }, { + max: formRule.func.max, + message: formRule.func.maxMessage + } ] })(<Input placeholder={''} autoComplete="off" />)} </Form.Item> </Col> : null} - {interType === 'inner' ? <Col span={24} className="data-source" style={{paddingLeft: '7px'}}> - <Form.Item labelCol={{xs: { span: 24 }, sm: { span: 2 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 22 }} } label={ - <Tooltip placement="topLeft" title={'浣跨敤绯荤粺鍑芥暟鏃讹紝闇�濉啓鏁版嵁婧愩�傛敞锛氭暟鎹潈闄愭浛鎹㈢ $@ -> /* 鎴� \'\'銆� @$ -> */ 鎴� \'\''}> + {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={24} className="data-source" style={{paddingLeft: '7px'}}> + <Form.Item help={'鏁版嵁ID锛�' + menu.MenuID} labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} } label={ + <Tooltip placement="topLeft" title={`浣跨敤绯荤粺鍑芥暟鏃讹紝闇�濉啓鏁版嵁婧愩�傛敞锛氭暟鎹潈闄愭浛鎹㈢ $@ -> /* 鎴� ''銆� @$ -> */ 鎴� ''锛涙煡璇㈡浛鎹㈢ $select@ -> /* 鎴� ''銆� @select$ -> */ 鎴� ''锛涚粺璁℃浛鎹㈢ $sum@ -> /* 鎴� ''銆� @sum$ -> */ 鎴� ''銆俙}> <Icon type="question-circle" /> 鏁版嵁婧� </Tooltip> @@ -234,7 +425,7 @@ })(<CodeMirror />)} </Form.Item> </Col> : null} - {interType === 'inner' ? <Col span={8}> + {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={12}> <Form.Item label={ <Tooltip placement="topLeft" title={'鏌ヨ鏃讹紝鎼滅储鏉′欢浠here鏉′欢鎷兼帴杩涘叆sql锛岀粺璁℃椂锛屽皢鏁版嵁婧愪腑浠モ�淍+鎼滅储瀛楁+@鈥濈殑鍐呭锛屼互鎼滅储鏉′欢涓殑鍊艰繘琛屾浛鎹㈠悗锛屾彁浜ゆ煡璇紝娉細鏌ヨ绫诲瀷浠呭湪浣跨敤绯荤粺鍑芥暟鏃舵湁鏁堛��'}> <Icon type="question-circle" /> @@ -250,25 +441,10 @@ </Radio.Group>)} </Form.Item> </Col> : null} - {/* <Col span={8}> - <Form.Item label="涓婚敭"> - {getFieldDecorator('primaryKey', { - initialValue: setting.primaryKey || '' - })( - <Select> - {columns.map((option, i) => - <Select.Option key={i} value={option.field}> - {option.label} - </Select.Option> - )} - </Select> - )} - </Form.Item> - </Col> */} - {interType === 'inner' ? <Col span={8}> + {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={12}> <Form.Item label="榛樿sql"> - {getFieldDecorator('execute', { - initialValue: setting.execute || 'true' + {getFieldDecorator('default', { + initialValue: setting.default || 'true' })( <Radio.Group> <Radio value="true">鎵ц</Radio> @@ -276,7 +452,122 @@ </Radio.Group>)} </Form.Item> </Col> : null} - <Col span={8}> + <Col span={12}> + <Form.Item label="涓婚敭"> + {getFieldDecorator('primaryKey', { + initialValue: setting.primaryKey || '' + })( + <Select onChange={this.primaryKeyChange}> + <Select.Option key="empty" value="">鏈缃�</Select.Option> + {columns.map((option, i) => + <Select.Option key={i} value={option.value}> + {option.text} + </Select.Option> + )} + </Select> + )} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label="榛樿鎺掑簭"> + {getFieldDecorator('order', { + initialValue: setting.order || 'ID desc', + rules: [ + { + required: true, + message: dict['form.required.input'] + '榛樿鎺掑簭!' + }, + { + max: formRule.input.max, + message: formRule.input.message + } + ] + })(<Input placeholder={'ID asc, UID desc'} autoComplete="off" />)} + </Form.Item> + </Col> + {interType === 'custom' ? <Col span={12}> + <Form.Item label="鍥炶皟鏂瑰紡"> + {getFieldDecorator('callbackType', { + initialValue: setting.callbackType || 'script' + })( + <Radio.Group onChange={(e) => {this.onRadioChange(e, 'callbackType')}}> + <Radio value="default">榛樿鑴氭湰</Radio> + <Radio value="script">鑷畾涔夎剼鏈�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label="鍥炶皟琛ㄥ悕"> + {getFieldDecorator('cbTable', { + initialValue: setting.cbTable || '', + rules: [ + { + required: true, + message: dict['form.required.input'] + '鍥炶皟琛ㄥ悕!' + }, + { + max: formRule.input.max, + message: formRule.input.message + } + ] + })(<Input placeholder={''} autoComplete="off" />)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title={'鍚屾鎵ц锛氬閮ㄦ帴鍙h皟鐢ㄦ垚鍔熷悗鍐嶈姹傛暟鎹紱寮傛鎵ц锛氬閮ㄦ帴鍙h皟鐢ㄤ笌璇锋眰鏁版嵁鍚屾椂杩涜銆�'}> + <Icon type="question-circle" /> + 鎵ц鏂瑰紡 + </Tooltip> + }> + {getFieldDecorator('execType', { + initialValue: setting.execType || 'sync' + })( + <Radio.Group> + <Radio value="sync">鍚屾</Radio> + <Radio value="async">寮傛</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title={'濡傛灉鑷畾涔夋帴鍙d笉鏀寔璺ㄥ煙璇锋眰锛屼細閫氳繃褰撳墠绯荤粺杞彂銆�'}> + <Icon type="question-circle" /> + 璺ㄥ煙璇锋眰 + </Tooltip> + }> + {getFieldDecorator('cross', { + initialValue: setting.cross || 'true' + })( + <Radio.Group> + <Radio value="true">鏀寔</Radio> + <Radio value="false">涓嶆敮鎸�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {interType === 'custom' ? <Col span={12}> + <Form.Item label="鎵ц娆℃暟"> + {getFieldDecorator('execTime', { + initialValue: setting.execTime || 'once' + })( + <Radio.Group> + <Radio value="always">濮嬬粓</Radio> + <Radio value="once">涓�娆�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + <Col span={12}> + <Form.Item label="鏄惁鍒嗛〉"> + {getFieldDecorator('laypage', { + initialValue: setting.laypage || 'true' + })( + <Radio.Group> + <Radio value="true">{dict['model.true']}</Radio> + <Radio value="false">{dict['model.false']}</Radio> + </Radio.Group>)} + </Form.Item> + </Col> + <Col span={12}> <Form.Item label="鍒濆鍖�"> {getFieldDecorator('onload', { initialValue: setting.onload || 'true' @@ -287,6 +578,105 @@ </Radio.Group>)} </Form.Item> </Col> + {config.Template === 'CommonTable' ? <Col span={12}> + <Form.Item label="鎸夐挳鍥哄畾"> + {getFieldDecorator('actionfixed', { + initialValue: setting.actionfixed === 'true' || setting.actionfixed === true ? 'true' : 'false' + })( + <Radio.Group> + <Radio value="true">{dict['model.true']}</Radio> + <Radio value="false">{dict['model.false']}</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + {config.Template === 'CommonTable' ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title={'鍚湁鍚堝苟鍒楁垨琛ㄦ牸鍑虹幇妯悜婊氬姩鏃朵細鏄剧ず寮傚父锛岃鎱庣敤锛�'}> + <Icon type="question-circle" /> + 琛ㄥご鍥哄畾 + </Tooltip> + }> + {getFieldDecorator('columnfixed', { + initialValue: setting.columnfixed === 'true' || setting.columnfixed === true ? 'true' : 'false' + })( + <Radio.Group> + <Radio value="true">{dict['model.true']}</Radio> + <Radio value="false">{dict['model.false']}</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} + <Col span={12}> + <Form.Item label="杈规"> + {getFieldDecorator('bordered', { + initialValue: setting.bordered || 'true' + })( + <Radio.Group> + <Radio value="true">鏈�</Radio> + <Radio value="false">鏃�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="楂樼骇鎼滅储寮圭獥鐨勫搴︼紝娉細褰撳搴﹀�煎皬浜�100鏃惰〃绀哄崰绐楀彛鐨勭櫨鍒嗘瘮锛屽ぇ浜�100鏃惰〃绀哄搴︾殑缁濆鍊笺��"> + <Icon type="question-circle" /> + 楂樼骇鎼滅储 + </Tooltip> + }> + {getFieldDecorator('advanceWidth', { + initialValue: setting.advanceWidth || 1000 + })(<InputNumber min={10} max={3000} precision={0}/>)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鍙屽嚮琛ㄦ牸涓锛岃Е鍙戠殑鎸夐挳銆�"> + <Icon type="question-circle" /> + 鍙屽嚮浜嬩欢 + </Tooltip> + }> + {getFieldDecorator('doubleClick', { + initialValue: setting.doubleClick || '' + })( + <Select allowClear> + {config.action.map(option => + <Select.Option key={option.uuid} value={option.uuid}>{option.label}</Select.Option> + )} + </Select> + )} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="绌哄�兼椂楂樺害鑷�傚簲銆�"> + <Icon type="question-circle" /> + table楂樺害 + </Tooltip> + }> + {getFieldDecorator('height', { + initialValue: setting.height + })(<InputNumber min={10} max={3000} precision={0}/>)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="榛樿鍊紃gba(0, 0, 0, 0.65)"> + <Icon type="question-circle" /> + 瀛椾綋棰滆壊 + </Tooltip> + }> + {getFieldDecorator('color', { + initialValue: setting.color + })(<MKColor config={{initval: setting.color || 'rgba(0, 0, 0, 0.65)'}} />)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label="瀛椾綋澶у皬"> + {getFieldDecorator('fontSize', { + initialValue: setting.fontSize || 14 + })(<InputNumber min={12} max={50} precision={0}/>)} + </Form.Item> + </Col> </Row> </Form> </div> -- Gitblit v1.8.0