100 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Vue
		
	
	
| /* eslint-disable no-console */
 | |
| 
 | |
| import Select, { Option } from '..';
 | |
| import '../assets/index.less';
 | |
| 
 | |
| const Controlled = {
 | |
|   data: () => ({
 | |
|     destroy: false,
 | |
|     value: 9,
 | |
|     open: true,
 | |
|   }),
 | |
|   methods: {
 | |
|     onChange(e) {
 | |
|       let value;
 | |
|       if (e && e.target) {
 | |
|         ({ value } = e.target);
 | |
|       } else {
 | |
|         value = e;
 | |
|       }
 | |
|       console.log('onChange', value);
 | |
|       this.value = value;
 | |
|     },
 | |
| 
 | |
|     onDestroy() {
 | |
|       this.destroy = true;
 | |
|     },
 | |
| 
 | |
|     onBlur(v) {
 | |
|       console.log('onBlur', v);
 | |
|     },
 | |
| 
 | |
|     onFocus() {
 | |
|       console.log('onFocus');
 | |
|     },
 | |
| 
 | |
|     onDropdownVisibleChange(open) {
 | |
|       this.open = open;
 | |
|     },
 | |
|     getPopupContainer(node) {
 | |
|       return node.parentNode;
 | |
|     },
 | |
|   },
 | |
| 
 | |
|   render() {
 | |
|     const { open, destroy, value } = this;
 | |
|     if (destroy) {
 | |
|       return null;
 | |
|     }
 | |
|     return (
 | |
|       <div style={{ margin: '20px' }}>
 | |
|         <h2>controlled Select</h2>
 | |
|         <div style={{ width: '300px' }}>
 | |
|           <Select
 | |
|             id="my-select"
 | |
|             value={value}
 | |
|             placeholder="placeholder"
 | |
|             listHeight={200}
 | |
|             style={{ width: '500px' }}
 | |
|             onBlur={this.onBlur}
 | |
|             onFocus={this.onFocus}
 | |
|             open={open}
 | |
|             optionLabelProp="children"
 | |
|             optionFilterProp="text"
 | |
|             onChange={this.onChange}
 | |
|             onDropdownVisibleChange={this.onDropdownVisibleChange}
 | |
|             //getPopupContainer={this.getPopupContainer}
 | |
|           >
 | |
|             <Option value="01" text="jack" title="jack">
 | |
|               <b
 | |
|                 style={{
 | |
|                   color: 'red',
 | |
|                 }}
 | |
|               >
 | |
|                 jack
 | |
|               </b>
 | |
|             </Option>
 | |
|             <Option value="11" text="lucy">
 | |
|               lucy
 | |
|             </Option>
 | |
|             <Option value="21" disabled text="disabled">
 | |
|               disabled
 | |
|             </Option>
 | |
|             <Option value="31" text="yiminghe">
 | |
|               yiminghe
 | |
|             </Option>
 | |
|             {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(i => (
 | |
|               <Option key={i} value={i} text={String(i)}>
 | |
|                 {i}-text
 | |
|               </Option>
 | |
|             ))}
 | |
|           </Select>
 | |
|         </div>
 | |
|       </div>
 | |
|     );
 | |
|   },
 | |
| };
 | |
| 
 | |
| export default Controlled;
 | |
| /* eslint-enable */
 |