添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Skip to content

表格

我们封装了 Table 组件、 baTable 类、 baTableApi 类、 表格顶部菜单 组件等,以方便快速生成和制作表格。

TIP

我们提供了一个 表格示例模块 ,内含大量表格使用、编程式操作的实际示例,欢迎下载体验。

Table 组件

Table 组件位于 \src\components\table ,我们基于 el-table 封装了该组件,所以 el-table 所有事件属性 都是可以直接在 Table 组件上使用的,部分属性可能失效,比如 el-table size ,这是因为 Table 组件拥有一些默认的 css 样式。

组件属性

属性名 注释
pagination 是否显示底部分页组件 boolean
... 其他 el-table 的属性可以直接使用 -

组件方法

方法名 注释 参数
getRef 获取内部 el-table ref ,然后就可以使用 el-table 的所有方法 -

组件插槽

插槽名 注释 子标签
neck 表格头与表格主体中间区域 任意
columnPrepend 通过此插槽在 baTable 类中定义的列之前插入列 el-table-column
columnAppend 通过此插槽在 baTable 类中定义的列之后插入列 el-table-column
footer 表格底部区域 任意
任意 列使用 render:slot, slotName:插槽名称 来使用 slot 渲染 任意

TIP

Table 组件和下方的 baTable 类是搭配使用的, baTable 类为表格提供数据,并可以响应表格组件的各种事件,组件的使用示例,也请参考下方 baTable 类的示例。

baTable 类

  • 此类代码位于: \src\utils\baTable.ts
  • 我们在类里面封装好了一个表格应有的 属性 和大量 方法 ,预设了 查看前、查看后、编辑前 等大量钩子
  • 在组件上下文中,可以 随时重写 它的方法和修改属性值(理解这点非常重要):
    1. 比如重写鉴权: baTable.auth = (node: string) => {....}
    2. 比如展开公共搜索组件: baTable.table.showComSearch = true
  • 可以建立新类继承 baTable 重写之后再使用(可高度自定义,重写示例: src\views\backend\security\sensitiveData\index.ts )。

TIP

index.vue 文件 new baTable() ,并将实例 provide 给上下文,然后,利用它,你就可以在上下文任何组件,任何时候改变表格所有属性数据(该实例的所有属性均具备响应性),或执行任何方法,只要你代码的逻辑能实现你的需求。

使用示例

以下为使用示例,实际使用表格非常灵活,请发挥您的想象力; baTable 类支持的属性和方法,在 表格所有可用属性 有介绍,但我们更推荐您直接查阅 src\utils\baTable.ts 文件代码(有注释,不知道有哪些属性可用时,可直接查看 ts 的类型定义)

表格列

表格列数据是在实例化 baTable 时定义的,此处对列数据进行了详细介绍,但表格可用属性非常多,我们更推荐您直接查阅 src\utils\baTable.ts 文件代码(有注释,不知道有哪些属性可用时,可直接查看 ts 的类型定义)

TIP

当编程式定义表格列无法满足您的需求时,请使用表格插槽或自定义单元格渲染。

表格列的可用属性

自定义单元格渲染

我们预设了一系列的单元格渲染方式 image、switch、tag... ,若它们不能满足您的需求,我们提供了另外三种方案,最终方案实现了完全的自定义渲染能力。

自定义表格顶部按钮

有时您需要自定义表格顶部的按钮,请直接 点击此处查看示例代码 ,或者您可以参考 表格示例模块 数据安全管理->数据回收站 ,我们在该管理功能内,通过插槽自定义了一个表格顶部的 还原 按钮(代码示例更完整)。

自定义表格行侧边按钮

有时您需要自定义表格行侧边的按钮,请参考下方示例,您也可以参考 表格示例模块 数据安全管理->数据回收站 ,我们在该管理功能内,实例化 baTable 时定义了一个额外的表格侧边确认还原按钮。

深度使用表格(重要)

随意设置表格属性参数

表格的参数属性,在代码任何地方,都可以进行更改,比如:

自动获取表格筛选条件

有时您需要带着一些筛选条件跳转到表格,并获取筛选后的数据,您可以直接参考会员管理->编辑会员资料->调整余额;我们在跳转到余额日志管理时,携带了 user_id 参数,该参数由于和表格字段对应,所以会自动获取到并作为公共搜索的筛选条件。

表格所有可用属性

重写 baTable 类方法

baTable 在双击单元格、刷新、提交等操作前,均提供了钩子,如果这些钩子不能满足您的需求,您还可以重写 baTable 类方法的实现:

表格公共搜索

表格公共/通用搜索是在实例化 baTable 时定义的,表格列的 render、operator、comSearchRender 属性共同参与公共搜索框的渲染。 comSearchRender 支持 remoteSelect、select、date、customRender、slot ,详细使用方法请直接查看下方示例代码。

render operator comSearchRender 公共搜索渲染
任意 false 不渲染
任意 RANGE、NOT RANGE 生成两个输入框(A和B),可输入 从A到B 的范围值
任意 NULL、NOT NULL 生成一个复选框,勾选则搜索值为 NULL、NOT NULL 的情况
datetime RANGE、NOT RANGE 时间范围选择器
datetime =、>、< 等比较符号,请参考 表格列 operator 属性 时间选择器
tag =、>、< 等比较符号 生成下拉框,下拉列表定义请参考 表格列 replaceValue
switch 无需设定 生成下拉框: 1=开,0=关 ,也可以通过设置 表格列 replaceValue 自定义值
任意 表格列 的其他 operator 属性 生成普通字符串输入框
任意 =、>、< 等比较符号 remoteSelect 远程下拉
任意 =、>、< 等比较符号 select 下拉框
任意 无需设定 date 日期选择器(纯日期无时间)
datetime RANGE、NOT RANGE date 日期范围选择器(纯日期无时间)
任意 任意 customRender 自定义渲染组件 ,请参考下方示例

公共搜索示例代码

完全自定义公共搜索的渲染

方案三:弃用表格自带的公共搜索
  • 请参考 表格顶部组件 ,禁用掉公共搜索
  • 完整实现一个自定义的公共搜索组件
  • 然后你可以通过 baTable.table.showComSearch 来判断您自定义公共搜索组件的显示隐藏状态

baTableApi 类

此类代码位于: \src\api\common.ts ,它实现快速生成一个控制器的: 增、删、改、查、排序 的操作 url 和请求方法,提供控制器的 url 即可。此类通常与 baTable 类搭配使用,若需单独定义 api 请求函数,可以直接在 \src\api 目录下定义,无需经过 baTableApi

使用示例

表格顶部组件

TableHeader 组件内含有公共搜索和表头操作按钮,菜单按钮可以自动根据当前路由进行 鉴权 ,当前管理员无权限的按钮,则不会显示。

属性列表

属性名 注释
buttons 要显示的按钮数组,比如 ['refresh', 'add', 'comSearch'] ,即表示于表格顶部显示 刷新、添加、公共搜索 按钮
quick-search-placeholder 快速搜索输入框的 placeholder

插槽列表

插槽名 注释
refreshPrepend 刷新按钮前插槽
refreshAppend 刷新按钮后插槽
此插槽内容将放置在组件内置的菜单按钮之后,可自定义表格顶部按钮等
quickSearchPrepend 快速搜索前插槽
任意 列配置中使用 comSearchRender:'slot', comSearchSlotName: 插槽名称 来通过 slot 渲染公共搜索

支持的菜单按钮

菜单按钮 注释
refresh 刷新按钮
add 添加
edit 编辑
delete 删除
comSearch 公共搜索
quickSearch 快速搜索
columnDisplay 字段显示状态
unfold 展开/折叠,与 baTable.table.expandAll 属性关联

表格顶部菜单示例代码

src/views/backend/security/dataRecycleLog/index.vue 文件