ant-design-vue/components/vc-select/demo/multiple.vue

75 lines
1.7 KiB
Vue
Raw Normal View History

2018-02-12 10:10:51 +00:00
<script>
import Select, { Option } from '../index'
import '../assets/index.less'
export default {
data () {
return {
useAnim: 0,
value: ['a10'],
}
},
methods: {
onChange (value, options) {
console.log('onChange', value, options)
this.value = value
},
onSelect (...args) {
console.log('select ', args)
},
onDeselect (...args) {
console.log('deselect ', args)
},
useAnimation (e) {
this.useAnim = e.target.checked
},
},
render () {
const children = []
for (let i = 10; i < 36; i++) {
children.push(
<Option key={i.toString(36) + i} disabled={i === 10} title={`中文${i}`}>
中文{i}
</Option>
)
}
const dropdownMenuStyle = {
maxHeight: '200px',
}
return (<div>
<h2>multiple selectscroll the menu</h2>
<p>
<label>
anim
<input checked={this.useAnim} type='checkbox' onChange={this.useAnimation} />
</label>
</p>
<div style={{ width: '300px' }}>
<Select
value={this.value}
animation={this.useAnim ? 'slide-up' : null}
choiceTransitionName='rc-select-selection__choice-zoom'
dropdownMenuStyle={dropdownMenuStyle}
style={{ width: '500px' }}
multiple
allowClear
optionFilterProp='children'
optionLabelProp='children'
onSelect={this.onSelect}
onDeselect={this.onDeselect}
placeholder='please select'
onChange={this.onChange}
onFocus={() => console.log('focus')}
tokenSeparators={[' ', ',']}
>
{children}
</Select>
</div>
</div>)
},
}
</script>