Commit 220161f5edb25fea9098e65f5a1e7df12f63078f

Authored by Sergio Crisostomo
1 parent 7d14e70c

Clean up empty/null entries

Showing 1 changed file with 13 additions and 13 deletions   Show diff stats
src/components/select/select.vue
... ... @@ -56,12 +56,12 @@
56 56 >
57 57 <ul v-show="showNotFoundLabel" :class="[prefixCls + '-not-found']"><li>{{ localeNotFoundText }}</li></ul>
58 58 <ul :class="prefixCls + '-dropdown-list'">
59   - <functional-options
60   - v-if="(!remote) || (remote && !loading)"
61   - :options="selectOptions"
62   - :slot-update-hook="updateSlotOptions"
63   - :slot-options="slotOptions"
64   - ></functional-options>
  59 + <functional-options
  60 + v-if="(!remote) || (remote && !loading)"
  61 + :options="selectOptions"
  62 + :slot-update-hook="updateSlotOptions"
  63 + :slot-options="slotOptions"
  64 + ></functional-options>
65 65 </ul>
66 66 <ul v-show="loading" :class="[prefixCls + '-loading']">{{ localeLoadingText }}</ul>
67 67 </Drop>
... ... @@ -207,7 +207,7 @@
207 207  
208 208 // set the initial values if there are any
209 209 if (this.values.length > 0 && !this.remote && this.selectOptions.length > 0){
210   - this.values = this.values.map(this.getOptionData);
  210 + this.values = this.values.map(this.getOptionData).filter(Boolean);
211 211 }
212 212  
213 213 if (this.values.length > 0 && this.selectOptions.length === 0){
... ... @@ -307,7 +307,7 @@
307 307 const slotOptions = (this.slotOptions || []);
308 308 let optionCounter = -1;
309 309 const currentIndex = this.focusIndex;
310   - const selectedValues = this.values.map(({value}) => value);
  310 + const selectedValues = this.values.filter(Boolean).map(({value}) => value);
311 311 if (this.autoComplete) {
312 312 const copyChildren = (node, fn) => {
313 313 return {
... ... @@ -398,7 +398,7 @@
398 398 const {multiple, value} = this;
399 399 let initialValue = Array.isArray(value) ? value : [value];
400 400 if (!multiple && (typeof initialValue[0] === 'undefined' || String(initialValue[0]).trim() === '')) initialValue = [];
401   - return initialValue;
  401 + return initialValue.filter(Boolean);
402 402 },
403 403 processOption(option, values, isFocused){
404 404 if (!option.componentOptions) return option;
... ... @@ -580,7 +580,7 @@
580 580  
581 581 if (value === '') this.values = [];
582 582 else if (JSON.stringify(value) !== JSON.stringify(publicValue)) {
583   - this.$nextTick(() => this.values = getInitialValue().map(getOptionData));
  583 + this.$nextTick(() => this.values = getInitialValue().map(getOptionData).filter(Boolean));
584 584 }
585 585 },
586 586 values(now, before){
... ... @@ -592,8 +592,8 @@
592 592 // v-model is always just the value, event with labelInValue === true
593 593 const vModelValue = this.labelInValue ?
594 594 (this.multiple ? this.publicValue.map(({value}) => value)
595   - :
596   - this.publicValue.value) : this.publicValue;
  595 + :
  596 + this.publicValue.value) : this.publicValue;
597 597 this.$emit('input', vModelValue); // to update v-model
598 598 this.$emit('on-change', this.publicValue);
599 599 this.dispatch('FormItem', 'on-form-change', this.publicValue);
... ... @@ -659,7 +659,7 @@
659 659 },
660 660 selectOptions(){
661 661 if (this.hasExpectedValue){
662   - this.values = this.values.map(this.getOptionData);
  662 + this.values = this.values.map(this.getOptionData).filter(Boolean);
663 663 this.hasExpectedValue = false;
664 664 }
665 665  
... ...