fix(components): [select-v2] with teleported="false" dropdown closes abnormally (#16714)

fix(components): with teleported="false" dropdown closes bug

Move toggleMenu click event to the right place wrapperRef
Only wrapperRef can control tooltip content visble or not

closed #16653
This commit is contained in:
guetHe 2024-06-20 08:01:05 +08:00 committed by GitHub
parent 32ed206b1f
commit db0fec864a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 6 deletions

View File

@ -206,7 +206,8 @@ describe('Select', () => {
DEFAULT_PLACEHOLDER
)
const select = wrapper.findComponent(Select)
await wrapper.trigger('click')
const tipDefWrapper = wrapper.find(`.${WRAPPER_CLASS_NAME}`)
await tipDefWrapper.trigger('click')
expect((select.vm as any).expanded).toBeTruthy()
})
@ -465,7 +466,8 @@ describe('Select', () => {
})
await nextTick()
const vm = wrapper.vm as any
await wrapper.trigger('click')
const tipDefWrapper = wrapper.find(`.${WRAPPER_CLASS_NAME}`)
await tipDefWrapper.trigger('click')
await nextTick()
expect(vm.visible).toBeTruthy()
})
@ -1541,7 +1543,8 @@ describe('Select', () => {
const select = wrapper.findComponent(Select)
const selectVm = select.vm as any
const vm = wrapper.vm as any
await wrapper.trigger('click')
const tipDefWrapper = wrapper.find(`.${WRAPPER_CLASS_NAME}`)
await tipDefWrapper.trigger('click')
await nextTick()
expect(selectVm.states.hoveringIndex).toBe(-1)
// should skip the disabled option
@ -1634,7 +1637,8 @@ describe('Select', () => {
const wrapper = createSelect()
await nextTick()
const select = wrapper.findComponent(Select)
await wrapper.trigger('click')
const tipDefWrapper = wrapper.find(`.${WRAPPER_CLASS_NAME}`)
await tipDefWrapper.trigger('click')
expect((select.vm as any).expanded).toBeTruthy()
const box = document.querySelector<HTMLElement>('.el-vl__wrapper')
expect(hasClass(box, 'always-on')).toBe(false)
@ -1650,7 +1654,8 @@ describe('Select', () => {
})
await nextTick()
const select = wrapper.findComponent(Select)
await wrapper.trigger('click')
const tipDefWrapper = wrapper.find(`.${WRAPPER_CLASS_NAME}`)
await tipDefWrapper.trigger('click')
expect((select.vm as any).expanded).toBeTruthy()
const box = document.querySelector<HTMLElement>('.el-vl__wrapper')
expect(hasClass(box, 'always-on')).toBe(true)

View File

@ -5,7 +5,6 @@
:class="[nsSelect.b(), nsSelect.m(selectSize)]"
@mouseenter="states.inputHovering = true"
@mouseleave="states.inputHovering = false"
@click.prevent.stop="toggleMenu"
>
<el-tooltip
ref="tooltipRef"
@ -35,6 +34,7 @@
nsSelect.is('filterable', filterable),
nsSelect.is('disabled', selectDisabled),
]"
@click.prevent.stop="toggleMenu"
>
<div
v-if="$slots.prefix"