Commit 2bdeea65ec622036b516561b45a455dd4aaa6b71
1 parent
dcb48397
fix #4626 , close #4888
Showing
1 changed file
with
18 additions
and
3 deletions
Show diff stats
src/components/select/select.vue
@@ -631,8 +631,8 @@ | @@ -631,8 +631,8 @@ | ||
631 | } | 631 | } |
632 | this.broadcast('Drop', 'on-update-popper'); | 632 | this.broadcast('Drop', 'on-update-popper'); |
633 | setTimeout(() => { | 633 | setTimeout(() => { |
634 | - this.filterQueryChange = false; | ||
635 | - },300) | 634 | + this.filterQueryChange = false; |
635 | + }, ANIMATION_TIMEOUT); | ||
636 | }, | 636 | }, |
637 | onQueryChange(query) { | 637 | onQueryChange(query) { |
638 | if (query.length > 0 && query !== this.query) this.visible = true; | 638 | if (query.length > 0 && query !== this.query) this.visible = true; |
@@ -753,12 +753,27 @@ | @@ -753,12 +753,27 @@ | ||
753 | 753 | ||
754 | // 当 dropdown 一开始在控件下部显示,而滚动页面后变成在上部显示,如果选项列表的长度由内部动态变更了(搜索情况) | 754 | // 当 dropdown 一开始在控件下部显示,而滚动页面后变成在上部显示,如果选项列表的长度由内部动态变更了(搜索情况) |
755 | // dropdown 的位置不会重新计算,需要重新计算 | 755 | // dropdown 的位置不会重新计算,需要重新计算 |
756 | - this.broadcast('Drop', 'on-update-popper'); | 756 | + this.broadcast('Drop', 'on-update-popper'); |
757 | }, | 757 | }, |
758 | visible(state){ | 758 | visible(state){ |
759 | this.$emit('on-open-change', state); | 759 | this.$emit('on-open-change', state); |
760 | }, | 760 | }, |
761 | slotOptions(options, old){ | 761 | slotOptions(options, old){ |
762 | + // #4626,当 Options 的 label 更新时,v-model 的值未更新 | ||
763 | + if (options && options.length && this.values.length) { | ||
764 | + this.values = this.values.map(value => { | ||
765 | + const option = options.find(option => option.componentOptions.propsData.value === value.value); | ||
766 | + | ||
767 | + if(!option) return null; | ||
768 | + | ||
769 | + const label = getOptionLabel(option); | ||
770 | + return { | ||
771 | + value: value.value, | ||
772 | + label: label | ||
773 | + }; | ||
774 | + }).filter(Boolean); | ||
775 | + } | ||
776 | + | ||
762 | // 当 dropdown 在控件上部显示时,如果选项列表的长度由外部动态变更了, | 777 | // 当 dropdown 在控件上部显示时,如果选项列表的长度由外部动态变更了, |
763 | // dropdown 的位置会有点问题,需要重新计算 | 778 | // dropdown 的位置会有点问题,需要重新计算 |
764 | if (options && old && options.length !== old.length) { | 779 | if (options && old && options.length !== old.length) { |