UNPKG

3.71 kBTypeScriptView Raw
1import { CreateElement, VNode } from 'vue'
2import { VXETableComponent } from './component'
3import { ColumnInfo } from './column'
4import { GridRenderParams, RenderOptions } from './v-x-e-table'
5
6/**
7 * 工具栏
8 */
9export declare class Toolbar extends VXETableComponent {
10 /**
11 * 唯一 ID 标识
12 */
13 id?: string;
14 /**
15 * 是否加载中
16 */
17 loading?: boolean;
18 /**
19 * 列宽拖动配置
20 */
21 resizable?: boolean | {
22 storage?: boolean;
23 };
24 /**
25 * 刷新按钮配置
26 */
27 refresh?: boolean | {
28 query?(params: { page: any, sort: any, filters: any, form: any }): Promise<any>;
29 icon?: string;
30 iconLoading?: string;
31 };
32 /**
33 * 导入按钮配置
34 */
35 import?: boolean | {
36 icon?: string;
37 [key: string]: any;
38 };
39 /**
40 * 导出按钮配置
41 */
42 export?: boolean | {
43 icon?: string;
44 [key: string]: any;
45 };
46 /**
47 * 自定义列配置
48 */
49 custom?: boolean | {
50 trigger?: string,
51 immediate?: boolean;
52 storage?: boolean;
53 checkMethod?(params: { column: ColumnInfo }): boolean;
54 isFooter?: Boolean;
55 icon?: string;
56 [key: string]: any;
57 };
58 /**
59 * 按钮列表
60 */
61 buttons?: ToolbarButtonConfig[];
62 /**
63 * 配套的样式
64 */
65 perfect?: boolean;
66}
67
68export interface ToolbarOptions {
69 /**
70 * 唯一 ID 标识
71 */
72 id?: string;
73 /**
74 * 是否加载中
75 */
76 loading?: boolean;
77 /**
78 * 列宽拖动配置
79 */
80 resizable?: boolean | {
81 storage?: boolean;
82 };
83 /**
84 * 刷新按钮配置
85 */
86 refresh?: boolean | {
87 query?(params: { page: any, sort: any, filters: any, form: any }): Promise<any>;
88 icon?: string;
89 iconLoading?: string;
90 };
91 /**
92 * 导入按钮配置
93 */
94 import?: boolean | {
95 icon?: string;
96 [key: string]: any;
97 };
98 /**
99 * 导出按钮配置
100 */
101 export?: boolean | {
102 icon?: string;
103 [key: string]: any;
104 };
105 /**
106 * 自定义列配置
107 */
108 custom?: boolean | {
109 trigger?: string,
110 immediate?: boolean;
111 storage?: boolean;
112 checkMethod?(params: { column: ColumnInfo }): boolean;
113 isFooter?: Boolean;
114 icon?: string;
115 [key: string]: any;
116 };
117 /**
118 * 按钮列表
119 */
120 buttons?: ToolbarButtonConfig[];
121 /**
122 * 配套的样式
123 */
124 perfect?: boolean;
125
126 slots?: {
127 buttons?(params: ToolbarButtonsSlotParams, h: CreateElement): VNode[] | string[];
128 tools?(params: ToolbarToolsSlotParams, h: CreateElement): VNode[] | string[];
129 };
130 [key: string]: any;
131}
132
133export interface ToolbarButtonsSlotParams extends GridRenderParams {}
134export interface ToolbarToolsSlotParams extends ToolbarButtonsSlotParams {}
135
136/**
137 * 按钮渲染配置项
138 */
139export interface ToolbarButtonRenderOptions extends RenderOptions {}
140export interface ToolbarToolRenderOptions extends RenderOptions {}
141
142/**
143 * 按钮渲染渲染参数
144 */
145export interface ToolbarButtonRenderParams extends GridRenderParams {
146 /**
147 * 按钮对象
148 */
149 button: ToolbarButtonConfig;
150}
151export interface ToolbarToolRenderParams extends GridRenderParams {
152 tool: ToolbarToolConfig;
153}
154
155export class ToolbarButtonConfig {
156 name?: string;
157 type?: string;
158 status?: string;
159 code?: string;
160 visible?: boolean;
161 disabled?: boolean;
162 icon?: string;
163 dropdowns?: string;
164 buttonRender?: ToolbarButtonRenderOptions;
165}
166
167export class ToolbarToolConfig {
168 name?: string;
169 type?: string;
170 status?: string;
171 code?: string;
172 visible?: boolean;
173 disabled?: boolean;
174 icon?: string;
175 dropdowns?: string;
176 toolRender?: ToolbarToolRenderOptions;
177}