/** * Copyright (c) OpenSpug Organization. https://github.com/openspug/spug * Copyright (c) * Released under the MIT License. */ import React from 'react'; import { observer } from 'mobx-react'; import { Modal, Table, Input, Button, Select } from 'antd'; import { SearchForm } from 'components'; import store from '../../host/store'; @observer class HostSelector extends React.Component { constructor(props) { super(props); this.state = { selectedRows: [] } } componentDidMount() { if (store.records.length === 0) { store.fetchRecords() } } handleClick = (record) => { const {selectedRows} = this.state; const index = selectedRows.indexOf(record); if (index > -1) { selectedRows.splice(index, 1) } else { selectedRows.push(record) } this.setState({selectedRows}); }; handleSubmit = () => { this.props.onOk(this.state.selectedRows); this.props.onCancel() }; columns = [{ title: '类别', dataIndex: 'zone', }, { title: '主机名称', dataIndex: 'name', }, { title: '连结地址', dataIndex: 'hostname', }, { title: '端口', dataIndex: 'port' }, { title: '备注', dataIndex: 'desc', ellipsis: true }]; render() { const {selectedRows} = this.state; let data = store.records; if (store.f_name) { data = data.filter(item => item['name'].toLowerCase().includes(store.f_name.toLowerCase())) } if (store.f_zone) { data = data.filter(item => item['zone'].toLowerCase().includes(store.f_zone.toLowerCase())) } return ( store.f_name = e.target.value} placeholder="请输入"/> item.id), onChange: (_, selectedRows) => this.setState({selectedRows}) }} dataSource={data} loading={store.isFetching} onRow={record => { return { onClick: () => this.handleClick(record) } }} columns={this.columns}/> ) } } export default HostSelector