| | |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { DndProvider, DragSource, DropTarget } from 'react-dnd' |
| | | import { Table, Input, Popconfirm, Form, notification } from 'antd' |
| | | import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons' |
| | | import { Table, Input, Popconfirm, Form, notification, message } from 'antd' |
| | | import { PlusOutlined, EditOutlined, DeleteOutlined, SwapOutlined } from '@ant-design/icons' |
| | | |
| | | import Utils from '@/utils/utils.js' |
| | | import FileUpload from '@/tabviews/zshare/fileupload' |
| | |
| | | return ( |
| | | <td {...restProps}> |
| | | {editing ? ( |
| | | <Form.Item style={{ margin: 0 }}> |
| | | <Form.Item style={{ margin: '0 -5px 0 -5px' }}> |
| | | {getFieldDecorator(dataIndex, { |
| | | rules: [ |
| | | { |
| | | required: dataIndex === '$value', |
| | | message: `Please Input ${title}!`, |
| | | }, |
| | | ], |
| | | // rules: [ |
| | | // { |
| | | // required: dataIndex === '$value', |
| | | // message: `Please Input ${title}!`, |
| | | // }, |
| | | // ], |
| | | initialValue: _val, |
| | | })(this.getInput(form))} |
| | | </Form.Item> |
| | |
| | | ) : ( |
| | | <div className={'operation-btn' + (editingKey !== '' ? ' disabled' : '')}> |
| | | <span className="primary" onClick={() => {editingKey === '' && this.edit(record.key)}}><EditOutlined /></span> |
| | | <span className="hide-control" title="显示/隐藏" onClick={() => {editingKey === '' && this.handleHide(record.key)}}><SwapOutlined /></span> |
| | | {editingKey === '' ? <Popconfirm |
| | | overlayClassName="popover-confirm" |
| | | title={this.props.dict['model.query.delete']} |
| | |
| | | } |
| | | |
| | | onSave = (record) => { |
| | | const { type } = this.props |
| | | const newData = [...this.state.data] |
| | | const index = newData.findIndex(item => record.key === item.key) |
| | | |
| | | if (type === 'link') { |
| | | if (newData.filter(m => record.key !== m.key && record.$value === m.$value && record.ParentID === m.ParentID).length > 0) { |
| | | message.warning('相同ParentID下,此Value值已存在!') |
| | | } |
| | | } else { |
| | | if (newData.filter(m => record.key !== m.key && record.$value === m.$value).length > 0) { |
| | | message.warning('此Value值已存在!') |
| | | } |
| | | } |
| | | |
| | | if (index > -1) { |
| | | newData.splice(index, 1, record) |
| | | this.setState({ data: newData, editingKey: '' }, () => { |
| | |
| | | } |
| | | |
| | | save(form, key) { |
| | | const { type } = this.props |
| | | |
| | | form.validateFields((error, row) => { |
| | | if (error) { |
| | | return; |
| | |
| | | |
| | | const newData = [...this.state.data] |
| | | const index = newData.findIndex(item => key === item.key) |
| | | |
| | | if (type === 'link') { |
| | | if (newData.filter(m => key !== m.key && row.$value === m.$value && row.ParentID === m.ParentID).length > 0) { |
| | | message.warning('相同ParentID下,此Value值已存在!') |
| | | } |
| | | } else { |
| | | if (newData.filter(m => key !== m.key && row.$value === m.$value).length > 0) { |
| | | message.warning('此Value值已存在!') |
| | | } |
| | | } |
| | | |
| | | if (index > -1) { |
| | | const item = newData[index] |
| | | newData.splice(index, 1, { |
| | |
| | | |
| | | edit(key) { |
| | | this.setState({ editingKey: key }) |
| | | } |
| | | |
| | | handleHide = (key) => { |
| | | let _data = this.state.data.map(item => { |
| | | if (item.key === key) { |
| | | item.Hide = !item.Hide |
| | | } |
| | | return item |
| | | }) |
| | | this.setState({ |
| | | data: _data |
| | | }, () => { |
| | | this.props.onChange(_data) |
| | | }) |
| | | } |
| | | |
| | | moveRow = (dragIndex, hoverIndex) => { |
| | |
| | | rowKey="key" |
| | | dataSource={this.state.data} |
| | | columns={columns} |
| | | rowClassName="editable-row" |
| | | rowClassName={(record) => record.Hide ? 'editable-row hide' : 'editable-row'} |
| | | onRow={(record, index) => ({ |
| | | index, |
| | | moveAble: !this.state.editingKey, |