From f068c617b918fc7817c11724424cb1a9149ec3a2 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 09 一月 2020 16:51:10 +0800 Subject: [PATCH] 2020-01-09 --- src/tabviews/tableshare/mutilform/index.jsx | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/tabviews/tableshare/mutilform/index.jsx b/src/tabviews/tableshare/mutilform/index.jsx index a4750de..83fe6a0 100644 --- a/src/tabviews/tableshare/mutilform/index.jsx +++ b/src/tabviews/tableshare/mutilform/index.jsx @@ -2,6 +2,7 @@ import PropTypes from 'prop-types' import { Form, Row, Col, Input, InputNumber, Select, DatePicker, notification } from 'antd' import moment from 'moment' +import { formRule } from '@/utils/option.js' import Utils from '@/utils/utils.js' import FileUpload from '../fileupload' import './index.scss' @@ -57,6 +58,8 @@ }) } + let _inputfields = formlist.filter(item => item.type === 'text' || item.type === 'number') // 鐢ㄤ簬杩囨护涓嬫媺鑿滃崟鍏宠仈琛ㄥ崟 + formlist = formlist.map(item => { if (item.type === 'select' || item.type === 'link') { if (item.setAll === 'true') { @@ -72,6 +75,11 @@ } item.oriOptions = JSON.parse(JSON.stringify(item.options)) + + if (item.linkSubField && item.linkSubField.length > 0) { + let _fields = _inputfields.map(_item => _item.field) + item.linkSubField = item.linkSubField.filter(_item => _fields.includes(_item)) + } } if (!/^date/.test(item.type) && this.props.data && this.props.data.hasOwnProperty(item.field)) { @@ -154,7 +162,7 @@ } } - selectChange = (_field, value) => { + selectChange = (_field, value, option) => { let formlist = JSON.parse(JSON.stringify(this.state.formlist)) let subfields = [] @@ -168,6 +176,16 @@ } return item }) + + // 琛ㄥ崟鍒囨崲鏃讹紝鏇存柊鍏宠仈瀛楁 + if (_field.type === 'select' && _field.linkSubField && _field.linkSubField.length > 0 && option.props.data) { + let _data = option.props.data + let fieldVal = {} + _field.linkSubField.forEach(subfield => { + fieldVal[subfield] = _data[subfield] + }) + this.props.form.setFieldsValue(fieldVal) + } if (subfields.length === 0) return @@ -225,6 +243,10 @@ { required: item.required === 'true', message: this.props.dict['form.required.input'] + item.label + '!' + }, + { + max: formRule.input.max, + message: formRule.input.message } ] })(<Input placeholder="" autoComplete="off" disabled={item.readonly === 'true'} onPressEnter={this.handleSubmit} />)} @@ -264,6 +286,11 @@ </Col> ) } else if (item.type === 'select' || item.type === 'link') { // 涓嬫媺鎼滅储 + let hasSubField = false + if (item.linkSubField && item.linkSubField.length > 0) { // 瀛樺湪鍏宠仈瀛楁锛屾暟鎹瓨鍌� + hasSubField = true + } + fields.push( <Col span={24 / cols} key={index}> <Form.Item label={item.label}> @@ -279,11 +306,10 @@ <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - onChange={(value) => {this.selectChange(item, value)}} - // getPopupContainer={() => document.getElementById('form-box')} + onChange={(value, option) => {this.selectChange(item, value, option)}} > {item.options.map(option => - <Select.Option id={option.key} title={option.Text} key={option.key} value={option.Value}>{option.Text}</Select.Option> + <Select.Option id={option.key} data={hasSubField ? option : ''} title={option.Text} key={option.key} value={option.Value}>{option.Text}</Select.Option> )} </Select> )} -- Gitblit v1.8.0