| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { Transfer } from 'antd' |
| | | import { Transfer, Icon } from 'antd' |
| | | import './index.scss' |
| | | |
| | | class TransferForm extends Component { |
| | |
| | | } |
| | | |
| | | handleChange = (nextTargetKeys, direction, moveKeys) => { |
| | | console.log(direction) |
| | | console.log(moveKeys) |
| | | console.log(nextTargetKeys) |
| | | this.setState({ targetKeys: nextTargetKeys }) |
| | | } |
| | | |
| | |
| | | return { |
| | | key: item.uuid, |
| | | title: item.label, |
| | | field: item.field, |
| | | description: '' |
| | | } |
| | | }), |
| | |
| | | }) |
| | | } |
| | | |
| | | changeorder = (e, item, type) => { |
| | | const { targetKeys } = this.state |
| | | e.stopPropagation() |
| | | |
| | | let _index = 0 |
| | | let keys = targetKeys.filter((key, i) => { |
| | | if (key === item.key) { |
| | | _index = i |
| | | return false |
| | | } else { |
| | | return true |
| | | } |
| | | }) |
| | | |
| | | if ((_index === 0 && type === 'up') || (_index === targetKeys.length - 1 && type === 'down')) { |
| | | return |
| | | } |
| | | |
| | | if (type === 'up') { |
| | | keys.splice(_index - 1, 0, item.key) |
| | | } else { |
| | | keys.splice(_index + 1, 0, item.key) |
| | | } |
| | | |
| | | this.setState({ |
| | | targetKeys: keys |
| | | }) |
| | | } |
| | | |
| | | getItem = (item) => { |
| | | let content = item.title + '(' + item.field + ')' |
| | | return <span title={content}> |
| | | {content} |
| | | <Icon type="arrow-up" onClick={(e) => {this.changeorder(e, item, 'up')}} /> |
| | | <Icon type="arrow-down" onClick={(e) => {this.changeorder(e, item, 'down')}} /> |
| | | </span> |
| | | } |
| | | |
| | | render() { |
| | | const { targetKeys, selectedKeys } = this.state |
| | | |
| | | return ( |
| | | <div className="common-table-columns-transfer"> |
| | | <Transfer |
| | |
| | | selectedKeys={selectedKeys} |
| | | onChange={this.handleChange} |
| | | onSelectChange={this.handleSelectChange} |
| | | render={item => item.title} |
| | | render={this.getItem} |
| | | /> |
| | | </div> |
| | | ) |