feat(Tabs): add click-tab event (#9037)

This commit is contained in:
neverland
2021-07-15 14:58:47 +08:00
committed by GitHub
parent 4de5f5ac5a
commit da9b09b471
5 changed files with 79 additions and 32 deletions
+25 -4
View File
@@ -106,7 +106,15 @@ export default defineComponent({
props,
emits: ['click', 'change', 'scroll', 'disabled', 'rendered', 'update:active'],
emits: [
'click',
'change',
'scroll',
'disabled',
'rendered',
'click-tab',
'update:active',
],
setup(props, { emit, slots }) {
let tabHeight: number;
@@ -281,7 +289,11 @@ export default defineComponent({
};
// emit event when clicked
const onClick = (item: ComponentInstance, index: number) => {
const onClickTab = (
item: ComponentInstance,
index: number,
event: MouseEvent
) => {
const { title, disabled } = children[index];
const name = getTabName(children[index], index);
@@ -297,7 +309,16 @@ export default defineComponent({
},
});
emit('click-tab', {
name,
title,
event,
});
// @deprecated
// should be removed in next major version
emit('click', name, title);
route(item as ComponentPublicInstance<RouteProps>);
}
};
@@ -353,8 +374,8 @@ export default defineComponent({
renderTitle={item.$slots.title}
activeColor={props.titleActiveColor}
inactiveColor={props.titleInactiveColor}
onClick={() => {
onClick(item, index);
onClick={(event: MouseEvent) => {
onClickTab(item, index, event);
}}
/>
));