diff --git a/demo/debugComponents/selectDebug.vue b/demo/debugComponents/selectDebug.vue new file mode 100644 index 000000000..14a15e0fa --- /dev/null +++ b/demo/debugComponents/selectDebug.vue @@ -0,0 +1,41 @@ + + + + diff --git a/demo/demo.vue b/demo/demo.vue index 1a2a146e6..a58533bfb 100644 --- a/demo/demo.vue +++ b/demo/demo.vue @@ -392,6 +392,10 @@ export default { { name: 'IconTransitionDebug', path: `/${this.lang}/${this.theme}` + '/n-icon-transition-debug' + }, + { + name: 'SelectDebug', + path: `/${this.lang}/${this.theme}` + '/n-select-debug' } ] } diff --git a/demo/init.js b/demo/init.js index 5865dc447..118fd7c89 100644 --- a/demo/init.js +++ b/demo/init.js @@ -92,6 +92,7 @@ import cancelMarkDebug from './debugComponents/cancelMarkDebug' import cascaderDebug from './debugComponents/cascaderDebug' import verticalAlignDebug from './debugComponents/verticalAlignDebug' import iconTransitionDebug from './debugComponents/iconTransitionDebug' +import selectDebug from './debugComponents/selectDebug' import hljs from 'highlight.js/lib/highlight' import javascript from 'highlight.js/lib/languages/javascript' @@ -231,7 +232,8 @@ const routes = [ { path: '/n-icon-transition-debug', component: iconTransitionDebug - } + }, + { path: '/n-select-debug', component: selectDebug } ]) }, { diff --git a/packages/base/SelectMenu/src/SelectMenu.vue b/packages/base/SelectMenu/src/SelectMenu.vue index b4bac814f..67e3baefd 100644 --- a/packages/base/SelectMenu/src/SelectMenu.vue +++ b/packages/base/SelectMenu/src/SelectMenu.vue @@ -19,15 +19,7 @@ @scroll="handleMenuScroll" >
-
- -
- -
+
diff --git a/packages/base/SelectMenu/src/SelectOption.vue b/packages/base/SelectMenu/src/SelectOption.vue index aeb88e429..e5185d3cc 100644 --- a/packages/base/SelectMenu/src/SelectOption.vue +++ b/packages/base/SelectMenu/src/SelectOption.vue @@ -1,32 +1,10 @@ - - diff --git a/packages/base/SelectMenu/src/SelectOptionCollector.vue b/packages/base/SelectMenu/src/SelectOptionCollector.vue index 3a005def6..0db5894e4 100644 --- a/packages/base/SelectMenu/src/SelectOptionCollector.vue +++ b/packages/base/SelectMenu/src/SelectOptionCollector.vue @@ -63,11 +63,13 @@ export default { const children = getDefaultSlotOf(this) children.forEach((child, index) => { child.key = index - if (child.componentOptions) { - if (VALID_COMPONENT.includes(getComponentNameOf(child))) { - const propsData = getOptionPropsDataOf(child) - this.options.push(propsData) - } + /** + * If component name is valid, + * there must be data + */ + if (VALID_COMPONENT.includes(getComponentNameOf(child))) { + const propsData = getOptionPropsDataOf(child) + this.options.push({ ...propsData, children: child.children }) } }) } diff --git a/packages/base/SelectMenu/src/SelectRenderOptions.vue b/packages/base/SelectMenu/src/SelectRenderOptions.vue index ca4541d1f..e0e4fd482 100644 --- a/packages/base/SelectMenu/src/SelectRenderOptions.vue +++ b/packages/base/SelectMenu/src/SelectRenderOptions.vue @@ -1,37 +1,38 @@ diff --git a/packages/common/Dropdown/src/Dropdown.vue b/packages/common/Dropdown/src/Dropdown.vue index 9f99d18f5..64fc4295f 100644 --- a/packages/common/Dropdown/src/Dropdown.vue +++ b/packages/common/Dropdown/src/Dropdown.vue @@ -113,7 +113,7 @@ export default { blur: context.listeners.blur || (() => {}), select: context.listeners.select || (() => {}) }, - scopedSlots: context.scopedSlots + scopedSlots: { ...context.scopedSlots } }) } }, diff --git a/packages/common/Dropdown/src/DropdownMenu.vue b/packages/common/Dropdown/src/DropdownMenu.vue index e0eb89bd9..07bb6ea51 100644 --- a/packages/common/Dropdown/src/DropdownMenu.vue +++ b/packages/common/Dropdown/src/DropdownMenu.vue @@ -5,8 +5,7 @@ import asthemecontext from '../../../mixins/asthemecontext' import WrapWithValue from './WrapWithValue' import { NBaseSelectMenu, - NBaseSelectOptionCollector, - NBaseSelectRenderOptions + NBaseSelectOptionCollector } from '../../../base/SelectMenu' export default { @@ -202,15 +201,7 @@ export default { size: this.size, theme: this.synthesizedTheme } - }, [ - h(NBaseSelectRenderOptions, { - scopedSlots: { - default () { - return options - } - } - }) - ]) + }, options) ]) } } diff --git a/packages/common/Select/src/Select.vue b/packages/common/Select/src/Select.vue index d9ef6d003..0592596e0 100644 --- a/packages/common/Select/src/Select.vue +++ b/packages/common/Select/src/Select.vue @@ -64,7 +64,6 @@ :options="filteredOptions" :multiple="multiple" :size="size" - :remote="remote" :loading="loading" :no-data-content="noDataContent" :not-found-content="notFoundContent" @@ -72,12 +71,11 @@ :filterable="filterable" :is-selected="isSelected" :use-slot="useSlot" + :mirror="false" @menu-toggle-option="handleToggleOption" @menu-scroll="handleMenuScroll" > - - - +
@@ -93,8 +91,7 @@ import zindexable from '../../../mixins/zindexable' import clickoutside from '../../../directives/clickoutside' import { NBaseSelectMenu, - NBaseSelectOptionCollector, - NBaseSelectRenderOptions + NBaseSelectOptionCollector } from '../../../base/SelectMenu' import NBasePicker from '../../../base/Picker' import withapp from '../../../mixins/withapp' @@ -114,8 +111,7 @@ export default { components: { NBaseSelectMenu, NBasePicker, - NBaseSelectOptionCollector, - NBaseSelectRenderOptions + NBaseSelectOptionCollector }, directives: { clickoutside