/* eslint-disable no-console,func-names,react/no-multi-comp */ import Table from '../index' import '../assets/index.less' import Menu from '../../menu' const Item = Menu.Item const Divider = Menu.Divider import DropDown from '../../dropdown' const data = [] for (let i = 0; i < 10; i++) { data.push({ key: i, a: `a${i}`, b: `b${i}`, c: `c${i}`, }) } export default { data () { this.filters = [] return { visible: false, } }, methods: { handleVisibleChange (visible) { this.visible = visible }, handleSelect (selected) { this.filters.push(selected) }, handleDeselect (key) { const index = this.filters.indexOf(key) if (index !== -1) { this.filters.splice(index, 1) } }, confirmFilter () { console.log(this.filters.join(',')) this.visible = false }, }, render () { const menu = ( <Menu style={{ width: '200px' }} multiple selectable onSelect={this.handleSelect} onDeselect={this.handleDeselect} > <Item key='1'>one</Item> <Item key='2'>two</Item> <Item key='3'>three</Item> <Divider /> <Item disabled> <button style={{ cursor: 'pointer', color: '#000', pointerEvents: 'visible', }} onClick={this.confirmFilter} >确定</button> </Item> </Menu> ) const columns = [ { title: ( <div> title1 <DropDown trigger={['click']} onVisibleChange={this.handleVisibleChange} visible={this.visible} > <template slot='overlay'> {menu} </template> <a href='#'>filter</a> </DropDown> </div> ), key: 'a', dataIndex: 'a', width: 100, }, { title: 'title2', key: 'b', dataIndex: 'b', width: 100 }, { title: 'title3', key: 'c', dataIndex: 'c', width: 200 }, ] return ( <div> <h2>use dropdown</h2> <Table columns={columns} data={data} rowKey={record => record.key} /> </div> ) }, }