vxe-table 3.21.10 → 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 (53) hide show
  1. package/es/grid/src/grid.js +11 -3
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/menu/panel.js +2 -2
  7. package/es/table/src/cell.js +17 -13
  8. package/es/table/src/columnInfo.js +85 -81
  9. package/es/table/src/methods.js +3 -3
  10. package/es/table/style.css +18 -6
  11. package/es/table/style.min.css +1 -1
  12. package/es/ui/index.js +1 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-table/style.css +18 -6
  15. package/es/vxe-table/style.min.css +1 -1
  16. package/lib/grid/src/grid.js +9 -3
  17. package/lib/grid/src/grid.min.js +1 -1
  18. package/lib/index.css +1 -1
  19. package/lib/index.min.css +1 -1
  20. package/lib/index.umd.js +269 -246
  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 +3 -3
  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 +93 -81
  29. package/lib/table/src/columnInfo.min.js +1 -1
  30. package/lib/table/src/methods.js +4 -1
  31. package/lib/table/src/methods.min.js +1 -1
  32. package/lib/table/style/style.css +18 -6
  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 +18 -6
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/grid/src/grid.ts +9 -3
  42. package/packages/table/module/menu/panel.ts +2 -2
  43. package/packages/table/src/cell.ts +17 -13
  44. package/packages/table/src/columnInfo.ts +90 -84
  45. package/packages/table/src/methods.ts +3 -3
  46. package/packages/table/src/util.ts +1 -1
  47. package/styles/components/table.scss +24 -6
  48. /package/es/{iconfont.1780911698543.ttf → iconfont.1781140842818.ttf} +0 -0
  49. /package/es/{iconfont.1780911698543.woff → iconfont.1781140842818.woff} +0 -0
  50. /package/es/{iconfont.1780911698543.woff2 → iconfont.1781140842818.woff2} +0 -0
  51. /package/lib/{iconfont.1780911698543.ttf → iconfont.1781140842818.ttf} +0 -0
  52. /package/lib/{iconfont.1780911698543.woff → iconfont.1781140842818.woff} +0 -0
  53. /package/lib/{iconfont.1780911698543.woff2 → iconfont.1781140842818.woff2} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "3.21.10",
3
+ "version": "3.21.12",
4
4
  "description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -68,7 +68,7 @@
68
68
  "vue-i18n": "^8.15.1",
69
69
  "vue-router": "^3.5.1",
70
70
  "vue-template-compiler": "2.6.14",
71
- "vxe-pc-ui": "3.14.32"
71
+ "vxe-pc-ui": "3.14.35"
72
72
  },
73
73
  "vetur": {
74
74
  "tags": "helper/vetur/tags.json",
@@ -1336,14 +1336,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
1336
1336
  return
1337
1337
  }
1338
1338
  if (proxyConfig && isEnableConf(proxyOpts)) {
1339
+ $xeGrid.dispatchEvent('form-submit', params, params.$event)
1339
1340
  internalData.uFoot = true
1340
1341
  $xeGrid.commitProxy('reload').then((rest) => {
1341
1342
  $xeGrid.dispatchEvent('proxy-query', { ...rest, isReload: true }, params.$event)
1342
1343
  })
1343
1344
  internalData.uFoot = false
1344
1345
  $xeGrid.updateQueryFooter()
1346
+ } else {
1347
+ $xeGrid.dispatchEvent('form-submit', params, params.$event)
1345
1348
  }
1346
- $xeGrid.dispatchEvent('form-submit', params, params.$event)
1347
1349
  },
1348
1350
  resetFormEvent (params: VxeFormDefines.ResetEventParams) {
1349
1351
  const $xeGrid = this
@@ -1355,15 +1357,19 @@ export default /* define-vxe-component start */ defineVxeComponent({
1355
1357
  const { $event } = params
1356
1358
  const proxyOpts = $xeGrid.computeProxyOpts
1357
1359
  if (proxyConfig && isEnableConf(proxyOpts)) {
1358
- $xeTable.clearScroll()
1360
+ $xeGrid.dispatchEvent('form-reset', params, $event)
1361
+ if ($xeTable) {
1362
+ $xeTable.clearScroll()
1363
+ }
1359
1364
  internalData.uFoot = true
1360
1365
  $xeGrid.commitProxy('reload').then((rest) => {
1361
1366
  $xeGrid.dispatchEvent('proxy-query', { ...rest, isReload: true }, $event)
1362
1367
  })
1363
1368
  internalData.uFoot = false
1364
1369
  $xeGrid.updateQueryFooter()
1370
+ } else {
1371
+ $xeGrid.dispatchEvent('form-reset', params, $event)
1365
1372
  }
1366
- $xeGrid.dispatchEvent('form-reset', params, $event)
1367
1373
  },
1368
1374
  submitInvalidEvent (params: VxeFormDefines.SubmitInvalidEventParams) {
1369
1375
  const $xeGrid = this
@@ -48,8 +48,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
48
48
 
49
49
  const { ctxMenuStore } = tableReactData
50
50
  const menuOpts = $xeTable.computeMenuOpts
51
- const { destroyOnClose } = menuOpts
52
- const { visible, list, className } = ctxMenuStore
51
+ const { destroyOnClose, className } = menuOpts
52
+ const { visible, list } = ctxMenuStore
53
53
  return h('div', {
54
54
  ref: 'refElem',
55
55
  class: ['vxe-table--context-menu-wrapper', className, {
@@ -981,22 +981,26 @@ export const Cell = {
981
981
  }
982
982
  return renderCellBaseVNs(h, params, [
983
983
  showIcon && (!visibleMethod || visibleMethod(params))
984
- ? h('span', {
984
+ ? h('div', {
985
985
  class: ['vxe-table--expanded', {
986
986
  'is--active': isActive
987
- }],
988
- on: {
989
- mousedown (evnt: MouseEvent) {
990
- evnt.stopPropagation()
991
- },
992
- click (evnt: MouseEvent) {
993
- $table.triggerRowExpandEvent(evnt, params)
994
- }
995
- }
987
+ }]
996
988
  }, [
997
- h('i', {
998
- class: ['vxe-table--expand-btn', isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isActive ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))]
999
- })
989
+ h('span', {
990
+ class: 'vxe-table--expand-btn',
991
+ on: {
992
+ mousedown (evnt: MouseEvent) {
993
+ evnt.stopPropagation()
994
+ },
995
+ click (evnt: MouseEvent) {
996
+ $table.triggerRowExpandEvent(evnt, params)
997
+ }
998
+ }
999
+ }, [
1000
+ h('i', {
1001
+ class: isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isActive ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))
1002
+ })
1003
+ ])
1000
1004
  ])
1001
1005
  : renderEmptyElement($table),
1002
1006
  defaultSlot || labelField
@@ -2,53 +2,56 @@ 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
 
7
- import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTableDefines } from '../../../types'
8
+ import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTableDefines, VxeColumnProps } from '../../../types'
8
9
 
9
10
  const { getI18n, formats, renderer } = VxeUI
10
11
 
11
12
  export class ColumnInfo {
12
13
  /* eslint-disable @typescript-eslint/no-use-before-define */
13
- constructor ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, _vm: any, { renderHeader, renderCell, renderFooter, renderData }: any = {}) {
14
+ constructor ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, colConfs: VxeColumnProps & { renderHeader?: any, renderCell?: any, renderFooter?: any, slots?: any }, { renderHeader, renderCell, renderFooter, renderData }: any = {}) {
14
15
  const tableProps = $xeTable
15
16
  const $xeGrid = $xeTable.$xeGrid
16
17
  const $xeGantt = $xeTable.$xeGantt
17
18
  const $xeGGWrapper = $xeGrid || $xeGantt
18
19
 
19
- const { field, editRender, filterRender } = _vm
20
+ const { type, field, width, visible, aggFunc, formatter, filterMultiple, cellRender, editRender, filterRender } = colConfs
20
21
 
21
- const colId = _vm.colId || XEUtils.uniqueId('col_')
22
+ const colId = colConfs.colId || XEUtils.uniqueId('col_')
22
23
 
23
24
  const proxyOpts = $xeGrid ? $xeGrid.computeProxyOpts : null
24
- const formatter = _vm.formatter
25
- const visible = XEUtils.isBoolean(_vm.visible) ? _vm.visible : true
25
+ const defaultVisible = XEUtils.isBoolean(visible) ? visible : true
26
+ const defaultRenderWidth = width && isPx(width) && width !== 'auto' ? Math.max(0, XEUtils.toInteger(width)) : 0
26
27
 
27
- const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
28
+ const flCompConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
28
29
  const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null
29
30
 
30
- const filters = toFilters(_vm.filters, colId)
31
+ const filters = toFilters(colConfs.filters, colId)
31
32
 
32
33
  const types = ['seq', 'checkbox', 'radio', 'expand', 'html']
33
- if (_vm.type && types.indexOf(_vm.type) === -1) {
34
- warnLog('vxe.error.errProp', [`type=${_vm.type}`, types.join(', ')])
34
+ if (type && types.indexOf(type) === -1) {
35
+ warnLog('vxe.error.errProp', [`type=${type}`, types.join(', ')])
35
36
  }
36
- if (XEUtils.isBoolean(_vm.cellRender) || (_vm.cellRender && !XEUtils.isObject(_vm.cellRender))) {
37
- warnLog('vxe.error.errProp', [`column.cell-render=${_vm.cellRender}`, 'column.cell-render={}'])
37
+ if (XEUtils.isBoolean(cellRender) || (cellRender && !XEUtils.isObject(cellRender))) {
38
+ warnLog('vxe.error.errProp', [`column.cell-render=${cellRender}`, 'column.cell-render={}'])
38
39
  }
39
- if (XEUtils.isBoolean(_vm.editRender) || (_vm.editRender && !XEUtils.isObject(_vm.editRender))) {
40
- warnLog('vxe.error.errProp', [`column.edit-render=${_vm.editRender}`, 'column.edit-render={}'])
40
+ if (XEUtils.isBoolean(editRender) || (editRender && !XEUtils.isObject(editRender))) {
41
+ warnLog('vxe.error.errProp', [`column.edit-render=${editRender}`, 'column.edit-render={}'])
41
42
  }
42
- if (_vm.type === 'expand') {
43
+ if (type === 'expand') {
43
44
  const { treeConfig } = tableProps
44
45
  if (treeConfig && ($xeTable.treeOpts.showLine || $xeTable.treeOpts.line)) {
45
46
  errLog('vxe.error.errConflicts', ['tree-config.line', 'column.type=expand'])
46
47
  }
47
48
  }
48
- if (_vm.remoteSort) {
49
+ // 参数已废弃
50
+ if ((colConfs as any).remoteSort) {
49
51
  warnLog('vxe.error.delProp', ['column.remote-sort', 'sort-config.remote'])
50
52
  }
51
- if (_vm.sortMethod) {
53
+ // 参数已废弃
54
+ if ((colConfs as any).sortMethod) {
52
55
  warnLog('vxe.error.delProp', ['column.sort-method', 'sort-config.sortMethod'])
53
56
  }
54
57
  if (formatter) {
@@ -64,9 +67,9 @@ export class ColumnInfo {
64
67
  }
65
68
  }
66
69
  }
67
- if (_vm.aggFunc) {
68
- if (!$xeTable.handlePivotTableAggData && _vm.aggFunc !== true) {
69
- errLog('vxe.error.errProp', [`column.agg-func=${_vm.aggFunc}`, 'column.agg-func=true'])
70
+ if (aggFunc) {
71
+ if (!$xeTable.handlePivotTableAggData && aggFunc !== true) {
72
+ errLog('vxe.error.errProp', [`column.agg-func=${aggFunc}`, 'column.agg-func=true'])
70
73
  }
71
74
  }
72
75
 
@@ -81,76 +84,79 @@ export class ColumnInfo {
81
84
 
82
85
  Object.assign(this, {
83
86
  // 基本属性
84
- type: _vm.type,
85
- property: _vm.field,
87
+ type: colConfs.type,
88
+ property: colConfs.field,
86
89
  field: field,
87
- title: _vm.title,
88
- width: _vm.width,
89
- minWidth: _vm.minWidth,
90
- maxWidth: _vm.maxWidth,
91
- resizable: _vm.resizable,
92
- fixed: _vm.fixed,
93
- align: _vm.align,
94
- headerAlign: _vm.headerAlign,
95
- footerAlign: _vm.footerAlign,
96
- showOverflow: _vm.showOverflow,
97
- showHeaderOverflow: _vm.showHeaderOverflow,
98
- showFooterOverflow: _vm.showFooterOverflow,
99
- className: _vm.className,
100
- headerClassName: _vm.headerClassName,
101
- footerClassName: _vm.footerClassName,
90
+ title: colConfs.title,
91
+ width: colConfs.width,
92
+ minWidth: colConfs.minWidth,
93
+ maxWidth: colConfs.maxWidth,
94
+ resizable: colConfs.resizable,
95
+ fixed: colConfs.fixed,
96
+ align: colConfs.align,
97
+ headerAlign: colConfs.headerAlign,
98
+ footerAlign: colConfs.footerAlign,
99
+ showOverflow: colConfs.showOverflow,
100
+ showHeaderOverflow: colConfs.showHeaderOverflow,
101
+ showFooterOverflow: colConfs.showFooterOverflow,
102
+ className: colConfs.className,
103
+ headerClassName: colConfs.headerClassName,
104
+ footerClassName: colConfs.footerClassName,
102
105
  formatter,
103
- headerFormatter: _vm.headerFormatter,
104
- footerFormatter: _vm.footerFormatter,
105
- padding: _vm.padding,
106
- verticalAlign: _vm.verticalAlign,
107
- sortable: _vm.sortable,
108
- sortBy: _vm.sortBy,
109
- sortType: _vm.sortType,
110
- sortMethod: _vm.sortMethod,
111
- remoteSort: _vm.remoteSort,
106
+ headerFormatter: colConfs.headerFormatter,
107
+ footerFormatter: colConfs.footerFormatter,
108
+ padding: colConfs.padding,
109
+ verticalAlign: colConfs.verticalAlign,
110
+ sortable: colConfs.sortable,
111
+ sortBy: colConfs.sortBy,
112
+ sortType: colConfs.sortType,
113
+
114
+ // 参数已废弃
115
+ sortMethod: (colConfs as any).sortMethod,
116
+ // 参数已废弃
117
+ remoteSort: (colConfs as any).remoteSort,
118
+
112
119
  filters: filters,
113
- filterMultiple: XEUtils.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
114
- filterMethod: _vm.filterMethod,
115
- filterResetMethod: _vm.filterResetMethod,
116
- filterRecoverMethod: _vm.filterRecoverMethod,
120
+ filterMultiple: XEUtils.isBoolean(filterMultiple) ? filterMultiple : true,
121
+ filterMethod: colConfs.filterMethod,
122
+ filterResetMethod: colConfs.filterResetMethod,
123
+ filterRecoverMethod: colConfs.filterRecoverMethod,
117
124
  filterRender: filterRender,
118
- floatingFilters: _vm.floatingFilters,
119
- rules: _vm.rules,
120
- rowGroupNode: _vm.rowGroupNode,
121
- treeNode: _vm.treeNode,
122
- dragSort: _vm.dragSort,
123
- rowResize: _vm.rowResize,
124
- cellType: _vm.cellType,
125
- cellRender: _vm.cellRender,
125
+ floatingFilters: colConfs.floatingFilters,
126
+ rules: colConfs.rules,
127
+ rowGroupNode: colConfs.rowGroupNode,
128
+ treeNode: colConfs.treeNode,
129
+ dragSort: colConfs.dragSort,
130
+ rowResize: colConfs.rowResize,
131
+ cellType: colConfs.cellType,
132
+ cellRender: colConfs.cellRender,
126
133
  editRender: editRender,
127
- contentRender: _vm.contentRender,
128
- headerExportMethod: _vm.headerExportMethod,
129
- exportMethod: _vm.exportMethod,
130
- footerExportMethod: _vm.footerExportMethod,
131
- titleHelp: _vm.titleHelp,
132
- titlePrefix: _vm.titlePrefix,
133
- titleSuffix: _vm.titleSuffix,
134
-
135
- aggFunc: _vm.aggFunc,
136
- copyMethod: _vm.copyMethod,
137
- cutMethod: _vm.cutMethod,
138
- pasteMethod: _vm.pasteMethod,
134
+ contentRender: colConfs.contentRender,
135
+ headerExportMethod: colConfs.headerExportMethod,
136
+ exportMethod: colConfs.exportMethod,
137
+ footerExportMethod: colConfs.footerExportMethod,
138
+ titleHelp: colConfs.titleHelp,
139
+ titlePrefix: colConfs.titlePrefix,
140
+ titleSuffix: colConfs.titleSuffix,
141
+
142
+ aggFunc: colConfs.aggFunc,
143
+ copyMethod: colConfs.copyMethod,
144
+ cutMethod: colConfs.cutMethod,
145
+ pasteMethod: colConfs.pasteMethod,
139
146
 
140
147
  // 自定义参数
141
- params: _vm.params,
148
+ params: colConfs.params,
142
149
  // 渲染属性
143
150
  id: colId,
144
151
  parentId: null,
145
- visible,
152
+ visible: defaultVisible,
146
153
  // 内部属性(一旦被使用,将导致不可升级版本)
147
154
  defaultParentId: null,
148
155
  halfVisible: false,
149
- defaultVisible: visible,
150
- defaultFixed: _vm.fixed,
156
+ defaultVisible: defaultVisible,
157
+ defaultFixed: colConfs.fixed,
151
158
 
152
- defaultAggGroup: _vm.aggGroup,
153
- defaultAggFunc: _vm.aggFunc,
159
+ defaultAggFunc: colConfs.aggFunc,
154
160
 
155
161
  checked: false,
156
162
  halfChecked: false,
@@ -177,7 +183,7 @@ export class ColumnInfo {
177
183
  renderFixed: '',
178
184
  renderVisible: false,
179
185
 
180
- renderWidth: 0,
186
+ renderWidth: defaultRenderWidth,
181
187
  renderHeight: 0,
182
188
  renderResizeWidth: 0,
183
189
  renderAutoWidth: 0,
@@ -186,19 +192,19 @@ export class ColumnInfo {
186
192
  renderLeft: 0,
187
193
  renderArgs: [], // 渲染参数可用于扩展
188
194
  model: {},
189
- renderHeader: renderHeader || _vm.renderHeader,
190
- renderCell: renderCell || _vm.renderCell,
191
- renderFooter: renderFooter || _vm.renderFooter,
195
+ renderHeader: renderHeader || colConfs.renderHeader,
196
+ renderCell: renderCell || colConfs.renderCell,
197
+ renderFooter: renderFooter || colConfs.renderFooter,
192
198
  renderData,
193
199
  // 单元格插槽,只对 grid 有效
194
- slots: _vm.slots
200
+ slots: colConfs.slots
195
201
  })
196
202
  if (ctFilterOptions && (!filters || !filters.length)) {
197
203
  (this as any).filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this as unknown as VxeTableDefines.ColumnInfo }), colId)
198
204
  }
199
205
  if ($xeGGWrapper) {
200
206
  if (proxyOpts && proxyOpts.beforeColumn) {
201
- proxyOpts.beforeColumn({ $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, column: this })
207
+ proxyOpts.beforeColumn({ $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, column: this as unknown as VxeTableDefines.ColumnInfo })
202
208
  }
203
209
  }
204
210
  }
@@ -208,8 +214,8 @@ export class ColumnInfo {
208
214
  }
209
215
 
210
216
  getKey (this: any) {
211
- const { type } = this
212
- return this.field || (type ? `type=${type}` : null)
217
+ const { type, field } = this
218
+ return field || (type ? `type=${type}` : null)
213
219
  }
214
220
 
215
221
  update (this: any, name: any, value: any) {
@@ -397,9 +397,9 @@ function cacheColumnMap ($xeTable: VxeTableConstructor & VxeTablePrivateMethods)
397
397
  if (expandOpts.mode !== 'inside' && (treeConfig && !treeOpts.transform)) {
398
398
  errLog('vxe.error.notConflictProp', ['tree-config.transform=false', 'expand-config.mode=inside'])
399
399
  }
400
- if (props.spanMethod) {
401
- warnLog('vxe.error.notSupportProp', ['column.type=expand', 'span-method', 'span-method=null'])
402
- }
400
+ // if (props.spanMethod) {
401
+ // warnLog('vxe.error.notSupportProp', ['column.type=expand', 'span-method', 'span-method=null'])
402
+ // }
403
403
  }
404
404
 
405
405
  if (htmlColumn) {
@@ -785,7 +785,7 @@ export function getRootColumn ($xeTable: VxeTableConstructor & VxeTablePrivateMe
785
785
  return column
786
786
  }
787
787
 
788
- export function toFilters (filters: any, colid?: string) {
788
+ export function toFilters (filters: any, colid?: string | number) {
789
789
  if (filters) {
790
790
  if (XEUtils.isArray(filters)) {
791
791
  return filters.map(({ label, value, data, resetValue, checked }) => {
@@ -2204,6 +2204,16 @@ $btnThemeList: (
2204
2204
  }
2205
2205
 
2206
2206
  /*展开行*/
2207
+ .vxe-body--column {
2208
+ &.col--expand {
2209
+ & > .vxe-cell {
2210
+ .vxe-cell--wrapper {
2211
+ display: flex;
2212
+ flex-direction: row;
2213
+ }
2214
+ }
2215
+ }
2216
+ }
2207
2217
  .vxe-table--row-expanded-wrapper {
2208
2218
  position: absolute;
2209
2219
  top: 0;
@@ -2237,20 +2247,28 @@ $btnThemeList: (
2237
2247
  border-right: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
2238
2248
  }
2239
2249
  .vxe-table--expanded {
2240
- cursor: pointer;
2250
+ display: flex;
2251
+ flex-direction: row;
2252
+ align-items: center;
2253
+ justify-content: center;
2254
+ flex-shrink: 0;
2241
2255
  .vxe-table--expand-btn {
2242
- display: inline-block;
2243
- width: 1em;
2244
- height: 1em;
2245
- text-align: center;
2256
+ cursor: pointer;
2246
2257
  user-select: none;
2247
2258
  color: var(--vxe-ui-font-lighten-color);
2248
- @include baseMixin.createAnimationTransition(transform);
2249
2259
  &:hover {
2250
2260
  color: var(--vxe-ui-font-color);
2251
2261
  }
2262
+ i {
2263
+ display: inline-block;
2264
+ width: 1em;
2265
+ height: 1em;
2266
+ line-height: 1em;
2267
+ @include baseMixin.createAnimationTransition(transform);
2268
+ }
2252
2269
  }
2253
2270
  &+.vxe-table--expand-label {
2271
+ flex-grow: 1;
2254
2272
  padding-left: 0.5em;
2255
2273
  }
2256
2274
  }