1 | import { CreateElement, VNode } from 'vue'
|
2 | import { VXETableComponent } from './component'
|
3 | import { ColumnFilterOption, ColumnFilterParams, ColumnFilterRenderOptions, ColumnFilterSlotParams, ColumnFilterMethodParams } from './filter'
|
4 | import { ColumnCellRenderParams, ColumnDefaultSlotParams, ColumnIconSlotParams, ColumnContentSlotParams, RenderOptions, OptionProps, OptionGroupProps } from './v-x-e-table'
|
5 | import { ColumnHeaderSlotParams, ColumnHeaderRenderParams } from './header'
|
6 | import { ColumnFooterSlotParams, ColumnFooterRenderParams } from './footer'
|
7 | import { ColumnEditRenderOptions, ColumnEditSlotParams } from './edit'
|
8 | import { ColumnExportCellRenderParams, ColumnExportFooterRenderParams } from './export'
|
9 | import { TableOverflow } from './table'
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | export declare class Column extends VXETableComponent {
|
15 | |
16 |
|
17 |
|
18 | type?: 'seq' | 'radio' | 'checkbox' | 'expand' | 'html';
|
19 | |
20 |
|
21 |
|
22 | field?: string;
|
23 | |
24 |
|
25 |
|
26 | title?: string;
|
27 | |
28 |
|
29 |
|
30 | width?: number | string;
|
31 | |
32 |
|
33 |
|
34 | minWidth?: number | string;
|
35 | |
36 |
|
37 |
|
38 | resizable?: boolean;
|
39 | |
40 |
|
41 |
|
42 | fixed?: ColumnFixed;
|
43 | |
44 |
|
45 |
|
46 | align?: ColumnAlign;
|
47 | |
48 |
|
49 |
|
50 | headerAlign?: ColumnAlign;
|
51 | |
52 |
|
53 |
|
54 | footerAlign?: ColumnAlign;
|
55 | |
56 |
|
57 |
|
58 | showOverflow?: TableOverflow;
|
59 | |
60 |
|
61 |
|
62 | showHeaderOverflow?: TableOverflow;
|
63 | |
64 |
|
65 |
|
66 | showFooterOverflow?: TableOverflow;
|
67 | |
68 |
|
69 |
|
70 | className?: string | ((params: ColumnCellRenderParams) => string | any[] | { [key: string]: boolean });
|
71 | /**
|
72 | * 给表头单元格附加 className
|
73 | */
|
74 | headerClassName?: string | ((params: ColumnHeaderRenderParams) => string | any[] | { [key: string]: boolean });
|
75 | /**
|
76 | * 给表尾单元格附加 className
|
77 | */
|
78 | footerClassName?: string | ((params: ColumnFooterRenderParams) => string | any[] | { [key: string]: boolean });
|
79 | /**
|
80 | * 格式化显示内容
|
81 | */
|
82 | formatter?: ((params: ColumnFormatterMethodParams) => string) | any[] | string;
|
83 | /**
|
84 | * 是否允许排序
|
85 | */
|
86 | sortable?: boolean;
|
87 | /**
|
88 | * 是否服务端排序
|
89 | */
|
90 | remoteSort?: boolean;
|
91 | /**
|
92 | * 自定义排序的属性
|
93 | */
|
94 | sortBy?: string | string[];
|
95 | /**
|
96 | * 自定义排序方法
|
97 | */
|
98 | sortMethod?(a: any, b: any): boolean;
|
99 | /**
|
100 | * 配置筛选条件数组
|
101 | */
|
102 | filters?: ColumnFilterOption[];
|
103 | /**
|
104 | * 筛选是否允许多选
|
105 | */
|
106 | filterMultiple?: boolean;
|
107 | /**
|
108 | * 自定义筛选方法
|
109 | */
|
110 | filterMethod?(params: ColumnFilterMethodParams): boolean;
|
111 | /**
|
112 | * 筛选模板配置项
|
113 | */
|
114 | filterRender?: ColumnFilterRenderOptions;
|
115 | /**
|
116 | * 指定为树节点
|
117 | */
|
118 | treeNode?: boolean;
|
119 | /**
|
120 | * 是否可视
|
121 | */
|
122 | visible?: boolean;
|
123 | /**
|
124 | * 自定义单元格数据导出方法
|
125 | */
|
126 | exportMethod?(params: ColumnExportCellRenderParams): string | number;
|
127 | /**
|
128 | * 自定义表尾单元格数据导出方法
|
129 | */
|
130 | footerExportMethod?(params: ColumnExportFooterRenderParams): string | number;
|
131 | /**
|
132 | * 单元格值类型
|
133 | */
|
134 | cellType?: string;
|
135 | /**
|
136 | * 单元格渲染配置项
|
137 | */
|
138 | cellRender?: ColumnCellRenderOptions;
|
139 | /**
|
140 | * 单元格编辑渲染配置项
|
141 | */
|
142 | editRender?: ColumnEditRenderOptions;
|
143 | /**
|
144 | * 内容渲染配置项
|
145 | */
|
146 | contentRender?: ColumnContentRenderOptions;
|
147 | /**
|
148 | * 额外的参数
|
149 | */
|
150 | params?: any;
|
151 | }
|
152 |
|
153 | export type ColumnAlign = 'left' | 'center' | 'right' | null
|
154 | export type ColumnFixed = 'left' | 'right' | null
|
155 |
|
156 | export interface ColumnOptions {
|
157 | /**
|
158 | * 渲染类型
|
159 | */
|
160 | type?: 'seq' | 'radio' | 'checkbox' | 'expand' | 'html';
|
161 | /**
|
162 | * 列字段名
|
163 | */
|
164 | field?: string;
|
165 | /**
|
166 | * 列标题
|
167 | */
|
168 | title?: string;
|
169 | /**
|
170 | * 列宽度
|
171 | */
|
172 | width?: number | string;
|
173 | /**
|
174 | * 列最小宽度,把剩余宽度按比例分配
|
175 | */
|
176 | minWidth?: number | string;
|
177 | /**
|
178 | * 是否允许拖动列宽调整大小
|
179 | */
|
180 | resizable?: boolean;
|
181 | /**
|
182 | * 将列固定在左侧或者右侧
|
183 | */
|
184 | fixed?: ColumnFixed;
|
185 | /**
|
186 | * 列对其方式
|
187 | */
|
188 | align?: ColumnAlign;
|
189 | /**
|
190 | * 表头对齐方式
|
191 | */
|
192 | headerAlign?: ColumnAlign;
|
193 | /**
|
194 | * 表尾列的对齐方式
|
195 | */
|
196 | footerAlign?: ColumnAlign;
|
197 | /**
|
198 | * 当内容过长时显示为省略号
|
199 | */
|
200 | showOverflow?: boolean | string;
|
201 | /**
|
202 | * 当表头内容过长时显示为省略号
|
203 | */
|
204 | showHeaderOverflow?: boolean | string;
|
205 | /**
|
206 | * 当表尾内容过长时显示为省略号
|
207 | */
|
208 | showFooterOverflow?: boolean | string;
|
209 | /**
|
210 | * 给单元格附加 className
|
211 | */
|
212 | className?: string | ((params: ColumnCellRenderParams) => string | any[] | { [key: string]: boolean });
|
213 | /**
|
214 | * 给表头单元格附加 className
|
215 | */
|
216 | headerClassName?: string | ((params: ColumnHeaderRenderParams) => string | any[] | { [key: string]: boolean });
|
217 | /**
|
218 | * 给表尾单元格附加 className
|
219 | */
|
220 | footerClassName?: string | ((params: ColumnFooterRenderParams) => string | any[] | { [key: string]: boolean });
|
221 | /**
|
222 | * 格式化显示内容
|
223 | */
|
224 | formatter?: ((params: ColumnFormatterMethodParams) => string) | any[] | string;
|
225 | /**
|
226 | * 是否允许排序
|
227 | */
|
228 | sortable?: boolean;
|
229 | /**
|
230 | * 是否服务端排序
|
231 | */
|
232 | remoteSort?: boolean;
|
233 | /**
|
234 | * 自定义排序的属性
|
235 | */
|
236 | sortBy?: string | string[];
|
237 | /**
|
238 | * 自定义排序方法
|
239 | */
|
240 | sortMethod?(a: any, b: any): boolean;
|
241 | /**
|
242 | * 配置筛选条件数组
|
243 | */
|
244 | filters?: ColumnFilterOption[];
|
245 | /**
|
246 | * 筛选是否允许多选
|
247 | */
|
248 | filterMultiple?: boolean;
|
249 | /**
|
250 | * 自定义筛选方法
|
251 | */
|
252 | filterMethod?(params: ColumnFilterMethodParams): boolean;
|
253 | /**
|
254 | * 筛选模板配置项
|
255 | */
|
256 | filterRender?: ColumnFilterRenderOptions;
|
257 | /**
|
258 | * 指定为树节点
|
259 | */
|
260 | treeNode?: boolean;
|
261 | /**
|
262 | * 是否可视
|
263 | */
|
264 | visible?: boolean;
|
265 | /**
|
266 | * 自定义单元格数据导出方法
|
267 | */
|
268 | exportMethod?(params: ColumnExportCellRenderParams): string | number;
|
269 | /**
|
270 | * 自定义表尾单元格数据导出方法
|
271 | */
|
272 | footerExportMethod?(params: ColumnExportFooterRenderParams): string | number;
|
273 | /**
|
274 | * 单元格值类型
|
275 | */
|
276 | cellType?: string;
|
277 | /**
|
278 | * 单元格渲染配置项
|
279 | */
|
280 | cellRender?: ColumnCellRenderOptions;
|
281 | /**
|
282 | * 单元格编辑渲染配置项
|
283 | */
|
284 | editRender?: ColumnEditRenderOptions;
|
285 | /**
|
286 | * 内容渲染配置项
|
287 | */
|
288 | contentRender?: ColumnContentRenderOptions;
|
289 | /**
|
290 | * 额外的参数
|
291 | */
|
292 | params?: any;
|
293 |
|
294 | slots?: {
|
295 | default?(params: ColumnDefaultSlotParams, h: CreateElement): VNode[] | string[];
|
296 | header?(params: ColumnHeaderSlotParams, h: CreateElement): VNode[] | string[];
|
297 | footer?(params: ColumnFooterSlotParams, h: CreateElement): VNode[] | string[];
|
298 | content?(params: ColumnContentSlotParams, h: CreateElement): VNode[] | string[];
|
299 | filter?(params: ColumnFilterSlotParams, h: CreateElement): VNode[] | string[];
|
300 | edit?(params: ColumnEditSlotParams, h: CreateElement): VNode[] | string[];
|
301 | icon?(params: ColumnIconSlotParams, h: CreateElement): VNode[] | string[];
|
302 | };
|
303 | }
|
304 |
|
305 | /**
|
306 | * 列对象
|
307 | */
|
308 | export class ColumnInfo {
|
309 | title: string;
|
310 | width: number | string;
|
311 | minWidth: number | string;
|
312 | resizable: boolean;
|
313 | fixed: string;
|
314 | align: ColumnAlign;
|
315 | headerAlign: ColumnAlign;
|
316 | footerAlign: ColumnAlign;
|
317 | property: string;
|
318 | type: string;
|
319 | sortable: boolean;
|
320 | treeNode: boolean;
|
321 | filters: ColumnFilterParams[];
|
322 | filterRender: ColumnFilterRenderOptions;
|
323 | cellType: string;
|
324 | cellRender: ColumnCellRenderOptions;
|
325 | editRender: ColumnEditRenderOptions;
|
326 | contentRender: ColumnContentRenderOptions;
|
327 |
|
328 | id: string;
|
329 | parentId: string;
|
330 | level: number;
|
331 | rowSpan: number;
|
332 | colSpan: number;
|
333 | visible: boolean;
|
334 | halfVisible: boolean;
|
335 | defaultVisible: any;
|
336 | checked: boolean;
|
337 | halfChecked: boolean;
|
338 | disabled: boolean;
|
339 | order: string;
|
340 | renderWidth: number;
|
341 | renderHeight: number;
|
342 | resizeWidth: number;
|
343 | model: {
|
344 | update: boolean;
|
345 | value: any;
|
346 | };
|
347 | children: ColumnInfo[];
|
348 |
|
349 | getTitle(): string;
|
350 | [key: string]: any;
|
351 | }
|
352 |
|
353 | export class ColumnConfig extends ColumnInfo {}
|
354 |
|
355 | /**
|
356 | * 默认的渲染配置项
|
357 | */
|
358 | export interface ColumnCellRenderOptions extends RenderOptions {
|
359 | /**
|
360 | * 下拉选项列表(需要渲染器支持)
|
361 | */
|
362 | options?: { [key: string]: any }[];
|
363 | /**
|
364 | * 下拉选项属性参数配置(需要渲染器支持)
|
365 | */
|
366 | optionProps?: OptionProps;
|
367 | /**
|
368 | * 下拉分组选项列表(需要渲染器支持)
|
369 | */
|
370 | optionGroups?: { [key: string]: any }[];
|
371 | /**
|
372 | * 下拉分组选项属性参数配置(需要渲染器支持)
|
373 | */
|
374 | optionGroupProps?: OptionGroupProps;
|
375 | /**
|
376 | * 渲染组件的内容(需要渲染器支持)
|
377 | */
|
378 | content?: string;
|
379 | }
|
380 |
|
381 | /**
|
382 | * 内容渲染配置项
|
383 | */
|
384 | export interface ColumnContentRenderOptions extends RenderOptions {
|
385 | /**
|
386 | * 下拉选项列表(需要渲染器支持)
|
387 | */
|
388 | options?: { [key: string]: any }[];
|
389 | /**
|
390 | * 下拉选项属性参数配置(需要渲染器支持)
|
391 | */
|
392 | optionProps?: OptionProps;
|
393 | /**
|
394 | * 下拉分组选项列表(需要渲染器支持)
|
395 | */
|
396 | optionGroups?: { [key: string]: any }[];
|
397 | /**
|
398 | * 下拉分组选项属性参数配置(需要渲染器支持)
|
399 | */
|
400 | optionGroupProps?: OptionGroupProps;
|
401 | }
|
402 |
|
403 | /**
|
404 | * 格式化方法参数
|
405 | */
|
406 | export interface ColumnFormatterMethodParams {
|
407 | /**
|
408 | * 单元格值
|
409 | */
|
410 | cellValue: any;
|
411 | /**
|
412 | * 列对象
|
413 | */
|
414 | column: ColumnInfo;
|
415 | /**
|
416 | * 行数据对象
|
417 | */
|
418 | row: any;
|
419 | }
|
420 |
|
\ | No newline at end of file |