Commit b0fe4f98364383645199c9ae5d1daaeeb7eb24ad
1 parent
38a28d58
fix #4831
Showing
1 changed file
with
12 additions
and
2 deletions
Show diff stats
src/components/drawer/drawer.vue
@@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
22 | </template> | 22 | </template> |
23 | <script> | 23 | <script> |
24 | import Icon from '../icon'; | 24 | import Icon from '../icon'; |
25 | - import { oneOf } from '../../utils/assist'; | 25 | + import { oneOf, findBrothersComponents, findComponentsUpward } from '../../utils/assist'; |
26 | import TransferDom from '../../directives/transfer-dom'; | 26 | import TransferDom from '../../directives/transfer-dom'; |
27 | import Emitter from '../../mixins/emitter'; | 27 | import Emitter from '../../mixins/emitter'; |
28 | import ScrollbarMixins from '../modal/mixins-scrollbar'; | 28 | import ScrollbarMixins from '../modal/mixins-scrollbar'; |
@@ -193,7 +193,17 @@ | @@ -193,7 +193,17 @@ | ||
193 | if (val === false) { | 193 | if (val === false) { |
194 | this.timer = setTimeout(() => { | 194 | this.timer = setTimeout(() => { |
195 | this.wrapShow = false; | 195 | this.wrapShow = false; |
196 | - this.removeScrollEffect(); | 196 | + // #4831 Check if there are any drawers left at the parent level |
197 | + const brotherDrawers = findBrothersComponents(this, 'Drawer') || []; | ||
198 | + const parentDrawers = findComponentsUpward(this, 'Drawer') || []; | ||
199 | + | ||
200 | + const otherDrawers = [].concat(brotherDrawers).concat(parentDrawers); | ||
201 | + | ||
202 | + const isScrollDrawer = otherDrawers.some(item => item.visible && !item.scrollable); | ||
203 | + | ||
204 | + if (!isScrollDrawer) { | ||
205 | + this.removeScrollEffect(); | ||
206 | + } | ||
197 | }, 300); | 207 | }, 300); |
198 | } else { | 208 | } else { |
199 | if (this.timer) clearTimeout(this.timer); | 209 | if (this.timer) clearTimeout(this.timer); |