fix: table action

pull/160/MERGE
xingyu4j 2025-06-27 23:14:17 +08:00
parent d0210be4cd
commit 74d95b8db4
1 changed files with 11 additions and 11 deletions

View File

@ -244,28 +244,24 @@ function handleMenuClick(e: any) {
action.onClick();
}
}
/** 生成稳定的 key */
function getActionKey(action: ActionItem, index: number) {
return `${action.label || ''}-${action.type || ''}-${index}`;
}
</script>
<template>
<div class="table-actions">
<Space :size="spaceSize">
<template
v-for="(action, index) in getActions"
:key="getActionKey(action, index)"
>
<template v-for="(action, index) in getActions">
<Popconfirm
v-if="action.popConfirm"
v-bind="getPopConfirmProps(action.popConfirm)"
:key="getActionKey(action, index)"
>
<template v-if="action.popConfirm.icon" #icon>
<IconifyIcon :icon="action.popConfirm.icon" />
</template>
<Tooltip v-bind="getTooltipProps(action.tooltip)">
<Tooltip
v-bind="getTooltipProps(action.tooltip)"
:key="getActionKey(action, index)"
>
<Button v-bind="getButtonProps(action)">
<template v-if="action.icon" #icon>
<IconifyIcon :icon="action.icon" />
@ -274,7 +270,11 @@ function getActionKey(action: ActionItem, index: number) {
</Button>
</Tooltip>
</Popconfirm>
<Tooltip v-else v-bind="getTooltipProps(action.tooltip)">
<Tooltip
v-else
v-bind="getTooltipProps(action.tooltip)"
:key="`tooltip-${getActionKey(action, index)}`"
>
<Button v-bind="getButtonProps(action)" @click="action.onClick">
<template v-if="action.icon" #icon>
<IconifyIcon :icon="action.icon" />