vxe-table 4.19.11 → 4.19.13

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 (53) hide show
  1. package/dist/all.esm.js +227 -220
  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 +7 -7
  9. package/es/table/src/cell.js +16 -12
  10. package/es/table/src/columnInfo.js +77 -77
  11. package/es/table/src/table.js +7 -3
  12. package/es/table/style.css +29 -13
  13. package/es/table/style.min.css +1 -1
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-table/style.css +29 -13
  17. package/es/vxe-table/style.min.css +1 -1
  18. package/lib/index.css +1 -1
  19. package/lib/index.min.css +1 -1
  20. package/lib/index.umd.js +259 -249
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/table/module/menu/panel.js +8 -8
  25. package/lib/table/module/menu/panel.min.js +1 -1
  26. package/lib/table/src/cell.js +6 -4
  27. package/lib/table/src/cell.min.js +1 -1
  28. package/lib/table/src/columnInfo.js +85 -77
  29. package/lib/table/src/columnInfo.min.js +1 -1
  30. package/lib/table/src/table.js +3 -3
  31. package/lib/table/src/table.min.js +1 -1
  32. package/lib/table/style/style.css +29 -13
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +1 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-table/style/style.css +29 -13
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/table/module/menu/panel.ts +7 -7
  42. package/packages/table/src/cell.ts +16 -12
  43. package/packages/table/src/columnInfo.ts +80 -80
  44. package/packages/table/src/table.ts +7 -3
  45. package/packages/table/src/util.ts +1 -1
  46. package/styles/components/table-module/menu.scss +5 -2
  47. package/styles/components/table.scss +24 -6
  48. /package/es/{iconfont.1781074420923.ttf → iconfont.1781229243647.ttf} +0 -0
  49. /package/es/{iconfont.1781074420923.woff → iconfont.1781229243647.woff} +0 -0
  50. /package/es/{iconfont.1781074420923.woff2 → iconfont.1781229243647.woff2} +0 -0
  51. /package/lib/{iconfont.1781074420923.ttf → iconfont.1781229243647.ttf} +0 -0
  52. /package/lib/{iconfont.1781074420923.woff → iconfont.1781229243647.woff} +0 -0
  53. /package/lib/{iconfont.1781074420923.woff2 → iconfont.1781229243647.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
@@ -42,7 +42,7 @@ export default defineVxeComponent({
42
42
  return options.every(item => item.visible === false)
43
43
  ? renderEmptyElement($xeTable)
44
44
  : h('ul', {
45
- class: 'vxe-context-menu--option-wrapper',
45
+ class: 'vxe-table--context-menu-group-wrapper',
46
46
  key: gIndex
47
47
  }, options.map((item, index) => {
48
48
  const { children, loading } = item;
@@ -55,7 +55,7 @@ export default defineVxeComponent({
55
55
  return item.visible === false
56
56
  ? renderEmptyElement($xeTable)
57
57
  : h('li', {
58
- class: [item.className, {
58
+ class: ['vxe-table--context-menu--option', item.className, {
59
59
  'link--loading': loading,
60
60
  'link--disabled': item.disabled,
61
61
  'link--active': item === ctxMenuStore.selected
@@ -105,12 +105,12 @@ export default defineVxeComponent({
105
105
  suffixOpts.content ? h('span', `${suffixOpts.content}`) : renderEmptyElement($xeTable)
106
106
  ])
107
107
  ]),
108
- hasChildMenus && item.children
108
+ hasChildMenus && children
109
109
  ? h('ul', {
110
110
  class: ['vxe-table--context-menu-clild-wrapper', {
111
111
  'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
112
112
  }]
113
- }, item.children.map((child, cIndex) => {
113
+ }, children.map((child, cIndex) => {
114
114
  const { loading: childLoading } = child;
115
115
  const childPrefixOpts = Object.assign({}, child.prefixConfig);
116
116
  const childPrefixIcon = childPrefixOpts.icon || child.prefixIcon;
@@ -120,7 +120,7 @@ export default defineVxeComponent({
120
120
  return child.visible === false
121
121
  ? null
122
122
  : h('li', {
123
- class: [child.className, {
123
+ class: ['vxe-table--context-menu--option', child.className, {
124
124
  'link--loading': childLoading,
125
125
  'link--disabled': child.disabled,
126
126
  'link--active': child === ctxMenuStore.selectChild
@@ -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
  // 不支持直接修改的属性
@@ -4170,7 +4170,11 @@ export default defineVxeComponent({
4170
4170
  const { transform } = treeOpts;
4171
4171
  const allList = fullData || internalData.tableFullData;
4172
4172
  // 如果gt为0,则总是启用
4173
- const scrollYLoad = (transform || !treeConfig) && !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length);
4173
+ let scrollYLoad = !!virtualYOpts.enabled && virtualYOpts.gt > -1 && (virtualYOpts.gt === 0 || virtualYOpts.gt < allList.length);
4174
+ if (scrollYLoad && (treeConfig && !transform)) {
4175
+ errLog('vxe.error.notSupportProp', ['[table] virtual-y-config.enabled=true', 'tree-config.transform=false', 'tree-config.transform=true']);
4176
+ scrollYLoad = false;
4177
+ }
4174
4178
  reactData.scrollYLoad = scrollYLoad;
4175
4179
  syncGanttScrollYStatus();
4176
4180
  return scrollYLoad;
@@ -9430,7 +9434,7 @@ export default defineVxeComponent({
9430
9434
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
9431
9435
  XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
9432
9436
  const rowid = handleUpdateRowId(row);
9433
- if (treeConfig && lazy) {
9437
+ if (lazy) {
9434
9438
  if (row[hasChildField] && row[childrenField] === undefined) {
9435
9439
  row[childrenField] = null;
9436
9440
  }
@@ -14237,7 +14241,7 @@ export default defineVxeComponent({
14237
14241
  warnLog('vxe.error.delProp', ['edit-config.activeMethod', 'edit-config.beforeEditMethod']);
14238
14242
  }
14239
14243
  if (props.treeConfig && checkboxOpts.isShiftKey) {
14240
- errLog('vxe.error.errConflicts', ['tree-config', 'checkbox-config.isShiftKey']);
14244
+ errLog('vxe.error.reqSupportProp', ['tree-config', 'checkbox-config.isShiftKey=false']);
14241
14245
  }
14242
14246
  if (checkboxOpts.halfField) {
14243
14247
  warnLog('vxe.error.delProp', ['checkbox-config.halfField', 'checkbox-config.indeterminateField']);
@@ -1698,13 +1698,17 @@
1698
1698
  background-color: var(--vxe-ui-layout-background-color);
1699
1699
  }
1700
1700
 
1701
+ .vxe-context-menu--option {
1702
+ color: var(--vxe-ui-font-color);
1703
+ }
1704
+
1701
1705
  .vxe-context-menu--link {
1702
1706
  display: flex;
1703
1707
  flex-direction: row;
1704
1708
  width: var(--vxe-ui-table-menu-item-width);
1705
1709
  line-height: 26px;
1706
1710
  padding: 0 0.8em;
1707
- color: var(--vxe-ui-font-color);
1711
+ color: inherit;
1708
1712
  cursor: pointer;
1709
1713
  }
1710
1714
  .vxe-context-menu--link .vxe-context-menu--link-prefix,
@@ -1722,35 +1726,35 @@
1722
1726
  white-space: nowrap;
1723
1727
  }
1724
1728
 
1725
- .vxe-context-menu--option-wrapper,
1729
+ .vxe-table--context-menu-group-wrapper,
1726
1730
  .vxe-table--context-menu-clild-wrapper {
1727
1731
  margin: 0;
1728
1732
  padding: 0;
1729
1733
  list-style-type: none;
1730
1734
  border-bottom: 1px solid var(--vxe-ui-base-popup-border-color);
1731
1735
  }
1732
- .vxe-context-menu--option-wrapper li,
1736
+ .vxe-table--context-menu-group-wrapper li,
1733
1737
  .vxe-table--context-menu-clild-wrapper li {
1734
1738
  position: relative;
1735
1739
  margin: 1px 0;
1736
1740
  border: 1px solid transparent;
1737
1741
  }
1738
- .vxe-context-menu--option-wrapper li:last-child,
1742
+ .vxe-table--context-menu-group-wrapper li:last-child,
1739
1743
  .vxe-table--context-menu-clild-wrapper li:last-child {
1740
1744
  border: 0;
1741
1745
  }
1742
- .vxe-context-menu--option-wrapper li.link--active,
1746
+ .vxe-table--context-menu-group-wrapper li.link--active,
1743
1747
  .vxe-table--context-menu-clild-wrapper li.link--active {
1744
1748
  background-color: var(--vxe-ui-base-hover-background-color);
1745
1749
  border-color: var(--vxe-ui-base-hover-background-color);
1746
1750
  }
1747
- .vxe-context-menu--option-wrapper li.link--loading > .vxe-context-menu--link, .vxe-context-menu--option-wrapper li.link--disabled > .vxe-context-menu--link,
1751
+ .vxe-table--context-menu-group-wrapper li.link--loading > .vxe-context-menu--link, .vxe-table--context-menu-group-wrapper li.link--disabled > .vxe-context-menu--link,
1748
1752
  .vxe-table--context-menu-clild-wrapper li.link--loading > .vxe-context-menu--link,
1749
1753
  .vxe-table--context-menu-clild-wrapper li.link--disabled > .vxe-context-menu--link {
1750
1754
  color: var(--vxe-ui-font-disabled-color);
1751
1755
  cursor: no-drop;
1752
1756
  }
1753
- .vxe-context-menu--option-wrapper li.link--loading.link--active:hover, .vxe-context-menu--option-wrapper li.link--disabled.link--active:hover,
1757
+ .vxe-table--context-menu-group-wrapper li.link--loading.link--active:hover, .vxe-table--context-menu-group-wrapper li.link--disabled.link--active:hover,
1754
1758
  .vxe-table--context-menu-clild-wrapper li.link--loading.link--active:hover,
1755
1759
  .vxe-table--context-menu-clild-wrapper li.link--disabled.link--active:hover {
1756
1760
  background-color: inherit;
@@ -3563,6 +3567,10 @@
3563
3567
  .vxe-table--render-default {
3564
3568
  /*展开行*/
3565
3569
  }
3570
+ .vxe-table--render-default .vxe-body--column.col--expand > .vxe-cell .vxe-cell--wrapper {
3571
+ display: flex;
3572
+ flex-direction: row;
3573
+ }
3566
3574
  .vxe-table--render-default .vxe-table--row-expanded-wrapper {
3567
3575
  position: absolute;
3568
3576
  top: 0;
@@ -3594,23 +3602,31 @@
3594
3602
  border-right: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
3595
3603
  }
3596
3604
  .vxe-table--render-default .vxe-table--expanded {
3597
- cursor: pointer;
3605
+ display: flex;
3606
+ flex-direction: row;
3607
+ align-items: center;
3608
+ justify-content: center;
3609
+ flex-shrink: 0;
3598
3610
  }
3599
3611
  .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;
3612
+ cursor: pointer;
3604
3613
  -webkit-user-select: none;
3605
3614
  -moz-user-select: none;
3606
3615
  user-select: none;
3607
3616
  color: var(--vxe-ui-font-lighten-color);
3608
- transition: transform 0.1s ease-in-out;
3609
3617
  }
3610
3618
  .vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn:hover {
3611
3619
  color: var(--vxe-ui-font-color);
3612
3620
  }
3621
+ .vxe-table--render-default .vxe-table--expanded .vxe-table--expand-btn i {
3622
+ display: inline-block;
3623
+ width: 1em;
3624
+ height: 1em;
3625
+ line-height: 1em;
3626
+ transition: transform 0.1s ease-in-out;
3627
+ }
3613
3628
  .vxe-table--render-default .vxe-table--expanded + .vxe-table--expand-label {
3629
+ flex-grow: 1;
3614
3630
  padding-left: 0.5em;
3615
3631
  }
3616
3632
  .vxe-table--render-default .vxe-body--expanded-row.is--padding > .vxe-body--expanded-column > .vxe-body--expanded-cell {