vxe-table 3.21.11 → 3.21.12

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 (45) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/menu/panel.js +2 -2
  6. package/es/table/src/cell.js +17 -13
  7. package/es/table/src/columnInfo.js +85 -81
  8. package/es/table/style.css +18 -6
  9. package/es/table/style.min.css +1 -1
  10. package/es/ui/index.js +1 -1
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-table/style.css +18 -6
  13. package/es/vxe-table/style.min.css +1 -1
  14. package/lib/index.css +1 -1
  15. package/lib/index.min.css +1 -1
  16. package/lib/index.umd.js +256 -242
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/style.css +1 -1
  19. package/lib/style.min.css +1 -1
  20. package/lib/table/module/menu/panel.js +3 -3
  21. package/lib/table/module/menu/panel.min.js +1 -1
  22. package/lib/table/src/cell.js +6 -4
  23. package/lib/table/src/cell.min.js +1 -1
  24. package/lib/table/src/columnInfo.js +93 -81
  25. package/lib/table/src/columnInfo.min.js +1 -1
  26. package/lib/table/style/style.css +18 -6
  27. package/lib/table/style/style.min.css +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/lib/vxe-table/style/style.css +18 -6
  33. package/lib/vxe-table/style/style.min.css +1 -1
  34. package/package.json +2 -2
  35. package/packages/table/module/menu/panel.ts +2 -2
  36. package/packages/table/src/cell.ts +17 -13
  37. package/packages/table/src/columnInfo.ts +90 -84
  38. package/packages/table/src/util.ts +1 -1
  39. package/styles/components/table.scss +24 -6
  40. /package/es/{iconfont.1781074394243.ttf → iconfont.1781140842818.ttf} +0 -0
  41. /package/es/{iconfont.1781074394243.woff → iconfont.1781140842818.woff} +0 -0
  42. /package/es/{iconfont.1781074394243.woff2 → iconfont.1781140842818.woff2} +0 -0
  43. /package/lib/{iconfont.1781074394243.ttf → iconfont.1781140842818.ttf} +0 -0
  44. /package/lib/{iconfont.1781074394243.woff → iconfont.1781140842818.woff} +0 -0
  45. /package/lib/{iconfont.1781074394243.woff2 → iconfont.1781140842818.woff2} +0 -0
@@ -36,8 +36,8 @@ export default {
36
36
  const tableReactData = $xeTable;
37
37
  const { ctxMenuStore } = tableReactData;
38
38
  const menuOpts = $xeTable.computeMenuOpts;
39
- const { destroyOnClose } = menuOpts;
40
- const { visible, list, className } = ctxMenuStore;
39
+ const { destroyOnClose, className } = menuOpts;
40
+ const { visible, list } = ctxMenuStore;
41
41
  return h('div', {
42
42
  ref: 'refElem',
43
43
  class: ['vxe-table--context-menu-wrapper', className, {
@@ -944,22 +944,26 @@ export const Cell = {
944
944
  }
945
945
  return renderCellBaseVNs(h, params, [
946
946
  showIcon && (!visibleMethod || visibleMethod(params))
947
- ? h('span', {
947
+ ? h('div', {
948
948
  class: ['vxe-table--expanded', {
949
949
  'is--active': isActive
950
- }],
951
- on: {
952
- mousedown(evnt) {
953
- evnt.stopPropagation();
954
- },
955
- click(evnt) {
956
- $table.triggerRowExpandEvent(evnt, params);
957
- }
958
- }
950
+ }]
959
951
  }, [
960
- h('i', {
961
- class: ['vxe-table--expand-btn', isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isActive ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))]
962
- })
952
+ h('span', {
953
+ class: 'vxe-table--expand-btn',
954
+ on: {
955
+ mousedown(evnt) {
956
+ evnt.stopPropagation();
957
+ },
958
+ click(evnt) {
959
+ $table.triggerRowExpandEvent(evnt, params);
960
+ }
961
+ }
962
+ }, [
963
+ h('i', {
964
+ class: isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isActive ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))
965
+ })
966
+ ])
963
967
  ])
964
968
  : renderEmptyElement($table),
965
969
  defaultSlot || labelField
@@ -2,43 +2,46 @@ import XEUtils from 'xe-utils';
2
2
  import { VxeUI } from '../../ui';
3
3
  import { toFilters } from './util';
4
4
  import { isEnableConf, getFuncText } from '../../ui/src/utils';
5
+ import { isPx } from '../../ui/src/dom';
5
6
  import { warnLog, errLog } from '../../ui/src/log';
6
7
  const { getI18n, formats, renderer } = VxeUI;
7
8
  export class ColumnInfo {
8
9
  /* eslint-disable @typescript-eslint/no-use-before-define */
9
- constructor($xeTable, _vm, { renderHeader, renderCell, renderFooter, renderData } = {}) {
10
+ constructor($xeTable, colConfs, { renderHeader, renderCell, renderFooter, renderData } = {}) {
10
11
  const tableProps = $xeTable;
11
12
  const $xeGrid = $xeTable.$xeGrid;
12
13
  const $xeGantt = $xeTable.$xeGantt;
13
14
  const $xeGGWrapper = $xeGrid || $xeGantt;
14
- const { field, editRender, filterRender } = _vm;
15
- const colId = _vm.colId || XEUtils.uniqueId('col_');
15
+ const { type, field, width, visible, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs;
16
+ const colId = colConfs.colId || XEUtils.uniqueId('col_');
16
17
  const proxyOpts = $xeGrid ? $xeGrid.computeProxyOpts : null;
17
- const formatter = _vm.formatter;
18
- const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
19
- const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
18
+ const defaultVisible = XEUtils.isBoolean(visible) ? visible : true;
19
+ const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0;
20
+ const flCompConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
20
21
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
21
- const filters = toFilters(_vm.filters, colId);
22
+ const filters = toFilters(colConfs.filters, colId);
22
23
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
23
- if (_vm.type && types.indexOf(_vm.type) === -1) {
24
- warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
24
+ if (type && types.indexOf(type) === -1) {
25
+ warnLog('vxe.error.errProp', [`type=${type}`, types.join(', ')]);
25
26
  }
26
- if (XEUtils.isBoolean(_vm.cellRender) || (_vm.cellRender && !XEUtils.isObject(_vm.cellRender))) {
27
- warnLog('vxe.error.errProp', [`column.cell-render=${_vm.cellRender}`, 'column.cell-render={}']);
27
+ if (XEUtils.isBoolean(cellRender) || (cellRender && !XEUtils.isObject(cellRender))) {
28
+ warnLog('vxe.error.errProp', [`column.cell-render=${cellRender}`, 'column.cell-render={}']);
28
29
  }
29
- if (XEUtils.isBoolean(_vm.editRender) || (_vm.editRender && !XEUtils.isObject(_vm.editRender))) {
30
- warnLog('vxe.error.errProp', [`column.edit-render=${_vm.editRender}`, 'column.edit-render={}']);
30
+ if (XEUtils.isBoolean(editRender) || (editRender && !XEUtils.isObject(editRender))) {
31
+ warnLog('vxe.error.errProp', [`column.edit-render=${editRender}`, 'column.edit-render={}']);
31
32
  }
32
- if (_vm.type === 'expand') {
33
+ if (type === 'expand') {
33
34
  const { treeConfig } = tableProps;
34
35
  if (treeConfig && ($xeTable.treeOpts.showLine || $xeTable.treeOpts.line)) {
35
36
  errLog('vxe.error.errConflicts', ['tree-config.line', 'column.type=expand']);
36
37
  }
37
38
  }
38
- if (_vm.remoteSort) {
39
+ // 参数已废弃
40
+ if (colConfs.remoteSort) {
39
41
  warnLog('vxe.error.delProp', ['column.remote-sort', 'sort-config.remote']);
40
42
  }
41
- if (_vm.sortMethod) {
43
+ // 参数已废弃
44
+ if (colConfs.sortMethod) {
42
45
  warnLog('vxe.error.delProp', ['column.sort-method', 'sort-config.sortMethod']);
43
46
  }
44
47
  if (formatter) {
@@ -55,9 +58,9 @@ export class ColumnInfo {
55
58
  }
56
59
  }
57
60
  }
58
- if (_vm.aggFunc) {
59
- if (!$xeTable.handlePivotTableAggData && _vm.aggFunc !== true) {
60
- errLog('vxe.error.errProp', [`column.agg-func=${_vm.aggFunc}`, 'column.agg-func=true']);
61
+ if (aggFunc) {
62
+ if (!$xeTable.handlePivotTableAggData && aggFunc !== true) {
63
+ errLog('vxe.error.errProp', [`column.agg-func=${aggFunc}`, 'column.agg-func=true']);
61
64
  }
62
65
  }
63
66
  if (field && editRender) {
@@ -70,73 +73,74 @@ export class ColumnInfo {
70
73
  }
71
74
  Object.assign(this, {
72
75
  // 基本属性
73
- type: _vm.type,
74
- property: _vm.field,
76
+ type: colConfs.type,
77
+ property: colConfs.field,
75
78
  field: field,
76
- title: _vm.title,
77
- width: _vm.width,
78
- minWidth: _vm.minWidth,
79
- maxWidth: _vm.maxWidth,
80
- resizable: _vm.resizable,
81
- fixed: _vm.fixed,
82
- align: _vm.align,
83
- headerAlign: _vm.headerAlign,
84
- footerAlign: _vm.footerAlign,
85
- showOverflow: _vm.showOverflow,
86
- showHeaderOverflow: _vm.showHeaderOverflow,
87
- showFooterOverflow: _vm.showFooterOverflow,
88
- className: _vm.className,
89
- headerClassName: _vm.headerClassName,
90
- footerClassName: _vm.footerClassName,
79
+ title: colConfs.title,
80
+ width: colConfs.width,
81
+ minWidth: colConfs.minWidth,
82
+ maxWidth: colConfs.maxWidth,
83
+ resizable: colConfs.resizable,
84
+ fixed: colConfs.fixed,
85
+ align: colConfs.align,
86
+ headerAlign: colConfs.headerAlign,
87
+ footerAlign: colConfs.footerAlign,
88
+ showOverflow: colConfs.showOverflow,
89
+ showHeaderOverflow: colConfs.showHeaderOverflow,
90
+ showFooterOverflow: colConfs.showFooterOverflow,
91
+ className: colConfs.className,
92
+ headerClassName: colConfs.headerClassName,
93
+ footerClassName: colConfs.footerClassName,
91
94
  formatter,
92
- headerFormatter: _vm.headerFormatter,
93
- footerFormatter: _vm.footerFormatter,
94
- padding: _vm.padding,
95
- verticalAlign: _vm.verticalAlign,
96
- sortable: _vm.sortable,
97
- sortBy: _vm.sortBy,
98
- sortType: _vm.sortType,
99
- sortMethod: _vm.sortMethod,
100
- remoteSort: _vm.remoteSort,
95
+ headerFormatter: colConfs.headerFormatter,
96
+ footerFormatter: colConfs.footerFormatter,
97
+ padding: colConfs.padding,
98
+ verticalAlign: colConfs.verticalAlign,
99
+ sortable: colConfs.sortable,
100
+ sortBy: colConfs.sortBy,
101
+ sortType: colConfs.sortType,
102
+ // 参数已废弃
103
+ sortMethod: colConfs.sortMethod,
104
+ // 参数已废弃
105
+ remoteSort: colConfs.remoteSort,
101
106
  filters: filters,
102
- filterMultiple: XEUtils.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
103
- filterMethod: _vm.filterMethod,
104
- filterResetMethod: _vm.filterResetMethod,
105
- filterRecoverMethod: _vm.filterRecoverMethod,
107
+ filterMultiple: XEUtils.isBoolean(filterMultiple) ? filterMultiple : true,
108
+ filterMethod: colConfs.filterMethod,
109
+ filterResetMethod: colConfs.filterResetMethod,
110
+ filterRecoverMethod: colConfs.filterRecoverMethod,
106
111
  filterRender: filterRender,
107
- floatingFilters: _vm.floatingFilters,
108
- rules: _vm.rules,
109
- rowGroupNode: _vm.rowGroupNode,
110
- treeNode: _vm.treeNode,
111
- dragSort: _vm.dragSort,
112
- rowResize: _vm.rowResize,
113
- cellType: _vm.cellType,
114
- cellRender: _vm.cellRender,
112
+ floatingFilters: colConfs.floatingFilters,
113
+ rules: colConfs.rules,
114
+ rowGroupNode: colConfs.rowGroupNode,
115
+ treeNode: colConfs.treeNode,
116
+ dragSort: colConfs.dragSort,
117
+ rowResize: colConfs.rowResize,
118
+ cellType: colConfs.cellType,
119
+ cellRender: colConfs.cellRender,
115
120
  editRender: editRender,
116
- contentRender: _vm.contentRender,
117
- headerExportMethod: _vm.headerExportMethod,
118
- exportMethod: _vm.exportMethod,
119
- footerExportMethod: _vm.footerExportMethod,
120
- titleHelp: _vm.titleHelp,
121
- titlePrefix: _vm.titlePrefix,
122
- titleSuffix: _vm.titleSuffix,
123
- aggFunc: _vm.aggFunc,
124
- copyMethod: _vm.copyMethod,
125
- cutMethod: _vm.cutMethod,
126
- pasteMethod: _vm.pasteMethod,
121
+ contentRender: colConfs.contentRender,
122
+ headerExportMethod: colConfs.headerExportMethod,
123
+ exportMethod: colConfs.exportMethod,
124
+ footerExportMethod: colConfs.footerExportMethod,
125
+ titleHelp: colConfs.titleHelp,
126
+ titlePrefix: colConfs.titlePrefix,
127
+ titleSuffix: colConfs.titleSuffix,
128
+ aggFunc: colConfs.aggFunc,
129
+ copyMethod: colConfs.copyMethod,
130
+ cutMethod: colConfs.cutMethod,
131
+ pasteMethod: colConfs.pasteMethod,
127
132
  // 自定义参数
128
- params: _vm.params,
133
+ params: colConfs.params,
129
134
  // 渲染属性
130
135
  id: colId,
131
136
  parentId: null,
132
- visible,
137
+ visible: defaultVisible,
133
138
  // 内部属性(一旦被使用,将导致不可升级版本)
134
139
  defaultParentId: null,
135
140
  halfVisible: false,
136
- defaultVisible: visible,
137
- defaultFixed: _vm.fixed,
138
- defaultAggGroup: _vm.aggGroup,
139
- defaultAggFunc: _vm.aggFunc,
141
+ defaultVisible: defaultVisible,
142
+ defaultFixed: colConfs.fixed,
143
+ defaultAggFunc: colConfs.aggFunc,
140
144
  checked: false,
141
145
  halfChecked: false,
142
146
  disabled: false,
@@ -157,7 +161,7 @@ export class ColumnInfo {
157
161
  renderAggFormat: null,
158
162
  renderFixed: '',
159
163
  renderVisible: false,
160
- renderWidth: 0,
164
+ renderWidth: defaultRenderWidth,
161
165
  renderHeight: 0,
162
166
  renderResizeWidth: 0,
163
167
  renderAutoWidth: 0,
@@ -165,12 +169,12 @@ export class ColumnInfo {
165
169
  renderLeft: 0,
166
170
  renderArgs: [],
167
171
  model: {},
168
- renderHeader: renderHeader || _vm.renderHeader,
169
- renderCell: renderCell || _vm.renderCell,
170
- renderFooter: renderFooter || _vm.renderFooter,
172
+ renderHeader: renderHeader || colConfs.renderHeader,
173
+ renderCell: renderCell || colConfs.renderCell,
174
+ renderFooter: renderFooter || colConfs.renderFooter,
171
175
  renderData,
172
176
  // 单元格插槽,只对 grid 有效
173
- slots: _vm.slots
177
+ slots: colConfs.slots
174
178
  });
175
179
  if (ctFilterOptions && (!filters || !filters.length)) {
176
180
  this.filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this }), colId);
@@ -185,8 +189,8 @@ export class ColumnInfo {
185
189
  return getFuncText(this.title || (this.type === 'seq' ? getI18n('vxe.table.seqTitle') : ''));
186
190
  }
187
191
  getKey() {
188
- const { type } = this;
189
- return this.field || (type ? `type=${type}` : null);
192
+ const { type, field } = this;
193
+ return field || (type ? `type=${type}` : null);
190
194
  }
191
195
  update(name, value) {
192
196
  // 不支持直接修改的属性
@@ -3563,6 +3563,10 @@
3563
3563
  .vxe-table--render-default {
3564
3564
  /*展开行*/
3565
3565
  }
3566
+ .vxe-table--render-default .vxe-body--column.col--expand > .vxe-cell .vxe-cell--wrapper {
3567
+ display: flex;
3568
+ flex-direction: row;
3569
+ }
3566
3570
  .vxe-table--render-default .vxe-table--row-expanded-wrapper {
3567
3571
  position: absolute;
3568
3572
  top: 0;
@@ -3594,23 +3598,31 @@
3594
3598
  border-right: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
3595
3599
  }
3596
3600
  .vxe-table--render-default .vxe-table--expanded {
3597
- cursor: pointer;
3601
+ display: flex;
3602
+ flex-direction: row;
3603
+ align-items: center;
3604
+ justify-content: center;
3605
+ flex-shrink: 0;
3598
3606
  }
3599
3607
  .vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn {
3600
- display: inline-block;
3601
- width: 1em;
3602
- height: 1em;
3603
- text-align: center;
3608
+ cursor: pointer;
3604
3609
  -webkit-user-select: none;
3605
3610
  -moz-user-select: none;
3606
3611
  user-select: none;
3607
3612
  color: var(--vxe-ui-font-lighten-color);
3608
- transition: transform 0.1s ease-in-out;
3609
3613
  }
3610
3614
  .vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn:hover {
3611
3615
  color: var(--vxe-ui-font-color);
3612
3616
  }
3617
+ .vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn i {
3618
+ display: inline-block;
3619
+ width: 1em;
3620
+ height: 1em;
3621
+ line-height: 1em;
3622
+ transition: transform 0.1s ease-in-out;
3623
+ }
3613
3624
  .vxe-table--render-default .vxe-table--expanded + .vxe-table--expand-label {
3625
+ flex-grow: 1;
3614
3626
  padding-left: 0.5em;
3615
3627
  }
3616
3628
  .vxe-table--render-default .vxe-body--expanded-row.is--padding > .vxe-body--expanded-column > .vxe-body--expanded-cell {