seatonwan9
2025-08-14 a0fc5b1e703769a8936fd8671ec9cdd9adfda20a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * @Description:Table组件的全局声明
 * @Version: 2.0
 * @Autor: wuyun
 * @Date: 2022-07-21 16:48:08
 * @LastEditors: wuyun
 * @LastEditTime: 2022-08-12 11:34:27
 */
// table表格
declare namespace Table {
    type Type = 'selection' | 'index' | 'expand' | 'image'
    type Size = 'large' | 'default' | 'small'
    type Align = 'center' | 'left' | 'right'
    interface ButtonItem {
        name: string
        command: string | number
        type?: 'primary' | 'success' | 'warning' | 'danger' | 'info'
    }
    interface Column {
        type?: Type
        // 对应列的类型。 如果设置了selection则显示多选框; 如果设置了 index 则显示该行的索引(从 1 开始计算); 如果设置了 expand 则显示为一个可展开的按钮
        label: string
        prop?: string
        slot?: string
        width?: string
        align?: Align
        showOverflowTooltip?: boolean
        buttons?: ButtonItem[]
    }
    interface Option {
        isHighLight?: boolean
        loading?: boolean
        height?: string | number
        // Table 的高度, 默认为自动高度。 如果 height 为 number 类型,单位 px;如果 height 为 string 类型,则这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。
        stripe?: boolean // 是否为斑马纹 table
        maxHeight?: string | number // Table 的最大高度。 合法的值为数字或者单位为 px 的高度。
        border?: boolean
        size?: Size // Table 的尺寸
        showHeader?: boolean // 是否显示表头,
        tooltipEffect?: 'dark' | 'light' // tooltip effect 属性
        showPagination?: boolean // 是否展示分页器
        paginationConfig?: Pagination // 分页器配置项,详情见下方 paginationConfig 属性,
        rowStyle?: ({ row, rowIndex }) => string | object // 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style。
    }
    interface Pagination {
        total?: number // 总条目数
        current: number // 当前页数,支持 v-model 双向绑定
        size: number // 每页显示条目个数,支持 v-model 双向绑定
        pageSizes?: number[] // 每页显示个数选择器的选项设置
        layout?: string // 组件布局,子组件名用逗号分隔
        background?: boolean // 是否为分页按钮添加背景色
    }
    interface TableParams {
        current: number // 当前页数,支持 v-model 双向绑定
        size: number // 每页显示条目个数,支持 v-model 双向绑定
    }
    interface PageInfo {
        current: number
        size: number
        total: number
    }
}