U 优化主机选择支持搜索匹配

pull/115/head
vapao 2020-06-02 18:56:18 +08:00
parent b6cb7fb16c
commit bf469cc043
6 changed files with 31 additions and 7 deletions

View File

@ -41,12 +41,15 @@ class Ext1Setup2 extends React.Component {
<React.Fragment key={index}> <React.Fragment key={index}>
<Select <Select
value={id} value={id}
showSearch
placeholder="请选择" placeholder="请选择"
style={{width: '80%', marginRight: 10}} style={{width: '80%', marginRight: 10}}
optionFilterProp="children"
filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
onChange={v => store.editHost(index, v)}> onChange={v => store.editHost(index, v)}>
{hostStore.records.map(item => ( {hostStore.records.map(item => (
<Select.Option key={item.id} value={item.id} disabled={info['host_ids'].includes(item.id)}> <Select.Option key={item.id} value={item.id} disabled={info['host_ids'].includes(item.id)}>
{item.name}({item['hostname']}:{item['port']}) {`${item.name}(${item['hostname']}:${item['port']})`}
</Select.Option> </Select.Option>
))} ))}
</Select> </Select>

View File

@ -27,12 +27,15 @@ class Ext2Setup2 extends React.Component {
<React.Fragment key={index}> <React.Fragment key={index}>
<Select <Select
value={id} value={id}
showSearch
placeholder="请选择" placeholder="请选择"
optionFilterProp="children"
style={{width: '80%', marginRight: 10}} style={{width: '80%', marginRight: 10}}
filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
onChange={v => store.editHost(index, v)}> onChange={v => store.editHost(index, v)}>
{hostStore.records.map(item => ( {hostStore.records.map(item => (
<Select.Option key={item.id} value={item.id} disabled={info['host_ids'].includes(item.id)}> <Select.Option key={item.id} value={item.id} disabled={info['host_ids'].includes(item.id)}>
{item.name}({item['hostname']}:{item['port']}) {`${item.name}(${item['hostname']}:${item['port']})`}
</Select.Option> </Select.Option>
))} ))}
</Select> </Select>

View File

@ -9,6 +9,10 @@
top: 4px top: 4px
} }
.delIcon:hover {
color: #f5222d;
}
.deployBlock { .deployBlock {
height: 100px; height: 100px;
margin-top: 63px; margin-top: 63px;

View File

@ -143,10 +143,17 @@ class ComForm extends React.Component {
<Input value={addr['2']} placeholder="请输入监控地址IP/域名)" onChange={e => this.handleAddr('2', e)}/> <Input value={addr['2']} placeholder="请输入监控地址IP/域名)" onChange={e => this.handleAddr('2', e)}/>
</Form.Item> </Form.Item>
<Form.Item required label="监控主机" style={this.getStyle('34')}> <Form.Item required label="监控主机" style={this.getStyle('34')}>
<Select value={addr['3']} placeholder="请选择主机" onChange={v => this.handleAddr('3', v)}> <Select
showSearch
value={addr['3']}
placeholder="请选择主机"
optionFilterProp="children"
filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
onChange={v => this.handleAddr('3', v)}>
{hostStore.records.map(item => ( {hostStore.records.map(item => (
<Select.Option value={String(item.id)} <Select.Option value={String(item.id)} key={item.id}>
key={item.id}>{item.name}({item.hostname}:{item.port})</Select.Option> {`${item.name}(${item.hostname}:${item.port})`}
</Select.Option>
))} ))}
</Select> </Select>
</Form.Item> </Form.Item>

View File

@ -177,13 +177,16 @@ class ComForm extends React.Component {
<React.Fragment key={index}> <React.Fragment key={index}>
<Select <Select
value={id} value={id}
showSearch
placeholder="请选择" placeholder="请选择"
style={{width: '60%', marginRight: 10}} optionFilterProp="children"
style={{width: '80%', marginRight: 10}}
filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
onChange={v => store.editTarget(index, v)}> onChange={v => store.editTarget(index, v)}>
<Select.Option value="local" disabled={store.targets.includes('local')}>本机</Select.Option> <Select.Option value="local" disabled={store.targets.includes('local')}>本机</Select.Option>
{hostStore.records.map(item => ( {hostStore.records.map(item => (
<Select.Option key={item.id} value={item.id} disabled={store.targets.includes(item.id)}> <Select.Option key={item.id} value={item.id} disabled={store.targets.includes(item.id)}>
{item.name}({item['hostname']}:{item['port']}) {`${item.name}(${item['hostname']}:${item['port']})`}
</Select.Option> </Select.Option>
))} ))}
</Select> </Select>

View File

@ -8,3 +8,7 @@
position: relative; position: relative;
top: 4px top: 4px
} }
.delIcon:hover {
color: #f5222d;
}