UNPKG

view-ui-plus

Version:

A high quality UI components Library with Vue.js 3

400 lines (319 loc) 9.12 kB
import type { DefineComponent } from 'vue'; export declare const Table: DefineComponent<{ /** * 显示的结构化数据,其中,字段 cellClassName 用于设置任意单元格的样式名称,因此数据不能使用该字段,详见示例**特定样式**。 */ data?: any[]; /** * 表格列的配置描述,具体项见后文 */ columns?: any[]; /** * 是否显示间隔斑马纹 */ stripe?: boolean; /** * 是否显示纵向边框 */ border?: boolean; /** * 是否显示表头 */ 'show-header'?: boolean; /** * 表格宽度,单位 px */ width?: number | string; /** * 表格高度,单位 px,设置后,如果表格内容大于此值,会固定表头 */ height?: number | string; /** * 表格最大高度,单位 px,设置后,如果表格内容大于此值,会固定表头 */ 'max-height'?: number | string; /** * 表格是否加载中 */ loading?: boolean; /** * 禁用鼠标悬停时的高亮 */ 'disabled-hover'?: boolean; /** * 是否支持高亮选中的行,即单选 */ 'highlight-row'?: boolean; /** * 行的 className 的回调方法,传入参数:`row`:当前行数据 `index`:当前行的索引 */ 'row-class-name'?: Function; /** * 表格尺寸,可选值为 `large`、`small`、`default` 或者不填 */ size?: string; /** * 数据为空时显示的提示内容 */ 'no-data-text'?: string; /** * 筛选数据为空时显示的提示内容 */ 'no-filtered-data-text'?: string; /** * 是否开启拖拽调整行顺序,需配合 @on-drag-drop 事件使用 */ draggable?: boolean; /** * 列使用 tooltip 时,配置它的主题,可选值为 dark 或 light */ 'tooltip-theme'?: string; /** * 列使用 tooltip 时,配置 Tooltip 的最大宽,默认是 300 */ 'tooltip-max-width'?: number; /** * 是否强制使用内置的 row-key,开启后可能会影响性能 */ 'row-key'?: boolean | string; /** * 合并行或列的计算方法 */ 'span-method'?: Function; /** * 是否在表尾显示合计行 */ 'show-summary'?: boolean; /** * 合计行第一列的文本 */ 'sum-text'?: string; /** * 自定义的合计计算方法 */ 'summary-method'?: Function; /** * 树形数据缩进宽度,单位 px */ 'indent-size'?: number; /** * 异步加载树形数据的方法,详见示例 */ 'load-data'?: Function; /** * 展开树形数据时,是否需要更新 `_showChildren` 字段,使用异步树形数据时建议开启 */ 'update-show-children'?: boolean; /** * 当前行点击右键是否会阻止默认行为 */ 'context-menu'?: boolean; /** * 点击右键弹出菜单,需配合 slot `contextMenu` 一起使用,详见示例 */ 'show-context-menu'?: boolean; /** * 列固定时,阴影显示规则,可选值为 `auto`、`show`、`hide` */ 'fixed-shadow'?: string; /** * 点击右键菜单项是否自动关闭右键菜单 */ 'auto-close-contextmenu'?: boolean; /** * 开启 `highlight-row` 后有效,当表格的当前行发生变化的时候会触发 */ onOnCurrentChange?: (event?: any) => any; /** * 在多选模式下有效,选中某一项时触发 */ onOnSelect?: (event?: any) => any; /** * 在多选模式下有效,取消选中某一项时触发 */ onOnSelectCancel?: (event?: any) => any; /** * 在多选模式下有效,点击全选时触发 */ onOnSelectAll?: (event?: any) => any; /** * 在多选模式下有效,点击取消全选时触发 */ onOnSelectAllCancel?: (event?: any) => any; /** * 在多选模式下有效,只要选中项发生变化时就会触发 */ onOnSelectionChange?: (event?: any) => any; /** * 排序时有效,当点击排序时触发 */ onOnSortChange?: (event?: any) => any; /** * 筛选时有效,筛选条件发生变化时触发 */ onOnFilterChange?: (event?: any) => any; /** * 单击某一行时触发 */ onOnRowClick?: (event?: any) => any; /** * 双击某一行时触发 */ onOnRowDblclick?: (event?: any) => any; /** * 点击单元格时触发 */ onOnCellClick?: (event?: any) => any; /** * 展开或收起某一行时触发 */ onOnExpand?: (event?: any) => any; /** * 拖拽排序松开时触发,返回置换的两行数据索引 */ onOnDragDrop?: (event?: any) => any; /** * 拖拽调整列宽时触发 */ onOnColumnWidthResize?: (event?: any) => any; /** * 当前行点击右键时触发 */ onOnContextmenu?: (event?: any) => any; /** * 展开或收起子数据时触发 */ onOnExpandTree?: (event?: any) => any; 'v-slots'?: { /** * 表头 */ header?: () => any; /** * 页脚 */ footer?: () => any; /** * 加载中 */ loading?: () => any; /** * 右键菜单,详见示例 */ contextMenu?: () => any; }; }> export declare const TableColumnConfig: { /** * 列类型,可选值为 index、selection、expand、html */ type?: 'index' | 'selection' | 'expand' | 'html'; /** * 列头显示文字 */ title?: string; /** * 对应列内容的字段名 */ key?: string; /** * 列宽 */ width?: number; /** * 最小列宽 */ minWidth?: number; /** * 最大列宽 */ maxWidth?: number; /** * 对齐方式,可选值为 `left` 左对齐、`right` 右对齐和 `center` 居中对齐 */ align?: 'left' | 'right' | 'center'; /** * 列的样式名称 */ className?: string; /** * 列是否固定在左侧或者右侧,可选值为 `left` 左侧和 `right` 右侧 */ fixed?: 'left' | 'right'; /** * 开启后,文本将不换行,超出部分显示为省略号 */ ellipsis?: boolean; /** * 开启后,文本将不换行,超出部分显示为省略号,并用 Tooltip 组件显示完整内容 */ tooltip?: boolean; /** * 配置 Tooltip 的主题,可选值为 dark 或 light */ tooltipTheme?: string; /** * 配置 Tooltip 的最大宽,默认是 300 */ tooltipMaxWidth?: number; /** * 自定义渲染列,使用 Vue 的 Render 函数。传入两个参数,第一个是 h,第二个为对象,包含 row、column 和 index,分别指当前行数据,当前列数据,当前行索引,详见示例。 */ render?: Function; /** * 自定义列头显示内容,使用 Vue 的 Render 函数。传入两个参数,第一个是 h,第二个为对象,包含 `column` 和 `index`,分别为当前列数据和当前列索引。 */ renderHeader?: Function; /** * type 为 index 时可用,自定义序号 */ indexMethod?: Function; /** * 对应列是否可以排序,如果设置为 `custom`,则代表用户希望远程排序,需要监听 Table 的 on-sort-change 事件 */ sortable?: boolean | 'custom'; /** * 自定义排序使用的方法,接收三个参数 a 、 b 和 type,当设置 `sortable: true` 时有效。type 值为 asc 和 desc */ sortMethod?: Function; /** * 设置初始化排序。值为 asc 和 desc */ sortType?: 'asc' | 'desc'; /** * 过滤数据的选项,格式为数组,数组中每项包含 `label` 和 `value` 属性,使用过滤,必须同时配置 filterMethod */ filters?: any[]; /** * 数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示 */ filterMethod?: Function; /** * 数据过滤的选项是否多选 */ filterMultiple?: boolean; /** * 在初始化时使用过滤,数组,值为需要过滤的 value 集合 */ filteredValue?: any[]; /** * 使用远程过滤 */ filterRemote?: Function; /** * 表头分组 */ children?: any[]; /** * 该列是否允许拖拽调整宽度,需开启 border 属性,且设置 width */ resizable?: boolean; /** * 指定该列为显示展开/收起图标,树形数据时使用 */ tree?: boolean; /** * 使用 slot 自定义列时,列的渲染模式。可选值为 block、inline、inline-block,当使用树形数据时,建议使用 inline 或 inline-block */ display?: string; }