AdminTable 组件

概述

AdminTable 是一个通用的数据表格组件,基于 BootstrapBlazor 的 Table 组件扩展而来,提供了数据管理、导入导出、权限控制等增强功能。

功能特性

  • 支持数据增删改查
  • 支持Excel导入导出
  • 支持树形表格展示
  • 内置权限控制
  • 支持自定义查询和操作事件

参数说明

类型参数

  • TItem: 实体类型,必须实现 IEntity<TKey> 接口
  • TKey: 主键类型

属性参数

参数名 类型 说明
ShowImportButton bool 是否显示导入按钮
OnImportAsync Func<IEnumerable, Task> 自定义导入逻辑
GetParentId Func<TItem, TKey> 树型ParentId委托
UseDataPermission bool 是否使用数据权限
IgnoreSearchColumns Expression<Func<TItem, object>> 忽略查询的属性名

事件参数

事件名 类型 说明
OnBeforeQuery EventCallback<AdminQueryEventArgs> 查询前事件
OnBeforeSaveAsync EventCallback<AdminSaveEventArgs> 保存前事件
OnFinishSaveAsync EventCallback<AdminSaveEventArgs> 保存后事件
OnBeforeDeleteAsync EventCallback<AdminRemoveEventArgs> 删除前事件
OnFinishDeleteAsync EventCallback<AdminRemoveEventArgs> 删除后事件
OnBeforeImportAsync EventCallback<AdminImportEventArgs> 导入前事件
OnFinishImportAsync EventCallback<AdminImportEventArgs> 导入后事件

方法

公共方法

  • GetSelect(): 获取查询对象
  • GetExportColumns(): 获取导出列
  • Reload(): 重新加载数据

私有方法

  • OnExportAllAsync(): 执行数据导出
  • OnQueryDataAsync(): 执行数据查询
  • OnSaveDataAsync(): 执行数据保存
  • OnDeleteDataAsync(): 执行数据删除
  • TableTreeNodeConverter(): 树形数据转换

使用示例

<AdminTable TItem="SysUser" TKey="long" 
    ShowImportButton="true"
    OnBeforeImportAsync="OnBeforeImportAsync">
    <TableColumn TItem="SysUser" Field="@nameof(SysUser.Username)" />
    <TableColumn TItem="SysUser" Field="@nameof(SysUser.Nickname)" />
</AdminTable>

注意事项

  1. 导入文件大小限制为5MB
  2. 使用数据权限时实体必须实现IDataPermission和IEntityCreated接口
  3. 组件会自动处理权限按钮的显示控制