From a8e94242166881639cecf3809e45ca527233ebd7 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 23 三月 2021 16:42:20 +0800 Subject: [PATCH] 2021-03-23 --- src/tabviews/zshare/mutilform/index.jsx | 1106 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 741 insertions(+), 365 deletions(-) diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index 29bd63c..56b78f9 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -1,17 +1,25 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' -import { Form, Row, Col, Input, InputNumber, Select, DatePicker, notification } from 'antd' +import { Form, Row, Col, Input, InputNumber, Select, DatePicker, notification, Checkbox, Radio, Tooltip, Icon } from 'antd' import moment from 'moment' import Api from '@/api' +import options from '@/store/options.js' import { formRule } from '@/utils/option.js' import Utils from '@/utils/utils.js' -import FileUpload from '../fileupload' +import asyncComponent from '@/utils/asyncComponent' +import asyncSpinComponent from '@/utils/asyncSpinComponent' import './index.scss' -const {MonthPicker} = DatePicker -const { TextArea } = Input +const { MonthPicker } = DatePicker + +const CheckCard = asyncComponent(() => import('./checkCard')) +const CustomSwitch = asyncComponent(() => import('./customSwitch')) +const CustomTextArea = asyncComponent(() => import('./customTextArea')) +const FileUpload = asyncComponent(() => import('../fileupload')) +const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) +const Editor = asyncSpinComponent(() => import('@/components/editor')) class MainSearch extends Component { static propTpyes = { @@ -25,125 +33,98 @@ } state = { - cols: 2, // 鏄剧ず涓哄灏戝垪 datatype: null, // 鏁版嵁绫诲瀷 readtype: null, // 鏄惁鍙 readin: null, // 琛屾暟鎹槸鍚﹀啓鍏� + writein: null, // 鎵ц鏃舵槸鍚﹀~鍏ラ粯璁ql fieldlen: null, // 瀛楁闀垮害 formlist: [], // 琛ㄥ崟椤� - encrypts: [], // 鍔犲瘑瀛楁 intercepts: [], // 鎴彇瀛楁 record: {} // 璁板綍涓嬫媺琛ㄥ崟鍏宠仈瀛楁锛岀敤浜庢暟鎹啓鍏� } - UNSAFE_componentWillMount () { - let cols = 2 - if (this.props.action.setting && this.props.action.setting.cols) { - cols = parseInt(this.props.action.setting.cols) - if (cols > 4 || cols < 1) { - cols = 2 - } - } - - this.setState({ - cols: cols - }) - } - componentDidMount () { - const { data, BData } = this.props - let action = fromJS(this.props.action).toJS() + const { data, BData, action } = this.props let datatype = {} let readtype = {} let readin = {} + let writein = {} let fieldlen = {} - let formlist = [] - let encrypts = [] let intercepts = [] + let _inputfields = [] + let linkFields = {} // 鍏宠仈鑿滃崟 + let supItemVal = {} // 涓婄骇鑿滃崟鍒濆鍊� + let deForms = [] // 闇�瑕佸姩鎬佽幏鍙栦笅鎷夎彍鍗曠殑琛ㄥ崟 - if (action.groups.length > 0) { - action.groups.forEach(group => { - if (group.sublist.length === 0) return - - if (!group.default) { - formlist.push({ - type: 'title', - label: group.label, - uuid: group.uuid - }) - } - - formlist.push(...group.sublist) - }) - } else { - formlist = action.fields - } - - let _inputfields = formlist.filter(item => item.type === 'text' || item.type === 'number') // 鐢ㄤ簬杩囨护涓嬫媺鑿滃崟鍏宠仈琛ㄥ崟 - - formlist = formlist.map(item => { - if (item.type === 'title') return item - - // 鍔犲瘑瀛楁 - if (item.type === 'textarea' && item.encryption === 'true') { - encrypts.push(item.field) + action.fields.forEach(item => { + if (item.type === 'text' || item.type === 'number') { // 鐢ㄤ簬杩囨护涓嬫媺鑿滃崟鍏宠仈琛ㄥ崟 + _inputfields.push(item.field) + } else if (item.type === 'textarea') { + _inputfields.push(item.field) + } else if (item.type === 'link') { + linkFields[item.linkField] = linkFields[item.linkField] || [] + linkFields[item.linkField].push(item.field) } - - // 瀛楃鎴彇瀛楁 - if (item.interception === 'true') { + if (item.interception === 'true') { // 瀛楃鎴彇瀛楁 intercepts.push(item.field) } + }) - // 鏁版嵁鍐欏叆 + let formlist = action.fields.map(item => { + if (item.labelwidth) { + item.labelCol = {style: {width: item.labelwidth + '%'}} + } + if (item.type === 'split' || item.type === 'hint') return item + + // 鏁版嵁鑷姩濉厖 let _readin = item.readin !== 'false' if (item.type === 'linkMain' || item.type === 'funcvar') { _readin = false } - // 鐢ㄤ簬鍙楁帶鍊肩殑琛ㄥ崟锛岄殣钘忔椂浼犻粯璁ゅ��(鏈娇鐢紵) - item.initVal = typeof(item.initval) === 'object' ? fromJS(item.initval).toJS() : item.initval - let _fieldlen = item.fieldlength || 50 - if (item.type === 'textarea' || item.type === 'fileupload' || item.type === 'multiselect') { + if (item.type === 'textarea' || item.type === 'fileupload' || item.type === 'multiselect' || item.type === 'brafteditor') { _fieldlen = item.fieldlength || 512 } else if (item.type === 'number') { _fieldlen = item.decimal ? item.decimal : 0 + item.initval = item.initval || 0 } datatype[item.field] = item.type readtype[item.field] = item.readonly === 'true' readin[item.field] = _readin + writein[item.field] = item.writein !== 'false' fieldlen[item.field] = _fieldlen - if (item.type === 'select' || item.type === 'link' || item.type === 'multiselect') { - if (item.setAll === 'true') { - item.options.unshift({ - key: Utils.getuuid(), - Value: '', - Text: this.props.dict['main.all'] - }) - } + if (item.setAll === 'true' && (item.type === 'select' || item.type === 'link' || item.type === 'radio')) { // 娣诲姞绌哄�� + item.options.unshift({ + key: Utils.getuuid(), + Value: '', + Text: item.emptyText || '绌�', + ParentID: '' + }) + } - // 淇濆瓨鍒濆鍒楄〃锛岀敤浜庡叧鑱旇彍鍗曟帶鍒� - item.oriOptions = fromJS(item.options).toJS() + item.oriOptions = item.options ? fromJS(item.options).toJS() : null // 淇濆瓨鍒濆鍒楄〃锛岀敤浜庤仈鍔ㄨ彍鍗曟帶鍒� - // 涓嬬骇琛ㄥ崟鎺у埗-瀛楁鍐欏叆 - if (item.linkSubField && item.linkSubField.length > 0) { - let _fields = _inputfields.map(_item => _item.field) - item.linkSubField = item.linkSubField.filter(_item => _fields.includes(_item)) - } + // 涓嬬骇琛ㄥ崟鎺у埗-瀛楁鍐欏叆 + if ((item.type === 'select' || item.type === 'radio') && item.linkSubField && item.linkSubField.length > 0) { + item.linkSubField = item.linkSubField.filter(_item => _inputfields.includes(_item)) + } + if (item.linkSubField && item.linkSubField.length === 0) { + item.linkSubField = null } let newval = '' - if (item.type === 'linkMain' && BData && BData.hasOwnProperty(item.field)) { - newval = BData[item.field] - } else if (item.type !== 'linkMain' && _readin && !/^date/.test(item.type) && this.props.data && this.props.data.hasOwnProperty(item.field)) { - newval = this.props.data[item.field] + if (item.type === 'linkMain') { + newval = BData && BData[item.field] ? BData[item.field] : '' + } else if (_readin && !/^date/.test(item.type) && data && data.hasOwnProperty(item.field)) { + newval = data[item.field] } else if (item.type === 'date') { // 鏃堕棿鎼滅储 - if (_readin && this.props.data && this.props.data.hasOwnProperty(item.field)) { - newval = this.props.data[item.field] + if (_readin && data && data.hasOwnProperty(item.field)) { + newval = data[item.field] } if (newval) { newval = moment(newval, 'YYYY-MM-DD') @@ -155,8 +136,8 @@ newval = null } } else if (item.type === 'datemonth') { - if (_readin && this.props.data && this.props.data.hasOwnProperty(item.field)) { - newval = this.props.data[item.field] + if (_readin && data && data.hasOwnProperty(item.field)) { + newval = data[item.field] } if (newval) { newval = moment(newval, 'YYYY-MM') @@ -168,26 +149,27 @@ newval = null } } else if (item.type === 'datetime') { - if (_readin && this.props.data && this.props.data.hasOwnProperty(item.field)) { - newval = this.props.data[item.field] + if (_readin && data && data.hasOwnProperty(item.field)) { + newval = data[item.field] } if (newval) { newval = moment(newval, 'YYYY-MM-DD HH:mm:ss') newval = newval.format('YYYY-MM-DD HH:mm:ss') === 'Invalid date' ? '' : newval } if (!newval && item.initval) { - newval = moment().subtract(item.initval, 'days') + newval = moment(moment().subtract(item.initval, 'days').format('YYYY-MM-DD') + ' 00:00:00', 'YYYY-MM-DD HH:mm:ss') } else if (!newval) { newval = null } } - // 鍔犲瘑瀛楁锛岃В瀵嗗鐞� - if (item.type === 'textarea' && item.encryption === 'true' && newval !== '') { - try { - newval = window.decodeURIComponent(window.atob(newval)) - } catch (e) { - console.warn(e) + if (item.type === 'switch' && newval !== '') { // 寮�鍏冲彧鎺ユ敹鍥哄畾鍊� + if (newval !== item.closeVal && newval !== item.openVal) { + newval = '' + } else if (newval === item.openVal) { + newval = true + } else { + newval = false } } @@ -206,165 +188,369 @@ item.supvalue = supvals } + if (linkFields[item.field]) { + item.linkFields = linkFields[item.field] + } + supItemVal[item.field] = item.initval + + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(item.type) && item.resourceType === '1') { + deForms.push(item) + } else if (['select', 'link', 'radio'].includes(item.type) && item.resourceType !== '1') { // 閫変腑绗竴椤� + if (typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { + item.initval = item.options[0] ? item.options[0].Value : '' + } + } + return item }) formlist = formlist.map(item => { if (item.type === 'link') { - let supItem = formlist.filter(form => form.field === item.linkField)[0] + item.supInitVal = '' - // 鍏宠仈鏄剧ず鍒椾腑鐨勫瓧娈靛�硷紝閫氳繃璇ュ�艰繃婊や笅鎷夐�夐」 - if (!supItem && data && data.hasOwnProperty(item.linkField)) { - supItem = {initval: data[item.linkField]} + if (supItemVal[item.linkField]) { + item.supInitVal = supItemVal[item.linkField] + } else if (data && data.hasOwnProperty(item.linkField)) { + item.supInitVal = data[item.linkField] } - if (!supItem) { - notification.warning({ - top: 92, - message: '鏈煡璇㈠埌琛ㄥ崟銆�' + item.label + '銆嬪叧鑱斿瓧娈碉紒', - duration: 5 - }) - item.supInitVal = '' - } else { - item.supInitVal = supItem.initval - item.options = item.oriOptions.filter(option => option.parentId === supItem.initval) - } + item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.Value === '') } - return item }) this.setState({ - readtype: readtype, - datatype: datatype, - readin: readin, - fieldlen: fieldlen, - encrypts: encrypts, - intercepts: intercepts, - formlist: formlist + readin, + writein, + readtype, + datatype, + fieldlen, + intercepts, + formlist }, () => { if (action.setting && action.setting.focus) { - try { - let _form = document.getElementById('main-form-box') - let _item = _form.getElementsByTagName('input') - _item = [..._item] - _item.forEach(input => { - if (!input || input.id !== action.setting.focus) return - input.select() - }) - } catch { - console.warn('focus error锛�') - } + this.selectInput(action.setting.focus, 'init') } // 鐢ㄦ潵鏇存柊state锛岄槻姝㈠彈鎺ц〃鍗曞垵濮嬫椂涓嶆樉绀� this.setState({ loaded: true }) - this.improveActionForm() + this.improveActionForm(deForms) }) + } + + selectInput = (selectId, type) => { + try { + let _form = document.getElementById('main-form-box') + let _inputs = _form.getElementsByTagName('input') + _inputs = [..._inputs] + _inputs.forEach(input => { + if (!input || input.id !== selectId) return + + if (input.className === 'ant-select-search__field' && type !== 'init') { + let div = input.parentNode + while (div && div.parentNode) { + div = div.parentNode + if (div.id === selectId) { + div && div.click && div.click() + div = null + } + } + } else if (input.select) { + input.select() + } else if (input.focus) { + input.focus() + } + }) + } catch { + console.warn('focus error锛�') + } } /** * @description 鑾峰彇涓嬫媺琛ㄥ崟閫夐」淇℃伅 */ - improveActionForm = () => { + improveActionForm = (deForms) => { + const { BID, menuType } = this.props const { formlist } = this.state + + if (deForms.length === 0) { + return + } else if (menuType !== 'HS' && options.sysType === 'local' && !window.GLOB.systemType) { + this.improveSimpleActionForm(deForms) + return + } + let deffers = [] + let mainItems = [] // 浜戠鎴栧崟鐐规暟鎹� + let localItems = [] // 鏈湴鏁版嵁 - formlist.forEach(item => { - if (!['select', 'link', 'multiselect'].includes(item.type) || item.resourceType !== '1') return - - let param = { - func: 'sPC_Get_SelectedList', - LText: item.data_sql, - obj_name: 'data', - arr_field: item.arr_field + deForms.forEach(item => { + if (item.database === 'sso') { + mainItems.push(`select '${item.field}' as obj_name,'${item.arr_field}' as arr_field,'${item.base_sql}' as LText`) + } else { + localItems.push(`select '${item.field}' as obj_name,'${item.arr_field}' as arr_field,'${item.base_sql}' as LText`) } + }) + + if (menuType !== 'HS' && window.GLOB.systemType !== 'production') { + localItems = [...localItems, ...mainItems] + mainItems = [] + } - if (this.props.BID) { - param.BID = this.props.BID - } + // 鏈湴璇锋眰 + let param = { + func: 'sPC_Get_SelectedList', + LText: localItems.join(' union all '), + obj_name: '', + arr_field: '', + table_type: 'Y' + } - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + if (BID) { + param.BID = BID + } + + if (param.LText) { + param.LText = Utils.formatOptions(param.LText) + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) - if (this.props.menuType === 'HS') { // 浜戠鏁版嵁楠岃瘉 - param.open_key = Utils.encrypt(param.secretkey, param.timestamp, true) + if (menuType === 'HS') { // 浜戠鏁版嵁楠岃瘉 + param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) } deffers.push( new Promise(resolve => { - Api.getSystemCacheConfig(param, item.database === 'sso').then(res => { - res.$search = item + Api.getSystemCacheConfig(param).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } resolve(res) }) }) - ) - }) + ) + } - if (deffers.length === 0) return + // 绯荤粺璇锋眰 + let mainparam = { + func: 'sPC_Get_SelectedList', + LText: mainItems.join(' union all '), + obj_name: '', + arr_field: '', + table_type: 'Y' + } - let _field = {} - let error = '' - Promise.all(deffers).then(result => { - result.forEach(res => { - if (res.status) { - let options = res.data.map(cell => { - let item = { - key: Utils.getuuid(), - Value: cell[res.$search.valueField], - Text: cell[res.$search.valueText] - } + if (BID) { + mainparam.BID = BID + } - if (res.$search.type === 'link') { - item.parentId = cell[res.$search.linkField] - } else if (res.$search.type === 'select' && res.$search.linkSubField && res.$search.linkSubField.length > 0) { - res.$search.linkSubField.forEach(_field => { - item[_field] = (cell[_field] || cell[_field] === 0) ? cell[_field] : '' - }) - } + if (mainparam.LText) { + mainparam.LText = Utils.formatOptions(mainparam.LText) + mainparam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + mainparam.secretkey = Utils.encrypt(mainparam.LText, mainparam.timestamp) - return item - }) - - _field[res.$search.uuid] = options - } else { - error = res + if (menuType === 'HS') { // 浜戠鏁版嵁楠岃瘉 + mainparam.open_key = Utils.encryptOpenKey(mainparam.secretkey, mainparam.timestamp) + if (options.cloudServiceApi) { + mainparam.rduri = options.cloudServiceApi + mainparam.userid = sessionStorage.getItem('CloudUserID') || '' + mainparam.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' } - }) - - if (error) { - notification.warning({ - top: 92, - message: error.message, - duration: 5 - }) + } else if (window.GLOB.mainSystemApi) { + mainparam.rduri = window.GLOB.mainSystemApi } + deffers.push( + new Promise(resolve => { + Api.getSystemCacheConfig(mainparam).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } + resolve(res) + }) + }) + ) + } + + Promise.all(deffers).then(response => { + let result = {...response[0], ...(response[1] || {})} + + delete result.ErrCode + delete result.ErrMesg + delete result.message + delete result.status + let _formlist = formlist.map(item => { - if (item.type === 'select' || item.type === 'link' || item.type === 'multiselect') { - if (item.resourceType === '1' && _field.hasOwnProperty(item.uuid)) { - item.oriOptions = [...item.oriOptions, ..._field[item.uuid]] - } + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(item.type) && result[item.field] && result[item.field].length > 0) { + let options = [] + result[item.field].forEach(cell => { + let _cell = { key: Utils.getuuid() } + + if (item.type !== 'checkcard') { + _cell.Value = cell[item.valueField] + _cell.Text = cell[item.valueText] + if ((!_cell.Value && _cell.Value !== 0) || (!_cell.Text && _cell.Text !== 0)) return + } else { + _cell.$value = cell[item.valueField] + _cell = {..._cell, ...cell} + if (!_cell.$value && _cell.$value !== 0) return + } + + if (item.type === 'link') { + _cell.ParentID = cell[item.linkField] === undefined ? '' : cell[item.linkField] + } else if (item.linkSubField) { + item.linkSubField.forEach(_field => { + _cell[_field] = (cell[_field] || cell[_field] === 0) ? cell[_field] : '' + }) + } + + options.push(_cell) + }) + + item.oriOptions = [...item.oriOptions, ...options] } return item }) - - _formlist = _formlist.map(item => { - if (item.type === 'link') { - if (item.supInitVal) { - item.options = item.oriOptions.filter(option => option.parentId === item.supInitVal) - } else { - item.options = item.oriOptions - } - } else if (item.type === 'select' || item.type === 'multiselect') { - item.options = item.oriOptions - } - return item - }) + let values = [] this.setState({ - formlist: _formlist + formlist: _formlist.map(item => { + if (item.type === 'link') { + item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.Value === '') + } else if (['select', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(item.type)) { + item.options = item.oriOptions + } + if (['select', 'link', 'radio'].includes(item.type) && typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { // 閫変腑绗竴椤� + item.initval = item.options[0] ? item.options[0].Value : '' + values.push({field: item.field, value: item.initval}) + } + return item + }) + }, () => { + if (values.length === 0) return + let fieldsvalue = {} + values.forEach(item => { + if (this.props.form.getFieldValue(item.field) !== undefined) { + fieldsvalue[item.field] = item.value + } + }) + this.props.form.setFieldsValue(fieldsvalue) + }) + }) + } + + /** + * @description 娴嬭瘯绯荤粺鑾峰彇涓嬫媺琛ㄥ崟閫夐」淇℃伅 + */ + improveSimpleActionForm = (deForms) => { + const { formlist } = this.state + + let deffers = deForms.map(form => { + let param = { + func: 'sPC_Get_SelectedList', + LText: form.data_sql, + obj_name: form.field, + arr_field: form.arr_field + } + + if (this.props.BID) { + param.BID = this.props.BID + } + + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt(param.LText, param.timestamp) + + return ( + new Promise(resolve => { + Api.getSystemCacheConfig(param).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + } + resolve(res) + }) + }) + ) + }) + + Promise.all(deffers).then(response => { + let result = {} + response.forEach(res => { + result = {...result, ...res} + }) + + delete result.ErrCode + delete result.ErrMesg + delete result.message + delete result.status + + let _formlist = formlist.map(item => { + if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(item.type) && result[item.field] && result[item.field].length > 0) { + let options = [] + result[item.field].forEach(cell => { + let _cell = { key: Utils.getuuid() } + + if (item.type !== 'checkcard') { + _cell.Value = cell[item.valueField] + _cell.Text = cell[item.valueText] + if ((!_cell.Value && _cell.Value !== 0) || (!_cell.Text && _cell.Text !== 0)) return + } else { + _cell.$value = cell[item.valueField] + _cell = {..._cell, ...cell} + if (!_cell.$value && _cell.$value !== 0) return + } + + if (item.type === 'link') { + _cell.ParentID = cell[item.linkField] === undefined ? '' : cell[item.linkField] + } else if (item.linkSubField) { + item.linkSubField.forEach(_field => { + _cell[_field] = (cell[_field] || cell[_field] === 0) ? cell[_field] : '' + }) + } + + options.push(_cell) + }) + + item.oriOptions = [...item.oriOptions, ...options] + } + return item + }) + let values = [] + + this.setState({ + formlist: _formlist.map(item => { + if (item.type === 'link') { + item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.Value === '') + } else if (['select', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(item.type)) { + item.options = item.oriOptions + } + if (['select', 'link', 'radio'].includes(item.type) && typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { // 閫変腑绗竴椤� + item.initval = item.options[0] ? item.options[0].Value : '' + values.push({field: item.field, value: item.initval}) + } + return item + }) + }, () => { + if (values.length === 0) return + let fieldsvalue = {} + values.forEach(item => { + if (this.props.form.getFieldValue(item.field) !== undefined) { + fieldsvalue[item.field] = item.value + } + }) + this.props.form.setFieldsValue(fieldsvalue) }) }) } @@ -377,7 +563,7 @@ formlist = formlist.map(item => { if (item.type === 'link' && item.linkField === supfield.field) { - item.options = item.oriOptions.filter(option => option.parentId === supfield.initval) + item.options = item.oriOptions.filter(option => option.ParentID === supfield.initval || option.Value === '') item.initval = item.options[0] ? item.options[0].Value : '' if (this.props.form.getFieldValue(item.field) !== undefined) { @@ -397,16 +583,16 @@ } } - selectChange = (_field, value, option) => { + selectChange = (_field, value) => { const { record } = this.state let formlist = fromJS(this.state.formlist).toJS() - let subfields = [] let fieldsvalue = {} let _record = {} + formlist = formlist.map(item => { if (item.type === 'link' && item.linkField === _field.field) { - item.options = item.oriOptions.filter(option => option.parentId === value) + item.options = item.oriOptions.filter(option => option.ParentID === value || option.Value === '') item.initval = item.options[0] ? item.options[0].Value : '' if (this.props.form.getFieldValue(item.field) !== undefined) { @@ -419,43 +605,44 @@ }) // 琛ㄥ崟鍒囨崲鏃讹紝鏇存柊鍏宠仈瀛楁 - if (_field.type === 'select' && _field.linkSubField && _field.linkSubField.length > 0 && option.props.data) { - let _data = option.props.data - _field.linkSubField.forEach(subfield => { - if (this.props.form.getFieldValue(subfield) !== undefined) { - fieldsvalue[subfield] = (_data[subfield] || _data[subfield] === 0) ? _data[subfield] : '' - } else { - _record[subfield] = (_data[subfield] || _data[subfield] === 0) ? _data[subfield] : '' - } - }) + if (_field.linkSubField) { + let _data = _field.options.filter(op => op.Value === value)[0] + + if (_data) { + _field.linkSubField.forEach(subfield => { + if (this.props.form.getFieldValue(subfield) !== undefined) { + fieldsvalue[subfield] = (_data[subfield] || _data[subfield] === 0) ? _data[subfield] : '' + } else { + _record[subfield] = (_data[subfield] || _data[subfield] === 0) ? _data[subfield] : '' + } + }) + } } if (subfields.length === 0) { - if (Object.keys(fieldsvalue).length > 0) { - this.props.form.setFieldsValue(fieldsvalue) - } - if (Object.keys(_record).length > 0) { - this.setState({ - record: {...record, ..._record} - }) - } + this.props.form.setFieldsValue(fieldsvalue) + this.setState({ + record: {...record, ..._record} + }) } else { let result = this.resetform(formlist, subfields, 0, fieldsvalue) - if (Object.keys(result.fieldsvalue).length > 0) { - this.props.form.setFieldsValue(fieldsvalue) - } - - let _param = { - formlist: result.formlist - } - - if (Object.keys(_record).length > 0) { - _param.record = {...record, ..._record} - } - - this.setState(_param) + this.props.form.setFieldsValue(fieldsvalue) + this.setState({ + formlist: result.formlist, + record: {...record, ..._record} + }) } + + this.setState({}, () => { + if (!_field.enter || _field.enter === 'false') return + + if (_field.enter === 'tab') { + this.selectInput(_field.tabField) + } else if (_field.enter === 'sub') { + this.handleSubmit() + } + }) } handleConfirmPassword = (rule, value, callback, item) => { @@ -468,30 +655,81 @@ callback(item.label + '鏈�澶у�间负 ' + item.max) } } - callback() } - getFields(formlist) { + handleChange = (e, item) => { + let val = e.target.value + + if (item.enter === 'false') return + if (!val || !/\n/ig.test(val)) return + if (item.enter === 'tab') { + this.selectInput(item.tabField) + } else { + this.handleSubmit(e) + this.selectInput(item.tabField || item.field) + } + } + + handleInputSubmit = (e, item) => { + if (item.enter === 'false') return + if (item.enter === 'tab') { + this.selectInput(item.tabField) + } else { + this.handleSubmit(e) + this.selectInput(item.tabField || item.field) + } + } + + getFields() { const { getFieldDecorator } = this.props.form - const { cols } = this.state + const { formlist } = this.state const fields = [] + let filtration = {} formlist.forEach((item, index) => { - if (item.type === 'title') { + if ((!item.field && item.type !== 'split' && item.type !== 'hint') || item.hidden === 'true' || item.type === 'funcvar') return + if (item.supField) { // 澶氬眰琛ㄥ崟鎺у埗 + let _supVal = this.props.form.getFieldValue(item.supField) + + if (_supVal === undefined && filtration[item.supField]) { + _supVal = filtration[item.supField] + } + + if (item.supvalue.includes(_supVal)) { + let _subVal = this.props.form.getFieldValue(item.field) + filtration[item.field] = _subVal === undefined ? item.initval : _subVal + } else { + return + } + } + + if (item.type === 'split') { fields.push( <Col span={24} key={index}> <p>{item.label}</p> </Col> ) + } else if (item.type === 'hint') { + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item colon={!!item.label} label={item.label || ' '} labelCol={item.labelCol} className="hint"> + <div className="message">{item.message}</div> + </Form.Item> + </Col> + ) } else if (item.type === 'text') { let _max = item.fieldlength || 50 - let _rules = [] + let _rules = [{ + pattern: /^[^']*$/ig, + message: formRule.input.quotemsg + }] + if (item.regular) { if (item.regular === 'number') { _rules = [{ - pattern: /^[0-9]*$/ig, + pattern: /^[0-9.-]*$/ig, message: formRule.input.numbermsg }] } else if (item.regular === 'letter') { @@ -511,11 +749,17 @@ }] } } + fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { - initialValue: item.initval, + initialValue: item.initval + '', rules: [ { required: item.required === 'true', @@ -527,19 +771,23 @@ }, ..._rules ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly === 'true'} onPressEnter={this.handleSubmit} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly === 'true'} onChange={(e) => this.handleChange(e, item)} onPressEnter={(e) => this.handleInputSubmit(e, item)} />)} </Form.Item> </Col> ) } else if (item.type === 'number') { // 鏁板瓧 - let _initval = item.initval let precision = (item.decimal || item.decimal === 0) ? item.decimal : null fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { - initialValue: _initval, + initialValue: item.initval, rules: [ { required: true, @@ -551,21 +799,138 @@ ] })( precision === null ? - <InputNumber disabled={item.readonly === 'true'} onPressEnter={this.handleSubmit} /> : - <InputNumber precision={precision} disabled={item.readonly === 'true'} onPressEnter={this.handleSubmit} /> + <InputNumber disabled={item.readonly === 'true'} onPressEnter={(e) => this.handleInputSubmit(e, item)} /> : + <InputNumber precision={precision} disabled={item.readonly === 'true'} onPressEnter={(e) => this.handleInputSubmit(e, item)} /> )} </Form.Item> </Col> ) - } else if (item.type === 'select' || item.type === 'link') { // 涓嬫媺鎼滅储 - let hasSubField = false - if (item.linkSubField && item.linkSubField.length > 0) { // 瀛樺湪鍏宠仈瀛楁锛屾暟鎹瓨鍌� - hasSubField = true - } + } else if (item.type === 'color') { // 棰滆壊閫夋嫨 + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.field, { + initialValue: item.initval || 'transparent', + rules: [ + { + required: item.required === 'true', + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })( + <ColorSketch /> + )} + </Form.Item> + </Col> + ) + } else if (item.type === 'checkcard') { // 澶氶�夋 + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + } className="checkcard"> + {getFieldDecorator(item.field, { + initialValue: item.initval, + rules: [ + { + required: item.required === 'true', + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })(<CheckCard card={item} />)} + </Form.Item> + </Col> + ) + } else if (item.type === 'switch') { // 澶氶�夋 + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.field, { + initialValue: item.initval, + rules: [ + { + required: item.required === 'true', + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })(<CustomSwitch Item={item} />)} + </Form.Item> + </Col> + ) + } else if (item.type === 'checkbox') { // 澶氶�夋 + let _initval = item.initval ? item.initval.split(',').filter(Boolean) : [] fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.field, { + initialValue: _initval, + rules: [ + { + required: item.required === 'true', + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })( + <Checkbox.Group disabled={item.readonly === 'true'}> + {item.options.map(option => <Checkbox key={option.key} title={option.Text} value={option.Value}>{option.Text}</Checkbox>)} + </Checkbox.Group> + )} + </Form.Item> + </Col> + ) + } else if (item.type === 'radio') { // 鍗曢�夋 + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> + {getFieldDecorator(item.field, { + initialValue: item.initval, + rules: [ + { + required: item.required === 'true', + message: this.props.dict['form.required.select'] + item.label + '!' + } + ] + })( + <Radio.Group disabled={item.readonly === 'true'} onChange={(e) => {this.selectChange(item, e.target.value)}}> + {item.options.map(option => <Radio key={option.key} value={option.Value}>{option.Text}</Radio>)} + </Radio.Group> + )} + </Form.Item> + </Col> + ) + } else if (item.type === 'select' || item.type === 'link') { // 涓嬫媺鎼滅储 + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: item.initval, rules: [ @@ -577,12 +942,13 @@ })( <Select showSearch + allowClear={true} filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - onChange={(value, option) => {this.selectChange(item, value, option)}} + onSelect={(value) => {this.selectChange(item, value)}} disabled={item.readonly === 'true'} > {item.options.map(option => - <Select.Option id={option.key} data={hasSubField ? option : ''} title={option.Text} key={option.key} value={option.Value}>{option.Text}</Select.Option> + <Select.Option id={option.key} title={option.Text} key={option.key} value={option.Value}>{option.Text}</Select.Option> )} </Select> )} @@ -592,8 +958,13 @@ } else if (item.type === 'multiselect') { // 澶氶�� let _initval = item.initval ? item.initval.split(',').filter(Boolean) : [] fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: _initval, rules: [ @@ -619,8 +990,13 @@ ) } else if (item.type === 'date') { // 鏃堕棿鎼滅储 fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: item.initval, rules: [ @@ -637,8 +1013,13 @@ ) } else if (item.type === 'datemonth') { fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: item.initval, rules: [ @@ -655,8 +1036,13 @@ ) } else if (item.type === 'datetime') { fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: item.initval, rules: [ @@ -692,8 +1078,13 @@ } fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: filelist, rules: [ @@ -703,15 +1094,20 @@ } ] })( - <FileUpload maxFile={item.maxfile} fileType={item.fileType || 'text'} /> + <FileUpload accept={item.suffix} maxFile={item.maxfile} fileType={item.fileType || 'text'} /> )} </Form.Item> </Col> ) } else if (item.type === 'linkMain') { fields.push( - <Col span={24 / cols} key={index}> - <Form.Item label={item.label}> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: item.initval, rules: [ @@ -728,15 +1124,21 @@ // 鍑芥暟鍙橀噺瀛楁锛岄粯璁や笉鏄剧ず } else if (item.type === 'textarea') { let _max = item.fieldlength || 512 - let _labelcol = cols !== 3 ? 8 / cols : 3 - let _wrapcol = cols !== 3 ? 16 + (cols - 1) * 4 : 21 - let _style = {} - if (cols === 2 || cols === 4) { - _style.paddingLeft = '7px' + let _rules = [] + if (item.encryption !== 'true') { + _rules = [{ + pattern: /^[^']*$/ig, + message: formRule.input.quotemsg + }] } fields.push( - <Col span={24} key={index} className="textarea-row" style={{..._style}}> - <Form.Item label={item.label} labelCol={{xs: { span: 24 }, sm: { span: _labelcol }}} wrapperCol={ {xs: { span: 24 }, sm: { span: _wrapcol }} }> + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : item.label + }> {getFieldDecorator(item.field, { initialValue: item.initval, rules: [ @@ -747,9 +1149,37 @@ { max: _max, message: formRule.input.formMessage.replace('@max', _max) + }, + ..._rules + ] + })(<CustomTextArea Item={item} />)} + </Form.Item> + </Col> + ) + } else if (item.type === 'brafteditor') { + let _max = item.fieldlength || 512 + + fields.push( + <Col span={item.span || 24} key={index}> + <Form.Item extra={item.extra || null} labelCol={item.labelCol} label={item.hidelabel !== 'true' && item.tooltip ? + <Tooltip placement="topLeft" title={item.tooltip}> + <Icon type="question-circle" /> + {item.label} + </Tooltip> : (item.hidelabel !== 'true' ? item.label : '') + }> + {getFieldDecorator(item.field, { + initialValue: item.initval || '', + rules: [ + { + required: item.required === 'true', + message: this.props.dict['form.required.input'] + item.label + '!' + }, + { + max: _max, + message: formRule.input.formMessage.replace('@max', _max) } ] - })(<TextArea autosize={{ minRows: 2, maxRows: item.maxRows || 6 }} disabled={item.readonly === 'true'} />)} + })(<Editor Item={item}/>)} </Form.Item> </Col> ) @@ -760,8 +1190,7 @@ } handleConfirm = () => { - const { record, intercepts } = this.state - let _encrypts = fromJS(this.state.encrypts).toJS() + const { record, intercepts, writein } = this.state let _format = { date: 'YYYY-MM-DD', datemonth: 'YYYY-MM', @@ -783,6 +1212,7 @@ type: 'funcvar', readonly: 'true', readin: false, + writein: writein[item.field], fieldlen: this.state.fieldlen[item.field], key: item.field, value: '' @@ -791,13 +1221,13 @@ let _val = item.initval if (record.hasOwnProperty(item.field)) { _val = record[item.field] - _encrypts = _encrypts.filter(_field => _field !== item.field) // 闅愯棌瀛楁锛屼笉鍙備笌鍔犲瘑澶勭悊 } _item = { type: this.state.datatype[item.field], readonly: this.state.readtype[item.field], readin: this.state.readin[item.field], + writein: writein[item.field], fieldlen: this.state.fieldlen[item.field], key: item.field, value: _val @@ -807,6 +1237,7 @@ type: this.state.datatype[item.field], readonly: this.state.readtype[item.field], readin: this.state.readin[item.field], + writein: writein[item.field], fieldlen: this.state.fieldlen[item.field], key: item.field, value: item.initval @@ -815,12 +1246,18 @@ if (!_item) return - if (item.type === 'date' || item.type === 'datemonth' || item.type === 'datetime') { - if (_item.value && _item.value.format) { - _item.value = _item.value.format(_format[item.type]) - } else if (!_item.value) { + if (_item.value === undefined) { + _item.value = '' + } else if (item.type === 'date' || item.type === 'datemonth' || item.type === 'datetime') { + if (!_item.value) { _item.value = '' + } else if (_item.value.format) { + _item.value = _item.value.format(_format[item.type]) } + } else if (item.type === 'text' && _item.value && typeof(_item.value) === 'string') { // 鐗规畩瀛楁鏇挎崲 + _item.value = _item.value.replace(/^(\s*)@appkey@(\s*)$/ig, window.GLOB.appkey) + _item.value = _item.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, (localStorage.getItem('SessionUid') || '')) + _item.value = _item.value.replace(/^(\s*)@bid@(\s*)$/ig, (this.props.BID || '')) } search.push(_item) @@ -833,6 +1270,7 @@ type: this.state.datatype[key], readonly: this.state.readtype[key], readin: this.state.readin[key], + writein: writein[key], fieldlen: this.state.fieldlen[key], key: key, value: '' @@ -842,19 +1280,20 @@ } let _value = '' - if (this.state.datatype[key] === 'datetime') { + let _type = this.state.datatype[key] + if (_type === 'datetime') { _value = values[key] ? moment(values[key]).format('YYYY-MM-DD HH:mm:ss') : '' - } else if (this.state.datatype[key] === 'datemonth') { + } else if (_type === 'datemonth') { _value = values[key] ? moment(values[key]).format('YYYY-MM') : '' - } else if (this.state.datatype[key] === 'date') { + } else if (_type === 'date') { _value = values[key] ? moment(values[key]).format('YYYY-MM-DD') : '' - } else if (this.state.datatype[key] === 'number') { + } else if (_type === 'number') { _value = values[key] - } else if (this.state.datatype[key] === 'multiselect') { + } else if (_type === 'multiselect' || _type === 'checkbox') { _value = values[key] ? values[key].join(',') : '' - } else if (this.state.datatype[key] === 'fileupload') { + } else if (_type === 'fileupload') { let vals = [] if (values[key] && values[key].length > 0) { @@ -868,43 +1307,35 @@ } _value = vals.join(',') - } else if (this.state.datatype[key] === 'text' || this.state.datatype[key] === 'textarea') { + } else if (_type === 'text' || _type === 'textarea') { _value = values[key].replace(/\t*|\v*/g, '') // 鍘婚櫎鍒惰〃绗� if (intercepts.includes(key)) { // 鍘婚櫎棣栧熬绌烘牸 _value = _value.replace(/(^\s*|\s*$)/g, '') } + if (_type === 'text' && _value) { // 鐗规畩瀛楁鏇挎崲 + _value = _value.replace(/^(\s*)@appkey@(\s*)$/ig, window.GLOB.appkey) + _value = _value.replace(/^(\s*)@SessionUid@(\s*)$/ig, (localStorage.getItem('SessionUid') || '')) + _value = _value.replace(/^(\s*)@bid@(\s*)$/ig, (this.props.BID || '')) + } } else { _value = values[key] - + } + + if (_value === undefined) { + _value = '' } search.push({ type: this.state.datatype[key], readonly: this.state.readtype[key], readin: this.state.readin[key], + writein: writein[key], fieldlen: this.state.fieldlen[key], key: key, value: _value }) }) - - // 鍚湁鍔犲瘑瀛楁鏃讹紝瀵硅〃鍗曞�艰繘琛屽姞瀵� - if (_encrypts && _encrypts.length > 0) { - search = search.map(item => { - let _value = item.value - if (_encrypts.includes(item.key)) { - try { - _value = window.btoa(window.encodeURIComponent(_value)) - } catch (e) { - console.warn(e) - } - } - item.value = _value - - return item - }) - } resolve(search) } else { @@ -915,69 +1346,14 @@ } handleSubmit = (e) => { - e.preventDefault() + e && e.preventDefault() this.props.inputSubmit() } render() { - const { formlist, cols } = this.state - const formItemLayout = { - labelCol: { - xs: { span: 24 }, - sm: { span: 8 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 } - } - } - - let _formlist = [] - let rowIndex = 0 - let colIndex = 0 - let filtration = {} - - // 琛ㄥ崟鍒嗚锛岄伩鍏嶆帓鍒椾笉鏁撮綈 - formlist.forEach(item => { - if ((!item.field && item.type !== 'title') || item.hidden === 'true' || item.type === 'funcvar') return - if (item.supField) { // 澶氬眰琛ㄥ崟鎺у埗 - let _supVal = this.props.form.getFieldValue(item.supField) - - if (_supVal === undefined && filtration[item.supField]) { - _supVal = filtration[item.supField] - } - - if (item.supvalue.includes(_supVal)) { - let _subVal = this.props.form.getFieldValue(item.field) - filtration[item.field] = _subVal === undefined ? item.initval : _subVal - } else { - return - } - } - - _formlist[rowIndex] = _formlist[rowIndex] || [] - if (item.type === 'textarea' || item.type === 'title') { - if (colIndex === 0) { - _formlist[rowIndex].push(item) - } else { - rowIndex++ - _formlist[rowIndex] = [item] - } - rowIndex++ - colIndex = 0 - } else { - _formlist[rowIndex].push(item) - colIndex++ - } - if (colIndex >= cols) { - rowIndex++ - colIndex = 0 - } - }) - return ( - <Form {...formItemLayout} className="ant-advanced-search-form main-form-field" id="main-form-box"> - {_formlist.map((formrow, index) => <Row key={index} gutter={24}>{this.getFields(formrow)}</Row>)} + <Form className="main-form-field" id="main-form-box"> + <Row gutter={24}>{this.getFields()}</Row> </Form> ) } -- Gitblit v1.8.0