/* 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>

    )
  },
}