65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Vue
		
	
	
<script>
 | 
						|
import Select, { Option } from '../index'
 | 
						|
import { fetch } from './tbFetchSuggest'
 | 
						|
import '../assets/index.less'
 | 
						|
 | 
						|
export default {
 | 
						|
  data () {
 | 
						|
    return {
 | 
						|
      disabled: false,
 | 
						|
      data: [],
 | 
						|
      value: undefined,
 | 
						|
    }
 | 
						|
  },
 | 
						|
  methods: {
 | 
						|
    onChange (value) {
 | 
						|
      console.log('select ', value)
 | 
						|
      // value.label = value.key
 | 
						|
      this.value = value
 | 
						|
    },
 | 
						|
    fetchData (value) {
 | 
						|
      if (value) {
 | 
						|
        fetch(value, (data) => {
 | 
						|
          this.data = data
 | 
						|
        })
 | 
						|
      } else {
 | 
						|
        this.data = []
 | 
						|
      }
 | 
						|
    },
 | 
						|
 | 
						|
    toggleDisabled () {
 | 
						|
      this.disabled = !this.disabled
 | 
						|
    },
 | 
						|
  },
 | 
						|
 | 
						|
  render () {
 | 
						|
    const data = this.data
 | 
						|
    const options = data.map((d) => {
 | 
						|
      return <Option key={d.value}><i>{d.text}</i></Option>
 | 
						|
    })
 | 
						|
    return (<div>
 | 
						|
      <h2>force suggest</h2>
 | 
						|
      <p>
 | 
						|
        <button onClick={this.toggleDisabled}>toggle disabled</button>
 | 
						|
      </p>
 | 
						|
      <div>
 | 
						|
        <Select
 | 
						|
          labelInValue
 | 
						|
          onSearch={this.fetchData}
 | 
						|
          disabled={this.disabled}
 | 
						|
          value={this.value}
 | 
						|
          optionLabelProp='children'
 | 
						|
          placeholder='placeholder'
 | 
						|
          defaultActiveFirstOption
 | 
						|
          style={{ width: '500px' }}
 | 
						|
          onChange={this.onChange}
 | 
						|
          filterOption={false}
 | 
						|
        >
 | 
						|
          {options}
 | 
						|
        </Select>
 | 
						|
      </div>
 | 
						|
    </div>)
 | 
						|
  },
 | 
						|
}
 | 
						|
</script>
 |