From 9ee3d1f9a09a865188baffdffb85f6ad329c7b09 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 19 十二月 2021 01:09:20 +0800 Subject: [PATCH] 2021-12-19 --- src/menu/components/table/edit-table/columns/editColumn/index.jsx | 75 ++++++++++++++++++++++++++++--------- 1 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/menu/components/table/edit-table/columns/editColumn/index.jsx b/src/menu/components/table/edit-table/columns/editColumn/index.jsx index 17cfbda..d664236 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/index.jsx @@ -1,18 +1,21 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Form, Row, Col, Input, Select, InputNumber, Radio, Tooltip, Icon, Modal } from 'antd' +import { Form, Row, Col, Input, Select, InputNumber, Radio, Tooltip, Modal, notification } from 'antd' +import { QuestionCircleOutlined } from '@ant-design/icons' import { getColumnForm } from './formconfig' import { formRule } from '@/utils/option.js' import './index.scss' +const { TextArea } = Input const columnTypeOptions = { - text: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'prefix', 'postfix', 'textFormat', 'editable', 'blacklist'], - number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'sum', 'blacklist'], - textarea: ['label', 'field', 'type', 'Align', 'Hide', 'Width', 'prefix', 'postfix', 'blacklist'], + text: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'prefix', 'postfix', 'textFormat', 'editable', 'initval', 'blacklist'], + number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'initval', 'sum', 'blacklist'], + textarea: ['label', 'field', 'type', 'Align', 'Hide', 'Width', 'prefix', 'initval', 'postfix', 'blacklist'], custom: ['label', 'type', 'Align', 'Hide', 'Width', 'blacklist'], action: ['label', 'type', 'Align', 'Width'], + formula: ['label', 'type', 'Align', 'Hide', 'Width', 'prefix', 'postfix', 'eval', 'formula', 'blacklist'], index: ['label', 'type', 'Align', 'Width'] } @@ -44,9 +47,9 @@ if (column.editable === 'true') { if (column.type === 'text') { - _options.push('required', 'initval', 'enter', 'footEnter') + _options.push('required', 'enter', 'footEnter') } else if (column.type === 'number') { - _options.push('max', 'min', 'initval', 'enter', 'footEnter') + _options.push('max', 'min', 'enter', 'footEnter') } } @@ -59,16 +62,17 @@ return item }) - }, () => { - if (column.focus) { + }) + if (column.focus) { + setTimeout(() => { try { let _form = document.getElementById('label') _form && _form.select() } catch (e) { console.warn('琛ㄥ崟focus澶辫触锛�') } - } - }) + }, 200) + } } typeChange = (key, value, option) => { @@ -78,9 +82,9 @@ if (editable === 'true') { if (value === 'text') { - _options.push('required', 'initval', 'enter', 'footEnter') + _options.push('required', 'enter', 'footEnter') } else if (value === 'number') { - _options.push('max', 'min', 'initval', 'enter', 'footEnter') + _options.push('max', 'min', 'enter', 'footEnter') } } @@ -117,9 +121,9 @@ if (editable === 'true') { if (values.type === 'text') { - _options.push('required', 'initval', 'enter', 'footEnter') + _options.push('required', 'enter', 'footEnter') } else if (values.type === 'number') { - _options.push('max', 'min', 'initval', 'enter', 'footEnter') + _options.push('max', 'min', 'enter', 'footEnter') } } @@ -146,9 +150,9 @@ if (value === 'true') { if (type === 'text') { - _options.push('required', 'initval', 'enter', 'footEnter') + _options.push('required', 'enter', 'footEnter') } else if (type === 'number') { - _options.push('max', 'min', 'initval', 'enter', 'footEnter') + _options.push('max', 'min', 'enter', 'footEnter') } } @@ -185,7 +189,7 @@ <Col span={12} key={index}> <Form.Item label={item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> + <QuestionCircleOutlined className="mk-form-tip" /> {item.label} </Tooltip> : item.label }> @@ -207,7 +211,7 @@ <Col span={12} key={index}> <Form.Item label={item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> + <QuestionCircleOutlined className="mk-form-tip" /> {item.label} </Tooltip> : item.label }> @@ -258,7 +262,7 @@ <Col span={12} key={index}> <Form.Item label={item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> + <QuestionCircleOutlined className="mk-form-tip" /> {item.label} </Tooltip> : item.label }> @@ -304,15 +308,48 @@ </Form.Item> </Col> ) + } else if (item.type === 'textarea') { // 鏂囨湰鎼滅储 + fields.push( + <Col span={24} key={index} className="textarea"> + <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.required, + message: this.props.dict['form.required.input'] + item.label + '!' + } + ] + })(<TextArea rows={2} disabled={item.readonly} placeholder={item.placeholder || ''} />)} + </Form.Item> + </Col> + ) } }) return fields } handleSubmit = () => { + const { columns, column } = this.props // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { + values.uuid = column.uuid + values.marks = column.marks || [] + + if (values.field && columns.filter(col => col.field && col.uuid !== values.uuid && col.field === values.field).length > 0) { + notification.warning({ + top: 92, + message: '瀛楁宸叉坊鍔狅紒', + duration: 5 + }) + return + } this.setState({visible: false, formlist: null}) this.props.submitCol(values) } -- Gitblit v1.8.0