mirror of https://github.com/openspug/spug
U 优化主机选择体验
parent
2c39b8db89
commit
f97a052b99
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
import React from 'react';
|
||||
import { observer } from 'mobx-react';
|
||||
import { Modal, Table, Input, Button, Select, Checkbox } from 'antd';
|
||||
import { Modal, Table, Input, Button, Select } from 'antd';
|
||||
import { SearchForm } from 'components';
|
||||
import store from '../../host/store';
|
||||
|
||||
|
@ -35,21 +35,6 @@ class HostSelector extends React.Component {
|
|||
this.setState({selectedRows});
|
||||
};
|
||||
|
||||
handleCheck = (e) => {
|
||||
if (e.target.checked) {
|
||||
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()))
|
||||
}
|
||||
this.setState({selectedRows: data})
|
||||
} else {
|
||||
this.setState({selectedRows: []})
|
||||
}
|
||||
};
|
||||
|
||||
handleSubmit = () => {
|
||||
this.props.onOk(this.state.selectedRows);
|
||||
this.props.onCancel()
|
||||
|
@ -83,6 +68,7 @@ class HostSelector extends React.Component {
|
|||
if (store.f_zone) {
|
||||
data = data.filter(item => item['zone'].toLowerCase().includes(store.f_zone.toLowerCase()))
|
||||
}
|
||||
const dataIds = data.map(x => x.id);
|
||||
return (
|
||||
<Modal
|
||||
visible
|
||||
|
@ -102,8 +88,8 @@ class HostSelector extends React.Component {
|
|||
<SearchForm.Item span={8} title="主机别名">
|
||||
<Input allowClear value={store.f_name} onChange={e => store.f_name = e.target.value} placeholder="请输入"/>
|
||||
</SearchForm.Item>
|
||||
<SearchForm.Item span={4} title="全选">
|
||||
<Checkbox onChange={this.handleCheck}/>
|
||||
<SearchForm.Item span={4} title="已选">
|
||||
{selectedRows.length} 台
|
||||
</SearchForm.Item>
|
||||
<SearchForm.Item span={4}>
|
||||
<Button type="primary" icon="sync" onClick={store.fetchRecords}>刷新</Button>
|
||||
|
@ -113,7 +99,10 @@ class HostSelector extends React.Component {
|
|||
rowKey="id"
|
||||
rowSelection={{
|
||||
selectedRowKeys: selectedRows.map(item => item.id),
|
||||
onChange: (_, selectedRows) => this.setState({selectedRows})
|
||||
onChange: (_, rows) => {
|
||||
let tmp = selectedRows.filter(x => !dataIds.includes(x.id))
|
||||
this.setState({selectedRows: tmp.concat(rows)})
|
||||
}
|
||||
}}
|
||||
dataSource={data}
|
||||
loading={store.isFetching}
|
||||
|
@ -122,6 +111,8 @@ class HostSelector extends React.Component {
|
|||
onClick: () => this.handleClick(record)
|
||||
}
|
||||
}}
|
||||
pagination={false}
|
||||
scroll={{y: 480}}
|
||||
columns={this.columns}/>
|
||||
</Modal>
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue