vxe-table 4.19.11 → 4.19.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 (48) hide show
  1. package/dist/all.esm.js +215 -212
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/index.css +1 -1
  5. package/es/index.min.css +1 -1
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/table/module/menu/panel.js +2 -2
  9. package/es/table/src/cell.js +16 -12
  10. package/es/table/src/columnInfo.js +77 -77
  11. package/es/table/style.css +18 -6
  12. package/es/table/style.min.css +1 -1
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-table/style.css +18 -6
  16. package/es/vxe-table/style.min.css +1 -1
  17. package/lib/index.css +1 -1
  18. package/lib/index.min.css +1 -1
  19. package/lib/index.umd.js +251 -241
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/style.css +1 -1
  22. package/lib/style.min.css +1 -1
  23. package/lib/table/module/menu/panel.js +3 -3
  24. package/lib/table/module/menu/panel.min.js +1 -1
  25. package/lib/table/src/cell.js +6 -4
  26. package/lib/table/src/cell.min.js +1 -1
  27. package/lib/table/src/columnInfo.js +85 -77
  28. package/lib/table/src/columnInfo.min.js +1 -1
  29. package/lib/table/style/style.css +18 -6
  30. package/lib/table/style/style.min.css +1 -1
  31. package/lib/ui/index.js +1 -1
  32. package/lib/ui/index.min.js +1 -1
  33. package/lib/ui/src/log.js +1 -1
  34. package/lib/ui/src/log.min.js +1 -1
  35. package/lib/vxe-table/style/style.css +18 -6
  36. package/lib/vxe-table/style/style.min.css +1 -1
  37. package/package.json +2 -2
  38. package/packages/table/module/menu/panel.ts +2 -2
  39. package/packages/table/src/cell.ts +16 -12
  40. package/packages/table/src/columnInfo.ts +80 -80
  41. package/packages/table/src/util.ts +1 -1
  42. package/styles/components/table.scss +24 -6
  43. /package/es/{iconfont.1781074420923.ttf → iconfont.1781140839085.ttf} +0 -0
  44. /package/es/{iconfont.1781074420923.woff → iconfont.1781140839085.woff} +0 -0
  45. /package/es/{iconfont.1781074420923.woff2 → iconfont.1781140839085.woff2} +0 -0
  46. /package/lib/{iconfont.1781074420923.ttf → iconfont.1781140839085.ttf} +0 -0
  47. /package/lib/{iconfont.1781074420923.woff → iconfont.1781140839085.woff} +0 -0
  48. /package/lib/{iconfont.1781074420923.woff2 → iconfont.1781140839085.woff2} +0 -0
@@ -25,8 +25,8 @@ export default defineVxeComponent({
25
25
  const { ctxMenuStore } = tableReactData;
26
26
  const { computeMenuOpts } = $xeTable.getComputeMaps();
27
27
  const menuOpts = computeMenuOpts.value;
28
- const { transfer, destroyOnClose } = menuOpts;
29
- const { visible, list, className } = ctxMenuStore;
28
+ const { transfer, destroyOnClose, className } = menuOpts;
29
+ const { visible, list } = ctxMenuStore;
30
30
  return h(Teleport, {
31
31
  to: 'body',
32
32
  disabled: !transfer
@@ -932,24 +932,28 @@ export const Cell = {
932
932
  }
933
933
  return renderCellBaseVNs(params, [
934
934
  showIcon && (!visibleMethod || visibleMethod(params))
935
- ? h('span', {
935
+ ? h('div', {
936
936
  class: ['vxe-table--expanded', {
937
937
  'is--active': isActive
938
- }],
939
- onMousedown(evnt) {
940
- evnt.stopPropagation();
941
- },
942
- onClick(evnt) {
943
- $table.triggerRowExpandEvent(evnt, params);
944
- }
938
+ }]
945
939
  }, [
946
- h('i', {
947
- class: ['vxe-table--expand-btn', isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isActive ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))]
948
- })
940
+ h('span', {
941
+ class: 'vxe-table--expand-btn',
942
+ onMousedown(evnt) {
943
+ evnt.stopPropagation();
944
+ },
945
+ onClick(evnt) {
946
+ $table.triggerRowExpandEvent(evnt, params);
947
+ }
948
+ }, [
949
+ h('i', {
950
+ class: isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isActive ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))
951
+ })
952
+ ])
949
953
  ])
950
954
  : renderEmptyElement($table),
951
955
  defaultSlot || labelField
952
- ? h('span', {
956
+ ? h('div', {
953
957
  class: 'vxe-table--expand-label'
954
958
  }, defaultSlot ? $table.callSlot(defaultSlot, params) : XEUtils.get(row, labelField))
955
959
  : renderEmptyElement($table)
@@ -2,33 +2,34 @@ 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.props;
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_');
16
- const formatter = _vm.formatter;
17
- const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true;
18
- const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
15
+ const { type, field, width, visible, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs;
16
+ const colId = colConfs.colId || XEUtils.uniqueId('col_');
17
+ const defaultVisible = XEUtils.isBoolean(visible) ? visible : true;
18
+ const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0;
19
+ const flCompConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
19
20
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
20
- const filters = toFilters(_vm.filters, colId);
21
+ const filters = toFilters(colConfs.filters, colId);
21
22
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html'];
22
- if (_vm.type && types.indexOf(_vm.type) === -1) {
23
- warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')]);
23
+ if (type && types.indexOf(type) === -1) {
24
+ warnLog('vxe.error.errProp', [`type=${type}`, types.join(', ')]);
24
25
  }
25
- if (XEUtils.isBoolean(_vm.cellRender) || (_vm.cellRender && !XEUtils.isObject(_vm.cellRender))) {
26
- warnLog('vxe.error.errProp', [`column.cell-render=${_vm.cellRender}`, 'column.cell-render={}']);
26
+ if (XEUtils.isBoolean(cellRender) || (cellRender && !XEUtils.isObject(cellRender))) {
27
+ warnLog('vxe.error.errProp', [`column.cell-render=${cellRender}`, 'column.cell-render={}']);
27
28
  }
28
- if (XEUtils.isBoolean(_vm.editRender) || (_vm.editRender && !XEUtils.isObject(_vm.editRender))) {
29
- warnLog('vxe.error.errProp', [`column.edit-render=${_vm.editRender}`, 'column.edit-render={}']);
29
+ if (XEUtils.isBoolean(editRender) || (editRender && !XEUtils.isObject(editRender))) {
30
+ warnLog('vxe.error.errProp', [`column.edit-render=${editRender}`, 'column.edit-render={}']);
30
31
  }
31
- if (_vm.type === 'expand') {
32
+ if (type === 'expand') {
32
33
  const { treeConfig } = tableProps;
33
34
  const { computeTreeOpts } = $xeTable.getComputeMaps();
34
35
  const treeOpts = computeTreeOpts.value;
@@ -50,9 +51,9 @@ export class ColumnInfo {
50
51
  }
51
52
  }
52
53
  }
53
- if (_vm.aggFunc) {
54
- if (!$xeTable.handlePivotTableAggData && _vm.aggFunc !== true) {
55
- errLog('vxe.error.errProp', [`column.agg-func=${_vm.aggFunc}`, 'column.agg-func=true']);
54
+ if (aggFunc) {
55
+ if (!$xeTable.handlePivotTableAggData && aggFunc !== true) {
56
+ errLog('vxe.error.errProp', [`column.agg-func=${aggFunc}`, 'column.agg-func=true']);
56
57
  }
57
58
  }
58
59
  if (field && editRender) {
@@ -65,71 +66,70 @@ export class ColumnInfo {
65
66
  }
66
67
  Object.assign(this, {
67
68
  // 基本属性
68
- type: _vm.type,
69
- property: _vm.field,
69
+ type: colConfs.type,
70
+ property: colConfs.field,
70
71
  field: field,
71
- title: _vm.title,
72
- width: _vm.width,
73
- minWidth: _vm.minWidth,
74
- maxWidth: _vm.maxWidth,
75
- resizable: _vm.resizable,
76
- fixed: _vm.fixed,
77
- align: _vm.align,
78
- headerAlign: _vm.headerAlign,
79
- footerAlign: _vm.footerAlign,
80
- showOverflow: _vm.showOverflow,
81
- showHeaderOverflow: _vm.showHeaderOverflow,
82
- showFooterOverflow: _vm.showFooterOverflow,
83
- className: _vm.className,
84
- headerClassName: _vm.headerClassName,
85
- footerClassName: _vm.footerClassName,
72
+ title: colConfs.title,
73
+ width: colConfs.width,
74
+ minWidth: colConfs.minWidth,
75
+ maxWidth: colConfs.maxWidth,
76
+ resizable: colConfs.resizable,
77
+ fixed: colConfs.fixed,
78
+ align: colConfs.align,
79
+ headerAlign: colConfs.headerAlign,
80
+ footerAlign: colConfs.footerAlign,
81
+ showOverflow: colConfs.showOverflow,
82
+ showHeaderOverflow: colConfs.showHeaderOverflow,
83
+ showFooterOverflow: colConfs.showFooterOverflow,
84
+ className: colConfs.className,
85
+ headerClassName: colConfs.headerClassName,
86
+ footerClassName: colConfs.footerClassName,
86
87
  formatter: formatter,
87
- headerFormatter: _vm.headerFormatter,
88
- footerFormatter: _vm.footerFormatter,
89
- padding: _vm.padding,
90
- verticalAlign: _vm.verticalAlign,
91
- sortable: _vm.sortable,
92
- sortBy: _vm.sortBy,
93
- sortType: _vm.sortType,
88
+ headerFormatter: colConfs.headerFormatter,
89
+ footerFormatter: colConfs.footerFormatter,
90
+ padding: colConfs.padding,
91
+ verticalAlign: colConfs.verticalAlign,
92
+ sortable: colConfs.sortable,
93
+ sortBy: colConfs.sortBy,
94
+ sortType: colConfs.sortType,
94
95
  filters: filters,
95
- filterMultiple: XEUtils.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
96
- filterMethod: _vm.filterMethod,
97
- filterResetMethod: _vm.filterResetMethod,
98
- filterRecoverMethod: _vm.filterRecoverMethod,
96
+ filterMultiple: XEUtils.isBoolean(filterMultiple) ? filterMultiple : true,
97
+ filterMethod: colConfs.filterMethod,
98
+ filterResetMethod: colConfs.filterResetMethod,
99
+ filterRecoverMethod: colConfs.filterRecoverMethod,
99
100
  filterRender: filterRender,
100
- floatingFilters: _vm.floatingFilters,
101
- rules: _vm.rules,
102
- rowGroupNode: _vm.rowGroupNode,
103
- treeNode: _vm.treeNode,
104
- dragSort: _vm.dragSort,
105
- rowResize: _vm.rowResize,
106
- cellType: _vm.cellType,
107
- cellRender: _vm.cellRender,
101
+ floatingFilters: colConfs.floatingFilters,
102
+ rules: colConfs.rules,
103
+ rowGroupNode: colConfs.rowGroupNode,
104
+ treeNode: colConfs.treeNode,
105
+ dragSort: colConfs.dragSort,
106
+ rowResize: colConfs.rowResize,
107
+ cellType: colConfs.cellType,
108
+ cellRender: cellRender,
108
109
  editRender: editRender,
109
- contentRender: _vm.contentRender,
110
- headerExportMethod: _vm.headerExportMethod,
111
- exportMethod: _vm.exportMethod,
112
- footerExportMethod: _vm.footerExportMethod,
113
- titleHelp: _vm.titleHelp,
114
- titlePrefix: _vm.titlePrefix,
115
- titleSuffix: _vm.titleSuffix,
116
- aggFunc: _vm.aggFunc,
117
- copyMethod: _vm.copyMethod,
118
- cutMethod: _vm.cutMethod,
119
- pasteMethod: _vm.pasteMethod,
110
+ contentRender: colConfs.contentRender,
111
+ headerExportMethod: colConfs.headerExportMethod,
112
+ exportMethod: colConfs.exportMethod,
113
+ footerExportMethod: colConfs.footerExportMethod,
114
+ titleHelp: colConfs.titleHelp,
115
+ titlePrefix: colConfs.titlePrefix,
116
+ titleSuffix: colConfs.titleSuffix,
117
+ aggFunc: colConfs.aggFunc,
118
+ copyMethod: colConfs.copyMethod,
119
+ cutMethod: colConfs.cutMethod,
120
+ pasteMethod: colConfs.pasteMethod,
120
121
  // 自定义参数
121
- params: _vm.params,
122
+ params: colConfs.params,
122
123
  // 渲染属性
123
124
  id: colId,
124
125
  parentId: null,
125
- visible,
126
+ visible: defaultVisible,
126
127
  // 内部属性(一旦被使用,将导致不可升级版本)
127
128
  defaultParentId: null,
128
129
  halfVisible: false,
129
- defaultVisible: visible,
130
- defaultFixed: _vm.fixed,
131
- defaultAggGroup: _vm.aggGroup,
132
- defaultAggFunc: _vm.aggFunc,
130
+ defaultVisible: defaultVisible,
131
+ defaultFixed: colConfs.fixed,
132
+ defaultAggFunc: colConfs.aggFunc,
133
133
  checked: false,
134
134
  halfChecked: false,
135
135
  disabled: false,
@@ -150,7 +150,7 @@ export class ColumnInfo {
150
150
  renderAggFormat: null,
151
151
  renderFixed: '',
152
152
  renderVisible: false,
153
- renderWidth: 0,
153
+ renderWidth: defaultRenderWidth,
154
154
  renderHeight: 0,
155
155
  renderResizeWidth: 0,
156
156
  renderAutoWidth: 0,
@@ -158,12 +158,12 @@ export class ColumnInfo {
158
158
  renderLeft: 0,
159
159
  renderArgs: [],
160
160
  model: {},
161
- renderHeader: renderHeader || _vm.renderHeader,
162
- renderCell: renderCell || _vm.renderCell,
163
- renderFooter: renderFooter || _vm.renderFooter,
161
+ renderHeader: renderHeader || colConfs.renderHeader,
162
+ renderCell: renderCell || colConfs.renderCell,
163
+ renderFooter: renderFooter || colConfs.renderFooter,
164
164
  renderData: renderData,
165
165
  // 单元格插槽,只对 grid 有效
166
- slots: _vm.slots
166
+ slots: colConfs.slots
167
167
  });
168
168
  if (ctFilterOptions && (!filters || !filters.length)) {
169
169
  this.filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this }), colId);
@@ -180,8 +180,8 @@ export class ColumnInfo {
180
180
  return getFuncText(this.title || (this.type === 'seq' ? getI18n('vxe.table.seqTitle') : ''));
181
181
  }
182
182
  getKey() {
183
- const { type } = this;
184
- return this.field || (type ? `type=${type}` : null);
183
+ const { type, field } = this;
184
+ return field || (type ? `type=${type}` : null);
185
185
  }
186
186
  update(name, value) {
187
187
  // 不支持直接修改的属性
@@ -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 {