事件
通过 api.event 注册,支持 kebab-case 与 camelCase:
ts
const tableApi = useXTableApi<User>()
// 以下两种写法等价
tableApi.value.event['selection-change'] = (rows) => { ... }
tableApi.value.event.selectionChange = (rows) => { ... }支持的事件列表
支持所有 EP 原生事件(全部可注册):
| 事件 | 触发时机 |
|---|---|
select / select-all / selection-change | 选择行 |
cell-mouse-enter / cell-mouse-leave / cell-click / cell-dblclick / cell-contextmenu | 单元格鼠标事件 |
row-click / row-contextmenu / row-dblclick | 行鼠标事件 |
header-click / header-contextmenu | 表头鼠标事件 |
sort-change | 排序变化 |
filter-change | 筛选变化 |
current-change | 当前行变化 |
header-dragend | 列宽拖动结束 |
expand-change | 展开行变化 |
scroll | 表格滚动(EP 2.9.0+) |
示例
vue
<template>
<XTable :columns="columns" :data="data" @register="tableApi.register" />
</template>
<script setup lang="ts">
import { useXTableApi } from '@/components/XTable'
const tableApi = useXTableApi<User>()
tableApi.value.event['selection-change'] = (rows: User[]) => {
console.log('选中行:', rows)
}
tableApi.value.event['row-click'] = (row: User, column, event) => {
console.log('点击行:', row)
}
</script>