vxe-table 3.5.9-beta.7 → 3.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/lib/button/src/button.js +5 -1
  2. package/lib/button/src/button.min.js +1 -1
  3. package/lib/edit/src/mixin.js +13 -9
  4. package/lib/edit/src/mixin.min.js +1 -1
  5. package/lib/export/src/mixin.js +1 -1
  6. package/lib/export/src/mixin.min.js +1 -1
  7. package/lib/filter/src/panel.js +7 -2
  8. package/lib/filter/src/panel.min.js +1 -1
  9. package/lib/form/src/form-config-item.js +10 -13
  10. package/lib/form/src/form-config-item.min.js +1 -1
  11. package/lib/form/src/form-gather.js +1 -3
  12. package/lib/form/src/form-gather.min.js +1 -1
  13. package/lib/form/src/form-item.js +13 -13
  14. package/lib/form/src/form-item.min.js +1 -1
  15. package/lib/form/src/form.js +6 -3
  16. package/lib/form/src/form.min.js +1 -1
  17. package/lib/form/src/util.js +41 -0
  18. package/lib/form/src/util.min.js +1 -1
  19. package/lib/grid/src/grid.js +3 -1
  20. package/lib/grid/src/grid.min.js +1 -1
  21. package/lib/grid/style/style.css +1 -1
  22. package/lib/grid/style/style.min.css +1 -1
  23. package/lib/header/src/header.js +9 -2
  24. package/lib/header/src/header.min.js +1 -1
  25. package/lib/header/style/style.css +0 -100
  26. package/lib/header/style/style.min.css +0 -1
  27. package/lib/index.css +1 -1
  28. package/lib/index.umd.js +494 -401
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/modal/src/modal.js +9 -7
  31. package/lib/modal/src/modal.min.js +1 -1
  32. package/lib/modal/style/style.css +2 -2
  33. package/lib/modal/style/style.min.css +1 -1
  34. package/lib/pager/style/style.css +1 -1
  35. package/lib/pager/style/style.min.css +1 -1
  36. package/lib/select/src/select.js +3 -1
  37. package/lib/select/src/select.min.js +1 -1
  38. package/lib/style.css +1 -1
  39. package/lib/style.min.css +1 -1
  40. package/lib/table/src/body.js +5 -2
  41. package/lib/table/src/body.min.js +1 -1
  42. package/lib/table/src/cell.js +14 -8
  43. package/lib/table/src/cell.min.js +1 -1
  44. package/lib/table/src/methods.js +33 -13
  45. package/lib/table/src/methods.min.js +1 -1
  46. package/lib/table/style/style.css +101 -0
  47. package/lib/table/style/style.min.css +1 -1
  48. package/lib/toolbar/style/style.css +1 -1
  49. package/lib/toolbar/style/style.min.css +1 -1
  50. package/lib/tools/log.js +1 -1
  51. package/lib/tools/log.min.js +1 -1
  52. package/lib/tools/vn.js +18 -0
  53. package/lib/tools/vn.min.js +1 -0
  54. package/lib/v-x-e-table/index.js +1 -1
  55. package/lib/v-x-e-table/index.min.js +1 -1
  56. package/lib/v-x-e-table/src/store.js +10 -5
  57. package/lib/v-x-e-table/src/store.min.js +1 -1
  58. package/lib/v-x-e-table/style/style.css +1 -1
  59. package/lib/v-x-e-table/style/style.min.css +1 -1
  60. package/package.json +2 -2
  61. package/packages/button/src/button.js +7 -1
  62. package/packages/edit/src/mixin.js +12 -9
  63. package/packages/export/src/mixin.js +2 -2
  64. package/packages/filter/src/panel.js +13 -6
  65. package/packages/form/src/form-config-item.js +23 -19
  66. package/packages/form/src/form-gather.js +1 -3
  67. package/packages/form/src/form-item.js +24 -18
  68. package/packages/form/src/form.js +6 -4
  69. package/packages/form/src/util.js +23 -0
  70. package/packages/grid/src/grid.js +2 -1
  71. package/packages/header/src/header.js +3 -2
  72. package/packages/modal/src/modal.js +5 -4
  73. package/packages/select/src/select.js +2 -1
  74. package/packages/table/src/body.js +38 -23
  75. package/packages/table/src/cell.js +9 -5
  76. package/packages/table/src/methods.js +24 -11
  77. package/packages/tools/vn.js +8 -0
  78. package/packages/v-x-e-table/src/store.js +8 -4
  79. package/styles/header.scss +0 -134
  80. package/styles/table.scss +134 -0
  81. package/styles/variable.scss +1 -1
  82. package/types/column.d.ts +8 -8
  83. package/types/component.d.ts +3 -1
  84. package/types/v-x-e-table/renderer.d.ts +15 -2
@@ -1,135 +1 @@
1
1
  /**Variable**/
2
-
3
- .vxe-table {
4
- .vxe-table--header-wrapper {
5
- color: $vxe-table-header-font-color;
6
- .vxe-table--header-border-line {
7
- position: absolute;
8
- left: 0;
9
- bottom: 0;
10
- height: 0;
11
- border-bottom: $vxe-table-border-width solid $vxe-table-border-color;
12
- }
13
- }
14
- /*排序*/
15
- .vxe-cell--sort {
16
- width: 1.5em;
17
- height: 1.35em;
18
- vertical-align: middle;
19
- text-align: center;
20
- display: inline-block;
21
- position: relative;
22
- }
23
- .vxe-sort--asc-btn,
24
- .vxe-sort--desc-btn {
25
- position: absolute;
26
- left: 0.35em;
27
- color: $vxe-table-column-icon-border-color;
28
- width: 1em;
29
- text-align: center;
30
- cursor: pointer;
31
- &:hover {
32
- color: $vxe-table-font-color;
33
- }
34
- &.sort--active {
35
- color: $vxe-primary-color;
36
- }
37
- }
38
- .vxe-sort--asc-btn {
39
- top: -0.15em;
40
- }
41
- .vxe-sort--desc-btn {
42
- bottom: -0.15em;
43
- }
44
- }
45
-
46
- .vxe-header--column {
47
- position: relative;
48
- font-weight: $vxe-table-header-font-weight;
49
- // user-select: none;
50
- &.col--ellipsis {
51
- & > .vxe-cell {
52
- display: flex;
53
- align-items: center;
54
- .vxe-cell--title {
55
- overflow: hidden;
56
- text-overflow: ellipsis;
57
- white-space: nowrap;
58
- }
59
- & > i,
60
- & > span {
61
- &:not(.vxe-cell--title) {
62
- flex-shrink: 0;
63
- }
64
- }
65
- }
66
- }
67
- .vxe-cell--required-icon {
68
- display: inline-block;
69
- color: $vxe-table-validate-error-color;
70
- width: 0.8em;
71
- height: 1em;
72
- line-height: 1em;
73
- font-family: $vxe-icon-font-family;
74
- font-weight: normal;
75
- position: relative;
76
- &:before {
77
- content: "*";
78
- position: absolute;
79
- left: 0;
80
- top: 0.2em;
81
- }
82
- }
83
- // .vxe-cell--required-icon,
84
- // .vxe-cell--edit-icon,
85
- // .vxe-cell-help-icon,
86
- // .vxe-cell--title {
87
- // vertical-align: middle;
88
- // }
89
- .vxe-cell--required-icon {
90
- margin-right: 0.1em;
91
- }
92
- .vxe-cell--edit-icon,
93
- .vxe-cell-help-icon {
94
- margin-right: 0.2em;
95
- }
96
- .vxe-cell-help-icon {
97
- cursor: help;
98
- }
99
- .vxe-resizable {
100
- position: absolute;
101
- right: -7px;
102
- bottom: 0;
103
- width: 14px;
104
- height: 100%;
105
- text-align: center;
106
- z-index: 1;
107
- cursor: col-resize;
108
- &.is--line {
109
- &:before,
110
- &:after {
111
- content: "";
112
- display: inline-block;
113
- vertical-align: middle;
114
- }
115
- &:before {
116
- width: 1px;
117
- height: 50%;
118
- background-color: $vxe-table-resizable-line-color;
119
- }
120
- &:after {
121
- width: 0;
122
- height: 100%;
123
- }
124
- }
125
- }
126
- }
127
-
128
- .vxe-table--fixed-right-wrapper {
129
- .vxe-header--column {
130
- .vxe-resizable {
131
- right: auto;
132
- left: -7px;
133
- }
134
- }
135
- }
package/styles/table.scss CHANGED
@@ -311,6 +311,140 @@
311
311
  }
312
312
  }
313
313
 
314
+ /*header*/
315
+ .vxe-table {
316
+ .vxe-table--header-wrapper {
317
+ color: $vxe-table-header-font-color;
318
+ .vxe-table--header-border-line {
319
+ position: absolute;
320
+ left: 0;
321
+ bottom: 0;
322
+ height: 0;
323
+ border-bottom: $vxe-table-border-width solid $vxe-table-border-color;
324
+ }
325
+ }
326
+ /*排序*/
327
+ .vxe-cell--sort {
328
+ width: 1.5em;
329
+ height: 1.35em;
330
+ vertical-align: middle;
331
+ text-align: center;
332
+ display: inline-block;
333
+ position: relative;
334
+ }
335
+ .vxe-sort--asc-btn,
336
+ .vxe-sort--desc-btn {
337
+ position: absolute;
338
+ left: 0.35em;
339
+ color: $vxe-table-column-icon-border-color;
340
+ width: 1em;
341
+ text-align: center;
342
+ cursor: pointer;
343
+ &:hover {
344
+ color: $vxe-table-font-color;
345
+ }
346
+ &.sort--active {
347
+ color: $vxe-primary-color;
348
+ }
349
+ }
350
+ .vxe-sort--asc-btn {
351
+ top: -0.15em;
352
+ }
353
+ .vxe-sort--desc-btn {
354
+ bottom: -0.15em;
355
+ }
356
+ }
357
+
358
+ .vxe-header--column {
359
+ position: relative;
360
+ font-weight: $vxe-table-header-font-weight;
361
+ // user-select: none;
362
+ &.col--ellipsis {
363
+ & > .vxe-cell {
364
+ display: flex;
365
+ align-items: center;
366
+ .vxe-cell--title {
367
+ overflow: hidden;
368
+ text-overflow: ellipsis;
369
+ white-space: nowrap;
370
+ }
371
+ & > i,
372
+ & > span {
373
+ &:not(.vxe-cell--title) {
374
+ flex-shrink: 0;
375
+ }
376
+ }
377
+ }
378
+ }
379
+ .vxe-cell--required-icon {
380
+ display: inline-block;
381
+ color: $vxe-table-validate-error-color;
382
+ width: 0.8em;
383
+ height: 1em;
384
+ line-height: 1em;
385
+ font-family: $vxe-icon-font-family;
386
+ font-weight: normal;
387
+ position: relative;
388
+ &:before {
389
+ content: "*";
390
+ position: absolute;
391
+ left: 0;
392
+ top: 0.2em;
393
+ }
394
+ }
395
+ // .vxe-cell--required-icon,
396
+ // .vxe-cell--edit-icon,
397
+ // .vxe-cell-help-icon,
398
+ // .vxe-cell--title {
399
+ // vertical-align: middle;
400
+ // }
401
+ .vxe-cell--required-icon {
402
+ margin-right: 0.1em;
403
+ }
404
+ .vxe-cell--edit-icon,
405
+ .vxe-cell-help-icon {
406
+ margin-right: 0.2em;
407
+ }
408
+ .vxe-cell-help-icon {
409
+ cursor: help;
410
+ }
411
+ .vxe-resizable {
412
+ position: absolute;
413
+ right: -7px;
414
+ bottom: 0;
415
+ width: 14px;
416
+ height: 100%;
417
+ text-align: center;
418
+ z-index: 1;
419
+ cursor: col-resize;
420
+ &.is--line {
421
+ &:before,
422
+ &:after {
423
+ content: "";
424
+ display: inline-block;
425
+ vertical-align: middle;
426
+ }
427
+ &:before {
428
+ width: 1px;
429
+ height: 50%;
430
+ background-color: $vxe-table-resizable-line-color;
431
+ }
432
+ &:after {
433
+ width: 0;
434
+ height: 100%;
435
+ }
436
+ }
437
+ }
438
+ }
439
+ .vxe-table--fixed-right-wrapper {
440
+ .vxe-header--column {
441
+ .vxe-resizable {
442
+ right: auto;
443
+ left: -7px;
444
+ }
445
+ }
446
+ }
447
+
314
448
  /*table*/
315
449
  .vxe-table--render-default {
316
450
  position: relative;
@@ -108,7 +108,7 @@ $vxe-table-menu-item-width: 178px !default;
108
108
  $vxe-table-menu-background-color: #fff !default;
109
109
 
110
110
  /*loading*/
111
- $vxe-loading-background-color: rgba(0, 0, 0, 0.2) !default;
111
+ $vxe-loading-background-color: rgba(0, 0, 0, 0.3) !default;
112
112
  $vxe-loading-z-index: 999 !default;
113
113
 
114
114
  /*validate*/
package/types/column.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CreateElement, VNode } from 'vue'
2
- import { VXETableComponent } from './component'
2
+ import { VXETableComponent, SlotVNodeType } from './component'
3
3
  import { ColumnFilterOption, ColumnFilterParams, ColumnFilterRenderOptions, ColumnFilterSlotParams, ColumnFilterMethodParams } from './filter'
4
4
  import { ColumnCellRenderParams, ColumnDefaultSlotParams, ColumnIconSlotParams, ColumnContentSlotParams, RenderOptions, OptionProps, OptionGroupProps } from './v-x-e-table'
5
5
  import { ColumnHeaderSlotParams, ColumnHeaderRenderParams } from './header'
@@ -292,13 +292,13 @@ export interface ColumnOptions {
292
292
  params?: any;
293
293
 
294
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[];
295
+ default?(params: ColumnDefaultSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
296
+ header?(params: ColumnHeaderSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
297
+ footer?(params: ColumnFooterSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
298
+ content?(params: ColumnContentSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
299
+ filter?(params: ColumnFilterSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
300
+ edit?(params: ColumnEditSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
301
+ icon?(params: ColumnIconSlotParams, h: CreateElement): SlotVNodeType | SlotVNodeType[]
302
302
  };
303
303
  }
304
304
 
@@ -1,4 +1,4 @@
1
- import Vue from 'vue'
1
+ import Vue, { VNode } from 'vue'
2
2
 
3
3
  declare type SizeType = null | '' | 'medium' | 'small' | 'mini'
4
4
 
@@ -22,3 +22,5 @@ export interface RecordInfo {
22
22
  export interface RowInfo {
23
23
  [key: string]: any;
24
24
  }
25
+
26
+ export type SlotVNodeType = VNode | string | number
@@ -21,9 +21,20 @@ export interface VxeGlobalRenderer {
21
21
  }
22
22
 
23
23
  export interface RendererMapOptions {
24
- // 筛选渲染
24
+ /**
25
+ * 请使用 filterClassName
26
+ * @deprecated
27
+ */
25
28
  className?: string;
29
+ /**
30
+ * 请使用 showFilterFooter
31
+ * @deprecated
32
+ */
26
33
  isFooter?: boolean;
34
+
35
+ // 筛选渲染
36
+ filterClassName?: string | ((params: ColumnFilterRenderParams) => string | { [key: string]: boolean })
37
+ showFilterFooter?: boolean;
27
38
  renderFilter?(h: CreateElement, renderOpts: ColumnFilterRenderOptions, params: ColumnFilterRenderParams): VNode[] | string[];
28
39
  filterMethod?(params: ColumnFilterMethodParams): boolean;
29
40
  filterResetMethod?(params: ColumnFilterResetParams): void;
@@ -31,6 +42,7 @@ export interface RendererMapOptions {
31
42
  defaultFilterMethod?(params: ColumnFilterMethodParams): boolean;
32
43
 
33
44
  // 单元格渲染
45
+ cellClassName?: string | ((params: ColumnCellRenderParams | ColumnEditRenderParams) => string | { [key: string]: boolean })
34
46
  renderHeader?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
35
47
  renderDefault?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
36
48
  renderFooter?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnFooterRenderParams): VNode[] | string[];
@@ -38,7 +50,7 @@ export interface RendererMapOptions {
38
50
  footerExportMethod?(params: ColumnExportFooterRenderParams): string;
39
51
 
40
52
  // 编辑渲染
41
- autofocus?: string;
53
+ autofocus?: string | ((params: ColumnCellRenderParams | ColumnEditRenderParams) => HTMLElement | null);
42
54
  renderEdit?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
43
55
  renderCell?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
44
56
 
@@ -50,6 +62,7 @@ export interface RendererMapOptions {
50
62
  renderToolbarTool?(h: CreateElement, renderOpts: ToolbarToolRenderOptions, params: ToolbarToolRenderParams): VNode[] | string[];
51
63
 
52
64
  // 表单-项渲染
65
+ itemClassName?: string | ((params: FormItemRenderParams) => string | { [key: string]: boolean })
53
66
  renderItemTitle?(h: CreateElement, renderOpts: FormItemRenderOptions, params: FormItemRenderParams): VNode[] | string[];
54
67
  renderItemContent?(h: CreateElement, renderOpts: FormItemRenderOptions, params: FormItemRenderParams): VNode[] | string[];
55
68
  itemVisibleMethod?(params: FormItemVisibleParams): boolean;