参数说明
提示区参数
提示区通过QuerierTableHelpText组件展示,旨在为用户提供额外的信息或警告。
- helps:
QuerierTableHelpTextProps[]- 用于展示提示信息,包括类型、标题、内容和链接等属性。
QuerierTableHelpTextProps 类型
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| type | 'primary' | 'success' | 'warning' | 'info' | 'error' | 'success' | 设置提示信息的类型,影响显示的颜色和图标。 |
| title | string | - | 提示信息的标题,将会以特殊格式(如加粗或颜色)展示在内容之前。 |
| content | string | - | 提示信息的具体内容,与标题一同构成完整的提示文本。 |
| url | string | - | 当提供时,点击提示信息将打开一个新的浏览器标签页并导航到此URL。 |
查询区参数
- enableSearch:
boolean- 是否启用查询功能。默认启用 - searchs:
QuerierTableSearchFieldProps[]- 查询条件字段配置数组,支持多种输入类型如文本、日期选择器、下拉菜单等。 - searchActions:
ActionButtonProps[]- 查询区按钮配置。 - searchActionsSpan:
number- 查询区按钮区域宽度,默认6。 - disableSetting:
boolean- 是否禁用表格设置按钮。 - defaultWhereParams:用于设置表格加载时的默认查询条件。支持三种形式:
- 静态条件数组(
QueryDomainWhereParams[]); - 返回条件数组的函数(
() => QueryDomainWhereParams[]); - 返回 Promise 的异步函数(
() => Promise<QueryDomainWhereParams[]>),适用于需动态获取默认条件的场景。
- 静态条件数组(
- loadOnInit:
boolean- 组件挂载时是否自动加载数据。 - enablePagination:
boolean- 是否启用分页。 - defaultPageSize:
number- 默认每页显示条数,默认为10。 - pageParams:
QueryDomainPageParams- 包含分页信息的对象,比如当前页码、每页大小等。
QuerierTableSearchFieldProps 类型
该接口用于定义查询区中单个搜索字段的配置项,适用于所有输入类型(如文本、下拉、日期、开关等)。字段行为由通用属性与可选扩展属性共同控制。
| 属性名 | 类型 | 说明 |
|---|---|---|
| label | string | 字段显示标签,例如“用户名”、“创建时间”。 |
| helps | string | 查询字段帮助文本。 |
| prop | string | 字段唯一标识,用于表单绑定、查询条件生成及默认值设置。必填。 |
| symbolType | string | 查询操作符类型,如 'EQ'、'LIKE'、'IN'、'BETWEEN' 等,用于构建后端 whereParams 条件。 |
| inputType | string | 输入控件类型,决定渲染何种 Element Plus 组件。常见值包括:'input'、'select'、'tree-select' 等。 |
| defaultValue | any | 字段初始化时的默认值。 |
| hidden | boolean | 是否默认隐藏该字段(用户可通过“展开”按钮显示)。 |
| span | number | 在栅格布局中占用的列宽(基于 24 栅格系统),默认为 6。 |
| placeholder | string | 输入框的占位提示文本。 |
| remote | boolean | 是否启用远程数据加载(通常用于 select / tree-select)。 |
| filterable | boolean | 是否启用本地筛选(非远程模式下有效)。 |
| dictType | string | 字典类型编码,用于自动加载字典选项(如 'user_status')。 |
| remoteMethod | (query?: string) => Promise<any[]> | 远程搜索方法,用于动态获取下拉选项。 |
| multiple | boolean | 是否支持多选(适用于 select / tree-select)。 |
| collapseTags | boolean | 多选时是否折叠已选项为 Tag。 |
| maxCollapseTags | number | 折叠 Tag 的最大显示数量。 |
| checkStrictly | boolean | (树形选择)是否禁用父子节点关联。 |
| accordion | boolean | (树形选择)是否启用手风琴模式(一次只展开一个同级节点)。 |
| lazy | boolean | (树形选择)是否启用懒加载子节点。 |
| load | (node?: any, resolve?: Function, reject?: Function) => Promise<any[]> | (树形选择)懒加载子节点的数据请求函数。 |
| filterMethod | (query?: string) => Promise<any[]> | 自定义过滤方法,用于替代内置筛选逻辑。 |
| activeValue | string | (开关类型)开启状态对应的值,默认 'true'。 |
| inactiveValue | string | (开关类型)关闭状态对应的值,默认 'false'。 |
| datePickerType | 'year' | 'month' | 'date' | 'dates' | 'datetime' | 'week' | 'datetimerange' | 'daterange' | 'monthrange' | 'yearrange' | 日期选择器的具体类型。 |
| format | string | 日期在 UI 上的显示格式(如 'YYYY-MM-DD')。 |
| valueFormat | string | 日期绑定值的格式(通常需与后端一致,如 'yyyy-MM-DD')。 |
| rangeSeparator | string | 日期范围选择器中间的分隔符文本(如 '至')。 |
| startPlaceholder | string | 日期范围起始输入框的占位文本。 |
| endPlaceholder | string | 日期范围结束输入框的占位文本。 |
| beforeMinDays | number | 限制可选最小日期为今天减去 N 天。 |
| afterMaxDays | number | 限制可选最大日期为今天加上 N 天。 |
| maxDaysRange | number | 限制日期范围的最大跨度(单位:天)。 |
| disabledDate | (data: Date | Date[]) => boolean | 自定义禁用日期的逻辑函数。 |
| minNumber | number | 数字输入的最小值限制。 |
| maxNumber | number | 数字输入的最大值限制。 |
| precision | number | 数字输入的小数精度(保留几位小数)。 |
ActionButtonProps 类型
该类型用于配置一个通用操作按钮(ActionButton)的行为与外观,支持异步点击处理和动态显示控制。
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | 来自 Element Plus | 'primary' | 按钮类型,如 'primary'、'success'、'warning'、'danger'、'info' 等。 |
| label | string | - | 按钮显示的文本内容。若为空,则仅显示图标。 |
| icon | string | - | 按钮左侧图标名称(如 'ep:search')。若未提供,则不显示图标。 |
| onClick | (...args: any[]) => void | Promise<void> | - | 点击按钮时触发的回调函数。支持返回 Promise,组件会自动管理加载状态(loading)。 |
| isShow | (...args: any[]) => boolean | Promise<boolean> | - | 控制按钮是否显示的函数。可返回布尔值或 Promise<boolean>,组件会自动等待异步结果。若未提供,默认显示。 |
| size | 来自 Element Plus | - | 按钮尺寸,可选 'large'、'default'、'small'。 |
| plain | boolean | - | 是否为朴素按钮(去除背景色,仅保留边框)。 |
| link | boolean | - | 是否为文字链接样式按钮(无边框、无背景)。 |
操作区参数
- operationActions:
ActionButtonProps[]- 表格上方的操作按钮集合。
ActionButtonProps 类型
表格区参数
- loadData:
(params: QueryDomainParams) => Promise<any>- 加载数据的方法,需要返回一个Promise。 - itemProcess:
(item?: any) => any | Promise<any>- 对每一行数据进行处理的函数。 - data:
any[]- 表格数据,如果不指定 loadData 参数, 则可通过该参数指定数据源。 - columns:
QuerierTableBodyColumnProps[]- 定义列的信息,包括标签、属性名、宽度等。 - expandRowActions:
boolean- 是否展开操作列按钮。 - foldRowActions:
boolean- 是否折叠操作列按钮。 - autoFoldNum:
number- 自动触发折叠的操作列按钮数量。 - rowActions:
ActionButtonProps[]- 操作列按钮的定义。 - stripe:
boolean- 是否显示斑马纹。 - border:
boolean- 是否显示边框。 - rowKey:
(row: any) => string | undefined- 获取行唯一标识的函数。 - selectable:
boolean- 表格是否支持选择,可选择的功能必须指定 rowKey。 - selectedRows:
any[]- 已选择的行。 - minSelectCount:
number- 最小选择数量限制。 - maxSelectCount:
number- 最大选择数量限制。 - appendSelectMode:
boolean- 是否以追加模式选择。 - rowSelectable:
(row: any) => boolean- 自定义判断行是否可被选择的函数。 - itemSelectable:
(item?: any) => boolean | Promise<boolean>- 判断某一行是否可被选中的函数。
ActionButtonProps 类型
QuerierTableBodyColumnProps 类型
该接口用于定义表格主体中每一列的显示行为、格式化方式及交互逻辑。通过 columnType 指定列的内容类型,组件内部会根据类型自动渲染对应 UI 元素。
| 属性名 | 类型 | 说明 |
|---|---|---|
| label | string | 列标题文本(如“用户名”、“操作”)。 |
| prop | string | 列对应的数据字段名(用于从行数据 row 中取值)。若为 index 或自定义插槽列,可不传。 |
| width | string | 列宽(如 '120px'、'20%'),直接作用于 <el-table-column> 的 width 属性。 |
| hidden | boolean | 是否隐藏该列(可用于动态列显示配置)。 |
| splitChar | string | 当单元格值为数组时,用于拼接显示的分隔符(如 ','、' / ')。仅在默认类型下生效。 |
| columnType | 'index' | 'action' | 'datetime' | 'route' | 'link' | 'html' | 'dict' | 'image' | 'amount' | 列内容的渲染类型,决定如何格式化和展示数据。详见下方 columnType 处理逻辑。 |
| datetimeFormat | string | 日期时间格式化模板(如 'YYYY-MM-DD HH:mm:ss'),仅在 columnType === 'datetime' 时生效。 |
| dataPattern | string | 数据模式字符串,支持变量插值('列数据:${data},行数据:${row}')。 |
| dictType | string | 字典类型编码(如 'user_status'),用于 columnType === 'dict' 时映射字典标签。 |
| defaultSlot | Component | 自定义渲染组件(Vue 组件对象),若提供则优先使用该插槽覆盖内置逻辑。 |
| fixed | boolean | 'left' | 'right' | 是否固定列(true 等价于 'left'),用于左右冻结列。 |
| rowKey | boolean | 标记该列为行唯一标识字段,可标记多个。 |
columnType 处理逻辑说明
| 类型 | 渲染逻辑 |
|---|---|
'default'(未指定类型时) | 内容由 dataPattern 生成,以 <span> 展示。 |
'index' | 渲染表格行序号(由 Element Plus 表格自动处理,通常无需额外配置)。 |
'action' | 操作列根据 rowActions 配置实现具体按钮。 |
'datetime' | 按 datetimeFormat 格式化时间值。 |
'route' | 渲染为 可点击的链接按钮 点击时调用 router.push() 跳转,路由由 dataPattern 生成。 |
'link' | 渲染为 普通超链接(ElLink),链接由 dataPattern 生成。 |
'html' | HTML 富文本,内容由 dataPattern 生成。 |
'dict' | 使用 <DictTag> 组件,根据 dictType 和实际值显示对应的字典标签。 |
'image' | 图片,支持预览、懒加载,默认宽度 60px,图片地址由 dataPattern 提供。 |
'amount' | 金额实现与 default 一致,但语义上表示金额/数值。 |
组件插槽
| 插槽名称 | 作用位置 | 说明 |
|---|---|---|
searchActionSlot | 查询区右侧操作按钮区域 | 在搜索/重置按钮后插入自定义组件或按钮(如导出)。 |
operationActionSlot | 表格上方操作栏 | 在操作区插入自定义组件或按钮(如批量删除、启用)。 |
tableHeaderSlot | 表格顶部 | 在表头区插入自定义组件。 |
tableBodySlot | 表格主体区域 | 自定义表格主体,默认使用内置 el-table;接收 data 和 selectedRows 作用域数据。 |
tableFooterSlot | 表格底部(分页器上方) | 在表尾区插入自定义组件,如统计信息或汇总行。 |
暴露方法
| 方法名 | 参数 | 返回值 | 说明 |
|---|---|---|---|
getRowActionsConfig | — | { expandRowActions, foldRowActions, autoFoldNum, rowActions } | 获取行操作按钮的配置信息。 |
getCurrentRow | — | any | 获取当前高亮选中的单行数据。 |
setCurrentRow | val?: any | — | 设置当前高亮选中的单行数据。 |
toggleCurrentRow | val: any | — | 切换单行选中状态:若已选中则取消,否则设为当前行。 |
isCurrentRow | val: any | boolean | 判断指定行是否为当前高亮选中行。 |
getSelectedRows | — | any[] | 获取当前所有选中的行数据。 |
setSelectedRows | val?: any[] | — | 设置选中的行数据,并触发重新查询(重置到第一页)。 |
toggleRowsSelection | 见 Element Plus 表格 API | — | 切换多选状态(代理自 el-table 的 toggleRowSelection)。 |
isRowSelectable | (row: any) => boolean | boolean | 判断某行是否可被选中(受 selectable 配置控制)。 |
isRowChecked | val: any | boolean | 判断指定行是否已被选中。 |
getValidSelectedRows | — | Promise<any[]> | 获取选中行并校验数量是否在 minSelectCount 与 maxSelectCount 范围内,不满足则抛错。 |
doSearch | options?: { pageParams?, whereParams? } | Promise<void> | 手动触发表格重新查询(支持传入分页或筛选条件)。 |
组件事件
| 事件名 | 参数 | 说明 |
|---|---|---|
change | val: any[] | 表格数据发生变化时触发,loadData 函数加载时触发。 |
