update Select
This commit is contained in:
parent
1a97aa898d
commit
ea3648b3c2
2 changed files with 62 additions and 40 deletions
|
@ -1,53 +1,75 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<Row>
|
||||||
<Select v-model="model1" style="width:200px">
|
<Col span="12" style="padding-right:10px">
|
||||||
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
<Select
|
||||||
|
v-model="model13"
|
||||||
|
filterable
|
||||||
|
remote
|
||||||
|
:remote-method="remoteMethod1"
|
||||||
|
:loading="loading1">
|
||||||
|
<Option v-for="(option, index) in options1" :value="option.value" :key="index">{{option.label}}</Option>
|
||||||
</Select>
|
</Select>
|
||||||
|
</Col>
|
||||||
<Select v-model="model2" multiple style="width:200px">
|
<Col span="12">
|
||||||
<Option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
<Select
|
||||||
|
v-model="model14"
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
remote
|
||||||
|
:remote-method="remoteMethod2"
|
||||||
|
:loading="loading2">
|
||||||
|
<Option v-for="(option, index) in options2" :value="option.value" :key="index">{{option.label}}</Option>
|
||||||
</Select>
|
</Select>
|
||||||
|
</Col>
|
||||||
<Button type="primary" @click="changeData">changeData</Button>
|
</Row>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
cityList: [
|
model13: '',
|
||||||
{
|
loading1: false,
|
||||||
value: 'New York',
|
options1: [],
|
||||||
label: 'New York'
|
model14: [],
|
||||||
},
|
loading2: false,
|
||||||
{
|
options2: [],
|
||||||
value: 'London',
|
list: ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New hampshire', 'New jersey', 'New mexico', 'New york', 'North carolina', 'North dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode island', 'South carolina', 'South dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West virginia', 'Wisconsin', 'Wyoming']
|
||||||
label: 'London'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'Sydney',
|
|
||||||
label: 'Sydney'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'Ottawa',
|
|
||||||
label: 'Ottawa'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'Paris',
|
|
||||||
label: 'Paris'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'Canberra',
|
|
||||||
label: 'Canberra'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
model1: '',
|
|
||||||
model2: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
changeData() {
|
remoteMethod1 (query) {
|
||||||
this.model2.push('Canberra')
|
if (query !== '') {
|
||||||
|
this.loading1 = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
this.loading1 = false;
|
||||||
|
const list = this.list.map(item => {
|
||||||
|
return {
|
||||||
|
value: item,
|
||||||
|
label: item
|
||||||
|
};
|
||||||
|
});
|
||||||
|
this.options1 = list.filter(item => item.label.toLowerCase().indexOf(query.toLowerCase()) > -1);
|
||||||
|
}, 200);
|
||||||
|
} else {
|
||||||
|
this.options1 = [];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
remoteMethod2 (query) {
|
||||||
|
if (query !== '') {
|
||||||
|
this.loading2 = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
this.loading2 = false;
|
||||||
|
const list = this.list.map(item => {
|
||||||
|
return {
|
||||||
|
value: item,
|
||||||
|
label: item
|
||||||
|
};
|
||||||
|
});
|
||||||
|
this.options2 = list.filter(item => item.label.toLowerCase().indexOf(query.toLowerCase()) > -1);
|
||||||
|
}, 200);
|
||||||
|
} else {
|
||||||
|
this.options2 = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -761,7 +761,7 @@
|
||||||
},
|
},
|
||||||
slotOptions(options, old){
|
slotOptions(options, old){
|
||||||
// #4626,当 Options 的 label 更新时,v-model 的值未更新
|
// #4626,当 Options 的 label 更新时,v-model 的值未更新
|
||||||
if (options && options.length && this.values.length) {
|
if (options && options.length && this.values.length && !this.multiple) {
|
||||||
this.values = this.values.map(value => {
|
this.values = this.values.map(value => {
|
||||||
const option = options.find(option => {
|
const option = options.find(option => {
|
||||||
if (!option.componentOptions) return false;
|
if (!option.componentOptions) return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue