OperationColumn 操作列
自动生成编辑、删除等操作按钮,支持权限控制。
基础用法
vue
<template>
<el-table-column label="操作" width="200">
<template #default="{ row }">
<OperationColumn :buttons="buttons" :row="row" @click="handleClick" />
</template>
</el-table-column>
</template>
<script setup lang="ts">
const buttons = [
{ name: 'edit', text: '编辑', type: 'primary' },
{ name: 'delete', text: '删除', type: 'danger' }
]
function handleClick(name: string, row: any) {
if (name === 'edit') {
// 编辑操作
} else if (name === 'delete') {
// 删除操作
}
}
</script>带权限控制
vue
<script setup lang="ts">
const buttons = [
{ name: 'edit', text: '编辑', type: 'primary', perm: 'sys:user:update' },
{ name: 'delete', text: '删除', type: 'danger', perm: 'sys:user:delete' }
]
</script>Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
buttons | 按钮配置数组 | Button[] | [] |
row | 当前行数据 | object | — |
Button 配置
| 参数 | 说明 | 类型 |
|---|---|---|
name | 按钮标识 | string |
text | 按钮文本 | string |
type | 按钮类型 | primary / success / warning / danger / info |
icon | 按钮图标 | string |
perm | 权限标识 | string |
show | 显示条件 | (row) => boolean |
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
click | 按钮点击时触发 | (name: string, row: any) |
