Skip to content

配置项

js
import { defineTRConfig } from '@hamlet/render'

const config = defineTRConfig({
    // 具体配置项
})
import { defineTRConfig } from '@hamlet/render'

const config = defineTRConfig({
    // 具体配置项
})

目前 table-render 支持以下配置项。

配置项

参数描述类型默认值是否必填
type表格类型,可选值 crud | liststringlist
api请求 API 地址API
manual是否手动触发请求booleanfalse
fit是否自动撑开booleantrue
card是否卡片展示形式booleantrue
columns列设置TableColumn
rowSelection选择列RowSelection
defaultSearchFormData设置默认查询条件AnyObject
conditionFilter查询条件过滤,点击查询按钮请求列表接口前回调(data: AnyObject) => AnyObject
conditionSaved查询条件是否可保存booleantrue
formatData列表数据自定义(data: AnyObject) => {list: AnyObject[], total: number}
indexColumn是否显示索引序号boolean | {width: number, label: string}true
rowKey表格键值stringid
pageNoKey第几页 key 值stringpageNo
pageSizeKey每页显示条目个数 key 值stringpageSize
highlightCurrentRow是否要高亮当前行booleanfalse
scrollbarAlwaysOn总是显示滚动条booleantrue
pagination分页配置boolean / Pagination
cacheKey缓存 key,列设置和条件组合保存使用string
filters筛选条件Filter
filtersColumn筛选列设置AnyObject
buttons按钮块Buttons
toolbar是否显示表格工具栏booleantrue
showColumnsSetting是否显示列设置booleantrue
defaultExpandAll是否默认展开所有行,当 Table 包含展开行存在或者为树形表格时有效boolean
lazy是否懒加载子节点数据boolean
maxHeightTable 的最大高度。 合法的值为数字或者单位为 px 的高度。string| number
treeProps渲染嵌套数据的配置选项,参考 ElTableobject
showSummary是否在表尾显示合计行boolean
summaryMethod自定义的合计计算方法,参考 ElTableSummaryMethod<void>
tableLayout设置表格单元、行和列的布局方式'fixed' | 'auto'fixed
spanMethod单元格合并, 参考 ElTable
beforeFilterSearch搜索前回调,返回 false 不执行查询(data: AnyObject) => boolean
searchExpand搜索栏是否默认展开booleanfalse
customFilter列配置是否显示自定义筛选列booleanfalse
searchReset搜索重置回调() => void
initCallback表格加载初始化回调() => void
stripe是否为斑马纹 tablebooleanfalse
emptyText空数据时显示的文本内容stringNo Data
beforeSearchReset重置前回调,返回 false 不执行查询(data: AnyObject) => boolean
searchLabelPosition搜索标签位置top | left | right
filterChange列筛选变化回调(...args: any[]) => void

API

遵循 {method}:{url} 规则 。method 请求方式,非必填;url 请求地址,必填项。

/mall/admin/order/list 等同于 get:/mall/admin/order/list

TableRender Exposes

参数描述类型
selectedRowKeys多选 key 值string[]
selectedRows多选行值Record<sting, any>[]
searchFormData筛选条件值Record<sting, any>
pageSize每页显示条目个数number
currentPage当前页数number
sort排序
getTableInstance获取 ElTable 实例() => ElTableRef
setSearchFieldValue设置查询条件值(name: string, value: any) => void
loadTableData请求表格数据({page, size, sort}) => void

TableRender Emits

参数描述回调参数
table-data-change列表数据回调事件list
row-click当某一行被点击时会触发该事件row, column, event
cell-click当某个单元格被点击时会触发该事件prop, value
current-change当表格的当前行发生变化的时候会触发该事件,如果要高亮当前行,请打开表格的 highlight-current-row 属性currentRow, oldCurrentRow
column-setting-change列设置变更回调columnSetting

Filter

更多属性配置参考 TableColumn.Filter

参数描述类型默认值是否必填
label标签名string
prop键名string
type控件类型stringinput
slot是否使用自定义插槽,命名规则ham-search-{prop}boolean

TableColumn

表格列

参数描述类型默认值是否必填
label标签名string
prop键名string
type列类型,值可以是日期date,对象mapping,字典dict,操作栏operation,链接link,开关switch,标签tagstring
width列宽度string | number
minWidth对应列的最小宽度string | number
fixed是否固定列,可以是布尔值,也可以是 leftrightboolean | string
sortable是否支持排序boolean
sortBy指定数据按照哪个属性进行排序(row: any, index: number) => string/string/object
tag是否开启标签模式,只在type为 dict 和 mapping 时生效boolean
getTagColor标签颜色(row: AnyObject, option: AnyObject) => string
slot是否使用自定义插槽,命名规则column-{prop}boolean
headerSlot是否使用自定义表头插槽,命名规则column-header-{prop}boolean
format格式化,type 为 date 生效,参考 dayjs 格式化参数 YYYY-MM-DD HH:mm:ssstring
ellipsis文本溢出是否...显示boolean
align对齐方式,可以是 left | center | rightstring
map对象,type 为 mapping 时生效Record<string, any>
dictCode字典 code,type 为 dictSelect 时生效string
formatter格式化(row, column, cellValue, index) => string
filter是否设置为筛选条件TableColumn.Filter | boolean
filters数据过滤的选项, 数组格式,数组中的元素需要有 text 和 value 属性。 数组中的每个元素都需要有 text 和 value 属性。Array<{text: string, value: string}>
filterMethod数据过滤使用的方法, 如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示。function(value, row, column)
switch开关配置,type 为 switch 时生效TableColumnSwitch
buttons操作按钮, type 为 operation 时生效TableColumn.Button[]
onClick点击回调事件,type 为 link 时生效(row: AnyObject) => void
children子级TableColumn[]
className列的 classNamestring

TableColumn.Filter

列刷选

TIP

此处只列出通用的一些属性,更多参数请参考 type 对应表单控件,这里不做详细描述。

参数描述类型默认值是否必填
type控件类型,可选值文本框input,下拉选select,日期datePicker,字典下拉dictSelect,组合网格comboGridstringinput
placeholder占位文本string
slot是否使用插槽,命名规则ham-search-{prop}boolean
clearable是否可清空boolean
style样式string | AnyObject
emitType触发搜索方式,回车触发enter,搜索值改变直接触发changestring
labelWidth筛选项label宽度number | string

TableColumn.Button

列按钮

参数描述类型默认值是否必填
label按钮名称string
type按钮类型,primary | success | warning | danger | infostringprimary
style按钮样式string
label按钮名称string
actionTemplate继承模板 key 值,可选deletestring
actionType操作类型,可选值 messageBoxpopconfirmstring
messageBox确认框, actionType 值为 messageBox 时生效MessageBox
popconfirm气泡确认框,当 actionType=popconfirm 时生效Popconfirm
permissionCode按钮权限 CODE,优先级高于 visible,在 @gauss/prime 框架内生效string
visible是否显示(row: AnyObject) => boolean
onClick触发点击回调函数(row: AnyObject) => void

TableColumnSwitch

参数描述类型默认值是否必填
width宽度string | number
inlinePrompt无论图标或文本是否显示在点内,只会呈现文本的第一个字符boolean
activeTextswitch 打开时的文字描述string
inactiveTextswitch 的状态为 off 时的文字描述string
activeValueswitch 状态为 on 时的值boolean | string | number
inactiveValueswitch 状态为 off 时的值boolean | string | number
onChange变更事件(row: AnyObject) => void

RowSelection

多选

参数描述类型默认值是否必填
onChange列选择变更回到事件(rows: Record<string, any>[]) => void
selectable当前行是否可被选中(row: Record<string, any>, index: number) => boolean

Buttons

按钮块

参数描述类型默认值是否必填
label按钮名称string
icon按钮图标DefineComponent
slot是否使用插槽,用户自定义插槽名称string
actionTemplate继承模板 key 值,可选deletestring
permissionCode按钮权限 CODE,优先级高于 visible,在 @gauss/prime 框架内生效string
buttonType按钮类型,可选值primary warning danger success infostring
actionType操作类型,可选值 messageBoxstring
messageBox确认框, actionType 值为 messageBox 时生效MessageBox
disabled是否禁用(instance: Instance) => boolean
visible是否可见(instance: Instance) => boolean
onClick触发点击回调函数() => void

actionTemplate 设置为 delete 时,等同于

js
{
    label: '删除',
    disabled(instance) {
        return instance.selectedRowKeys.length === 0
    },
    actionType: 'messageBox',
    messageBox: {
        title: '删除',
        message: '确定要删除选择项么?',
        requestData(instance) {
            const { selectedRowKeys } = instance
            return selectedRowKeys
        },
    },
}
{
    label: '删除',
    disabled(instance) {
        return instance.selectedRowKeys.length === 0
    },
    actionType: 'messageBox',
    messageBox: {
        title: '删除',
        message: '确定要删除选择项么?',
        requestData(instance) {
            const { selectedRowKeys } = instance
            return selectedRowKeys
        },
    },
}

Pagination

分页

参数描述类型默认值是否必填
defaultPageSize每页显示条目个数number10
pageSizes每页显示个数选择器的选项设置number[][10, 20, 50, 100]
layout组件布局,子组件名用逗号分隔stringtotal, sizes, prev, pager, next, jumper
background是否为分页按钮添加背景色booleantrue

MessageBox

确认框

参数描述类型默认值是否必填
title标题string
message正文内容string
api请求地址,支持文本模板字符串替换API
requestData点击确定触发请求前回调,可以处理传参(data: AnyObject) => any
onSuccess请求成功后回调() => void
onError请求失败回调(error: any) => void
onComplete请求成功或失败后回调() => void

什么是文本模板字符串替换?

api: 'post:/mall/admin/order/delete?id={id}'

// => 最终内部会取行内的数据来替换 id
post:/mall/admin/order/delete?id=xxxxxxx
api: 'post:/mall/admin/order/delete?id={id}'

// => 最终内部会取行内的数据来替换 id
post:/mall/admin/order/delete?id=xxxxxxx

Popconfirm

气泡确认框

参数描述类型默认值是否必填
title标题string
api请求地址,支持文本模板字符串替换API
requestData点击确定触发请求前回调,可以处理传参(data: AnyObject) => any
onSuccess请求成功后回调() => void
onError请求失败回调(error: any) => void
onComplete请求成功或失败后回调() => void

示例

js
popconfirm: {
    title: '是否删除当前项?',
    api: 'post:/mall/admin/order/delete',
    requestData(row) {
        return [row.id]
    },
},
popconfirm: {
    title: '是否删除当前项?',
    api: 'post:/mall/admin/order/delete',
    requestData(row) {
        return [row.id]
    },
},