File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11{
22 "cSpell.words" : [" Element Plus" , " element-plus" ],
33 "typescript.tsdk" : " node_modules/typescript/lib" ,
4- "editor.formatOnSave" : true ,
4+ "editor.formatOnSave" : false ,
55 "npm.packageManager" : " pnpm" ,
66 "eslint.probe" : [
77 " javascript" ,
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ import {
1414 watch ,
1515 withDirectives ,
1616} from 'vue'
17- import { useTimeoutFn } from '@vueuse/core'
17+ import { onClickOutside , useTimeoutFn } from '@vueuse/core'
1818import ElCollapseTransition from '@element-plus/components/collapse-transition'
1919import ElTooltip from '@element-plus/components/tooltip'
2020import {
@@ -235,6 +235,7 @@ export default defineComponent({
235235 ( ! rootMenu . props . collapse && rootMenu . props . mode === 'vertical' ) ||
236236 props . disabled
237237 ) {
238+ subMenu . mouseInChild . value = true
238239 return
239240 }
240241 subMenu . mouseInChild . value = true
@@ -255,6 +256,7 @@ export default defineComponent({
255256 rootMenu . props . mode === 'horizontal' ) ||
256257 ( ! rootMenu . props . collapse && rootMenu . props . mode === 'vertical' )
257258 ) {
259+ subMenu . mouseInChild . value = false
258260 return
259261 }
260262 timeout ?.( )
@@ -311,6 +313,14 @@ export default defineComponent({
311313 rootMenu . removeSubMenu ( item )
312314 } )
313315
316+ onClickOutside (
317+ computed ( ( ) => vPopper . value ) ,
318+ ( ) => {
319+ if ( ! mouseInChild . value && ! subMenu . mouseInChild . value )
320+ rootMenu . closeMenu ( props . index , indexPath . value )
321+ }
322+ )
323+
314324 return ( ) => {
315325 const titleTag : VNodeArrayChildren = [
316326 slots . title ?.( ) ,
You can’t perform that action at this time.
0 commit comments