4
4
defineComponent ,
5
5
nextTick ,
6
6
onMounted ,
7
+ onUnmounted ,
7
8
PropType ,
8
9
ref ,
9
10
toRefs ,
@@ -20,6 +21,7 @@ import IconHover from '../_components/icon-hover.vue';
20
21
import IconPlus from '../icon/icon-plus' ;
21
22
import ResizeObserver from '../_components/resize-observer' ;
22
23
import { isUndefined , isNumber } from '../_utils/is' ;
24
+ import { off , on } from '../_utils/dom' ;
23
25
24
26
export default defineComponent ( {
25
27
name : 'TabsNav' ,
@@ -206,6 +208,9 @@ export default defineComponent({
206
208
207
209
const handleDelete = ( key : string | number , ev : Event ) => {
208
210
emit ( 'delete' , key , ev ) ;
211
+ nextTick ( ( ) => {
212
+ delete tabsRef . value [ key ] ;
213
+ } ) ;
209
214
} ;
210
215
211
216
const handleButtonClick = ( type : string ) => {
@@ -238,6 +243,15 @@ export default defineComponent({
238
243
239
244
onMounted ( ( ) => {
240
245
getSize ( ) ;
246
+ if ( wrapperRef . value ) {
247
+ on ( wrapperRef . value , 'wheel' , handleWheel , { passive : false } ) ;
248
+ }
249
+ } ) ;
250
+
251
+ onUnmounted ( ( ) => {
252
+ if ( wrapperRef . value ) {
253
+ off ( wrapperRef . value , 'wheel' , handleWheel ) ;
254
+ }
241
255
} ) ;
242
256
243
257
const renderAddBtn = ( ) => {
@@ -300,7 +314,7 @@ export default defineComponent({
300
314
/>
301
315
) }
302
316
< ResizeObserver onResize = { ( ) => getSize ( ) } >
303
- < div class = { tabCls . value } ref = { wrapperRef } onWheel = { handleWheel } >
317
+ < div class = { tabCls . value } ref = { wrapperRef } >
304
318
< ResizeObserver onResize = { handleResize } >
305
319
< div ref = { listRef } class = { listCls . value } style = { listStyle . value } >
306
320
{ props . tabs . map ( ( tab , index ) => (
0 commit comments