@@ -5,14 +5,15 @@ import getPrefixCls from '../_util/getPrefixCls';
5
5
import { useNormalModel } from '../_util/use/useModel' ;
6
6
import { useTheme } from '../_theme/useTheme' ;
7
7
import Popper from '../popper/popper' ;
8
+ import Scrollbar from '../scrollbar/scrollbar.vue' ;
8
9
import { type DropdownOption as Option , dropdownProps } from './props' ;
9
10
10
11
const prefixCls = getPrefixCls ( 'dropdown' ) ;
11
12
12
13
export default defineComponent ( {
13
14
name : 'FDropdown' ,
14
15
props : dropdownProps ,
15
- emits : [ 'click' , 'visibleChange' , 'update:visible' ] ,
16
+ emits : [ 'click' , 'visibleChange' , 'update:visible' , 'scroll' ] ,
16
17
setup ( props , { slots, emit } ) {
17
18
useTheme ( ) ;
18
19
@@ -41,8 +42,11 @@ export default defineComponent({
41
42
} ) ;
42
43
43
44
const renderOptions = ( ) => (
44
- < div
45
- class = { [
45
+ < Scrollbar
46
+ onScroll = { ( event : Event ) => {
47
+ emit ( 'scroll' , event ) ;
48
+ } }
49
+ containerClass = { [
46
50
`${ prefixCls } -option-wrapper` ,
47
51
hasIcon . value ? 'has-icon' : '' ,
48
52
] }
@@ -85,15 +89,15 @@ export default defineComponent({
85
89
</ div >
86
90
) ;
87
91
} ) }
88
- </ div >
92
+ </ Scrollbar >
89
93
) ;
90
94
91
95
return ( ) => (
92
96
< Popper
93
97
v-model = { visible . value }
94
98
trigger = { props . trigger }
95
99
placement = { props . placement }
96
- popperClass = { `${ prefixCls } -popper` }
100
+ popperClass = { [ `${ prefixCls } -popper` , props . popperClass ] }
97
101
appendToContainer = { props . appendToContainer }
98
102
getContainer = { props . getContainer }
99
103
offset = { props . offset }
0 commit comments