UNPKG

cjd-parkball

Version:

> 中后台业务组件库,中后台就像公园,进入需要买门票(登录),所以以 Parkball(公园球) 命名,公园内必定捕获!作为一个组件库,提供使用方法文档,方便开发者的调用

127 lines (105 loc) 2.93 kB
--- category: 2 title: 查询模式 - 不确定类目 title_en: Lookup-Patterns - Uncertain Category --- zh-CN [查询模式: 不确定类目](https://ant.design/docs/spec/reaction#Lookup-Patterns) 示例。 en-US Demonstration of [Lookup Patterns: Uncertain Category](https://ant.design/docs/spec/reaction#Lookup-Patterns). Basic Usage, set datasource of autocomplete with `dataSource` property. ````jsx import { Icon, Button, Input, AutoComplete } from 'parkball'; const Option = AutoComplete.Option; function onSelect(value) { console.log('onSelect', value); } function getRandomInt(max, min = 0) { return Math.floor(Math.random() * (max - min + 1)) + min; // eslint-disable-line no-mixed-operators } function searchResult(query) { return (new Array(getRandomInt(5))).join('.').split('.') .map((item, idx) => ({ query, category: `${query}${idx}`, count: getRandomInt(200, 100), })); } function renderOption(item) { return ( <Option key={item.category} text={item.category}> {item.query} 在 <a href={`https://s.taobao.com/search?q=${item.query}`} target="_blank" rel="noopener noreferrer" > {item.category} </a> 区块中 <span className="global-search-item-count">约 {item.count} 个结果</span> </Option> ); } class Complete extends React.Component { state = { dataSource: [], } handleSearch = (value) => { this.setState({ dataSource: value ? searchResult(value) : [], }); } render() { const { dataSource } = this.state; return ( <div className="global-search-wrapper" style={{ width: 300 }}> <AutoComplete className="global-search" size="large" style={{ width: '100%' }} dataSource={dataSource.map(renderOption)} onSelect={onSelect} onSearch={this.handleSearch} placeholder="input here" optionLabelProp="text" > <Input suffix={( <Button className="search-btn" size="large" type="primary"> <Icon type="search" /> </Button> )} /> </AutoComplete> </div> ); } } ReactDOM.render(<Complete />, mountNode); ```` ````css .global-search-wrapper { padding-right: 50px; } .global-search { width: 100%; } .global-search.ant-select-auto-complete .ant-select-selection--single { margin-right: -46px; } .global-search.ant-select-auto-complete .ant-input-affix-wrapper .ant-input:not(:last-child) { padding-right: 62px; } .global-search.ant-select-auto-complete .ant-input-affix-wrapper .ant-input-suffix { right: 0; } .global-search.ant-select-auto-complete .ant-input-affix-wrapper .ant-input-suffix button { border-top-left-radius: 0; border-bottom-left-radius: 0; } .global-search-item-count { position: absolute; right: 16px; } ````