vxe-table 3.11.32 → 3.11.34

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 (135) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +3 -0
  4. package/es/locale/lang/de-DE.js +3 -0
  5. package/es/locale/lang/en-US.js +3 -0
  6. package/es/locale/lang/es-ES.js +3 -0
  7. package/es/locale/lang/fr-FR.js +3 -0
  8. package/es/locale/lang/hu-HU.js +3 -0
  9. package/es/locale/lang/hy-AM.js +3 -0
  10. package/es/locale/lang/ja-JP.js +3 -0
  11. package/es/locale/lang/ko-KR.js +3 -0
  12. package/es/locale/lang/nb-NO.js +3 -0
  13. package/es/locale/lang/pt-BR.js +3 -0
  14. package/es/locale/lang/ru-RU.js +3 -0
  15. package/es/locale/lang/ug-CN.js +3 -0
  16. package/es/locale/lang/uk-UA.js +3 -0
  17. package/es/locale/lang/vi-VN.js +3 -0
  18. package/es/locale/lang/zh-CHT.js +3 -0
  19. package/es/locale/lang/zh-CN.js +3 -0
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/table/module/custom/panel.js +7 -6
  23. package/es/table/module/export/mixin.js +23 -10
  24. package/es/table/render/index.js +18 -7
  25. package/es/table/src/body.js +10 -4
  26. package/es/table/src/footer.js +6 -2
  27. package/es/table/src/header.js +9 -6
  28. package/es/table/style.css +73 -27
  29. package/es/table/style.min.css +1 -1
  30. package/es/ui/index.js +5 -3
  31. package/es/ui/src/log.js +1 -1
  32. package/es/vxe-table/style.css +73 -27
  33. package/es/vxe-table/style.min.css +1 -1
  34. package/lib/index.css +1 -1
  35. package/lib/index.min.css +1 -1
  36. package/lib/index.umd.js +86 -51
  37. package/lib/index.umd.min.js +1 -1
  38. package/lib/locale/lang/ar-EG.js +3 -0
  39. package/lib/locale/lang/ar-EG.min.js +1 -1
  40. package/lib/locale/lang/de-DE.js +3 -0
  41. package/lib/locale/lang/de-DE.min.js +1 -1
  42. package/lib/locale/lang/en-US.js +3 -0
  43. package/lib/locale/lang/en-US.min.js +1 -1
  44. package/lib/locale/lang/en-US.umd.js +3 -0
  45. package/lib/locale/lang/es-ES.js +3 -0
  46. package/lib/locale/lang/es-ES.min.js +1 -1
  47. package/lib/locale/lang/es-ES.umd.js +3 -0
  48. package/lib/locale/lang/fr-FR.js +3 -0
  49. package/lib/locale/lang/fr-FR.min.js +1 -1
  50. package/lib/locale/lang/hu-HU.js +3 -0
  51. package/lib/locale/lang/hu-HU.min.js +1 -1
  52. package/lib/locale/lang/hu-HU.umd.js +3 -0
  53. package/lib/locale/lang/hy-AM.js +3 -0
  54. package/lib/locale/lang/hy-AM.min.js +1 -1
  55. package/lib/locale/lang/ja-JP.js +3 -0
  56. package/lib/locale/lang/ja-JP.min.js +1 -1
  57. package/lib/locale/lang/ja-JP.umd.js +3 -0
  58. package/lib/locale/lang/ko-KR.js +3 -0
  59. package/lib/locale/lang/ko-KR.min.js +1 -1
  60. package/lib/locale/lang/ko-KR.umd.js +3 -0
  61. package/lib/locale/lang/nb-NO.js +3 -0
  62. package/lib/locale/lang/nb-NO.min.js +1 -1
  63. package/lib/locale/lang/pt-BR.js +3 -0
  64. package/lib/locale/lang/pt-BR.min.js +1 -1
  65. package/lib/locale/lang/pt-BR.umd.js +3 -0
  66. package/lib/locale/lang/ru-RU.js +3 -0
  67. package/lib/locale/lang/ru-RU.min.js +1 -1
  68. package/lib/locale/lang/ru-RU.umd.js +3 -0
  69. package/lib/locale/lang/ug-CN.js +3 -0
  70. package/lib/locale/lang/ug-CN.min.js +1 -1
  71. package/lib/locale/lang/uk-UA.js +3 -0
  72. package/lib/locale/lang/uk-UA.min.js +1 -1
  73. package/lib/locale/lang/uk-UA.umd.js +3 -0
  74. package/lib/locale/lang/vi-VN.js +3 -0
  75. package/lib/locale/lang/vi-VN.min.js +1 -1
  76. package/lib/locale/lang/zh-CHT.js +3 -0
  77. package/lib/locale/lang/zh-CHT.min.js +1 -1
  78. package/lib/locale/lang/zh-CHT.umd.js +3 -0
  79. package/lib/locale/lang/zh-CN.js +3 -0
  80. package/lib/locale/lang/zh-CN.min.js +1 -1
  81. package/lib/locale/lang/zh-CN.umd.js +3 -0
  82. package/lib/style.css +1 -1
  83. package/lib/style.min.css +1 -1
  84. package/lib/table/module/custom/panel.js +7 -14
  85. package/lib/table/module/custom/panel.min.js +1 -1
  86. package/lib/table/module/export/mixin.js +26 -13
  87. package/lib/table/module/export/mixin.min.js +1 -1
  88. package/lib/table/render/index.js +21 -7
  89. package/lib/table/render/index.min.js +1 -1
  90. package/lib/table/src/body.js +8 -4
  91. package/lib/table/src/body.min.js +1 -1
  92. package/lib/table/src/footer.js +6 -2
  93. package/lib/table/src/footer.min.js +1 -1
  94. package/lib/table/src/header.js +9 -8
  95. package/lib/table/src/header.min.js +1 -1
  96. package/lib/table/style/style.css +73 -27
  97. package/lib/table/style/style.min.css +1 -1
  98. package/lib/ui/index.js +5 -3
  99. package/lib/ui/index.min.js +1 -1
  100. package/lib/ui/src/log.js +1 -1
  101. package/lib/ui/src/log.min.js +1 -1
  102. package/lib/vxe-table/style/style.css +73 -27
  103. package/lib/vxe-table/style/style.min.css +1 -1
  104. package/package.json +2 -2
  105. package/packages/locale/lang/ar-EG.ts +3 -0
  106. package/packages/locale/lang/de-DE.ts +3 -0
  107. package/packages/locale/lang/en-US.ts +3 -0
  108. package/packages/locale/lang/es-ES.ts +3 -0
  109. package/packages/locale/lang/fr-FR.ts +3 -0
  110. package/packages/locale/lang/hu-HU.ts +3 -0
  111. package/packages/locale/lang/hy-AM.ts +3 -0
  112. package/packages/locale/lang/ja-JP.ts +3 -0
  113. package/packages/locale/lang/ko-KR.ts +3 -0
  114. package/packages/locale/lang/nb-NO.ts +3 -0
  115. package/packages/locale/lang/pt-BR.ts +3 -0
  116. package/packages/locale/lang/ru-RU.ts +3 -0
  117. package/packages/locale/lang/ug-CN.ts +3 -0
  118. package/packages/locale/lang/uk-UA.ts +3 -0
  119. package/packages/locale/lang/vi-VN.ts +3 -0
  120. package/packages/locale/lang/zh-CHT.ts +3 -0
  121. package/packages/locale/lang/zh-CN.ts +3 -0
  122. package/packages/table/module/custom/panel.ts +9 -6
  123. package/packages/table/module/export/mixin.ts +23 -10
  124. package/packages/table/render/index.ts +18 -6
  125. package/packages/table/src/body.ts +10 -4
  126. package/packages/table/src/footer.ts +9 -2
  127. package/packages/table/src/header.ts +12 -6
  128. package/packages/ui/index.ts +4 -2
  129. package/styles/components/table.scss +90 -19
  130. /package/es/{iconfont.1734331305049.ttf → iconfont.1734489177027.ttf} +0 -0
  131. /package/es/{iconfont.1734331305049.woff → iconfont.1734489177027.woff} +0 -0
  132. /package/es/{iconfont.1734331305049.woff2 → iconfont.1734489177027.woff2} +0 -0
  133. /package/lib/{iconfont.1734331305049.ttf → iconfont.1734489177027.ttf} +0 -0
  134. /package/lib/{iconfont.1734331305049.woff → iconfont.1734489177027.woff} +0 -0
  135. /package/lib/{iconfont.1734331305049.woff2 → iconfont.1734489177027.woff2} +0 -0
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'Preview',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'Preview',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'Előnézet',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'Preview',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'Preview',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'Предварительный просмотр',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: 'كۆرۈش',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '$'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '¥'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '預覽',
294
297
  operBtn: {
@@ -289,6 +289,9 @@ export default {
289
289
  }
290
290
  }
291
291
  },
292
+ numberInput: {
293
+ currencySymbol: '¥'
294
+ },
292
295
  imagePreview: {
293
296
  popupTitle: '预览',
294
297
  operBtn: {
@@ -869,8 +869,9 @@ export default {
869
869
  }
870
870
  },
871
871
  render (this: any, h: CreateElement) {
872
- const { $xetable } = this
873
- const { customOpts } = $xetable
872
+ const $xeTable = this.$xeTable
873
+
874
+ const customOpts = $xeTable.computeCustomOpts
874
875
  if (['modal', 'drawer', 'popup'].includes(`${customOpts.mode}`)) {
875
876
  return renderPopupPanel(h, this)
876
877
  }
@@ -953,8 +954,10 @@ export default {
953
954
  }
954
955
  },
955
956
  handleOptionCheck (column: any) {
956
- const { $xetable } = this
957
- const { customColumnList } = $xetable
957
+ const $xeTable = this.$xeTable
958
+ const reactData = $xeTable
959
+
960
+ const { customColumnList } = reactData
958
961
  const matchObj = XEUtils.findTree(customColumnList, item => item === column) as any
959
962
  if (matchObj && matchObj.parent) {
960
963
  const { parent } = matchObj
@@ -966,10 +969,10 @@ export default {
966
969
  }
967
970
  },
968
971
  changeCheckboxOption (column: any) {
969
- const $xeTable = this.$xetable
972
+ const $xeTable = this.$xeTable
970
973
  const reactData = $xeTable
971
974
 
972
- const { customOpts } = $xeTable.customOpts
975
+ const customOpts = $xeTable.computeCustomOpts
973
976
  const isChecked = !column.renderVisible
974
977
  if (customOpts.immediate) {
975
978
  XEUtils.eachTree([column], (item) => {
@@ -49,7 +49,7 @@ function getSeq ($xetable: any, cellValue: any, row: any, $rowIndex: any, column
49
49
  }
50
50
 
51
51
  function defaultFilterExportColumn (column: any) {
52
- return column.property || ['seq', 'checkbox', 'radio'].indexOf(column.type) > -1
52
+ return column.field || ['seq', 'checkbox', 'radio'].indexOf(column.type) > -1
53
53
  }
54
54
 
55
55
  function toTableBorder (border: any) {
@@ -220,7 +220,7 @@ function getBooleanValue (cellValue: any) {
220
220
  function getHeaderTitle ($xetable: any, opts: any, column: any) {
221
221
  const { columnOpts } = $xetable
222
222
  const headExportMethod = column.headerExportMethod || columnOpts.headerExportMethod
223
- return headExportMethod ? headExportMethod({ column, options: opts, $table: $xetable }) : ((opts.original ? column.property : column.getTitle()) || '')
223
+ return headExportMethod ? headExportMethod({ column, options: opts, $table: $xetable }) : ((opts.original ? column.field : column.getTitle()) || '')
224
224
  }
225
225
 
226
226
  function getFooterCellValue ($xetable: any, opts: any, row: any, column: any) {
@@ -776,7 +776,7 @@ function parseXML (columns: any, content: any) {
776
776
  function checkImportData (columns: any[], fields: any[]) {
777
777
  const tableFields: any[] = []
778
778
  columns.forEach((column) => {
779
- const field = column.property
779
+ const field = column.field
780
780
  if (field) {
781
781
  tableFields.push(field)
782
782
  }
@@ -1083,13 +1083,13 @@ function handleExportAndPrint ($xetable: any, options: any, isPrint?: any) {
1083
1083
  } else {
1084
1084
  const colid = item.id || item.colId
1085
1085
  const type = item.type
1086
- const field = item.property || item.field
1086
+ const field = item.field
1087
1087
  if (colid) {
1088
1088
  return column.id === colid
1089
1089
  } else if (field && type) {
1090
- return column.property === field && column.type === type
1090
+ return column.field === field && column.type === type
1091
1091
  } else if (field) {
1092
- return column.property === field
1092
+ return column.field === field
1093
1093
  } else if (type) {
1094
1094
  return column.type === type
1095
1095
  }
@@ -1219,13 +1219,26 @@ export default {
1219
1219
  }, exportOpts, {
1220
1220
  print: false
1221
1221
  }, options)
1222
- const { type, mode, columns, original, beforeExportMethod } = opts
1222
+ const { type, mode, columns, original, beforeExportMethod, excludeFields, includeFields } = opts
1223
1223
  let groups = []
1224
1224
  const customCols = columns && columns.length ? columns : null
1225
1225
  // 如果设置源数据,则默认导出设置了字段的列
1226
1226
  let columnFilterMethod = opts.columnFilterMethod
1227
1227
  if (!customCols && !columnFilterMethod) {
1228
- columnFilterMethod = original ? ({ column }: any) => column.property : ({ column }: any) => defaultFilterExportColumn(column)
1228
+ columnFilterMethod = ({ column }: any) => {
1229
+ if (excludeFields) {
1230
+ if (XEUtils.includes(excludeFields, column.field)) {
1231
+ return false
1232
+ }
1233
+ }
1234
+ if (includeFields) {
1235
+ if (XEUtils.includes(includeFields, column.field)) {
1236
+ return true
1237
+ }
1238
+ return false
1239
+ }
1240
+ return original ? column.field : defaultFilterExportColumn(column)
1241
+ }
1229
1242
  }
1230
1243
  if (customCols) {
1231
1244
  opts._isCustomColumn = true
@@ -1240,11 +1253,11 @@ export default {
1240
1253
  } else {
1241
1254
  const colid = item.id || item.colId
1242
1255
  const type = item.type
1243
- const field = item.property || item.field
1256
+ const field = item.field
1244
1257
  if (colid) {
1245
1258
  targetColumn = this.getColumnById(colid)
1246
1259
  } else if (field && type) {
1247
- targetColumn = tableFullColumn.find((column: any) => column.property === field && column.type === type)
1260
+ targetColumn = tableFullColumn.find((column: any) => column.field === field && column.type === type)
1248
1261
  } else if (field) {
1249
1262
  targetColumn = this.getColumnByField(field)
1250
1263
  } else if (type) {
@@ -589,7 +589,8 @@ renderer.mixin({
589
589
  renderTableCell (h, renderOpts, params) {
590
590
  const { props = {} } = renderOpts
591
591
  const { row, column } = params
592
- const digits = props.digits || getConfig().input?.digits || 2
592
+ const inputConfig = getConfig().input || {}
593
+ const digits = props.digits || inputConfig.digits || 2
593
594
  let cellValue = XEUtils.get(row, column.field)
594
595
  if (cellValue) {
595
596
  switch (props.type) {
@@ -620,12 +621,17 @@ renderer.mixin({
620
621
  const { type } = props
621
622
  let cellValue = XEUtils.get(row, column.field)
622
623
  if (cellValue) {
624
+ const numberInputConfig = getConfig().numberInput || {}
623
625
  if (type === 'float') {
624
- const digits = props.digits || getConfig().numberInput.digits || 1
626
+ const digits = props.digits || numberInputConfig.digits || 1
625
627
  cellValue = XEUtils.toFixed(XEUtils.floor(cellValue, digits), digits)
626
628
  } else if (type === 'amount') {
627
- const digits = props.digits || getConfig().numberInput.digits || 2
629
+ const digits = props.digits || numberInputConfig.digits || 2
628
630
  cellValue = XEUtils.commafy(XEUtils.toNumber(cellValue), { digits })
631
+ const showCurrency = props.showCurrency
632
+ if (XEUtils.isBoolean(showCurrency) ? showCurrency : numberInputConfig.showCurrency) {
633
+ cellValue = `${props.currencySymbol || numberInputConfig.currencySymbol || getI18n('vxe.numberInput.currencySymbol') || ''}${cellValue}`
634
+ }
629
635
  }
630
636
  }
631
637
  return getCellLabelVNs(h, renderOpts, params, cellValue)
@@ -637,11 +643,12 @@ renderer.mixin({
637
643
  // 兼容老模式
638
644
  const cellValue = XEUtils.isArray(row) ? row[_columnIndex] : XEUtils.get(row, column.field)
639
645
  if (XEUtils.isNumber(cellValue)) {
646
+ const numberInputConfig = getConfig().numberInput || {}
640
647
  if (type === 'float') {
641
- const digits = props.digits || getConfig().numberInput.digits || 1
648
+ const digits = props.digits || numberInputConfig.digits || 1
642
649
  return XEUtils.toFixed(XEUtils.floor(cellValue, digits), digits)
643
650
  } else if (type === 'amount') {
644
- const digits = props.digits || getConfig().numberInput.digits || 2
651
+ const digits = props.digits || numberInputConfig.digits || 2
645
652
  return XEUtils.commafy(XEUtils.toNumber(cellValue), { digits })
646
653
  }
647
654
  }
@@ -649,7 +656,12 @@ renderer.mixin({
649
656
  },
650
657
  renderTableDefault: defaultEditRender,
651
658
  renderTableFilter: defaultFilterRender,
652
- tableFilterDefaultMethod: handleInputFilterMethod
659
+ tableFilterDefaultMethod: handleInputFilterMethod,
660
+ tableExportMethod (params) {
661
+ const { row, column } = params
662
+ const cellValue = XEUtils.get(row, column.field)
663
+ return cellValue
664
+ }
653
665
  },
654
666
  VxeDatePicker: {
655
667
  tableAutoFocus: 'input',
@@ -310,6 +310,7 @@ function renderColumn (h: any, _vm: any, $xetable: any, seq: any, rowid: any, fi
310
310
  )
311
311
  }
312
312
  }
313
+ const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto')
313
314
 
314
315
  return h('td', {
315
316
  class: [
@@ -323,6 +324,7 @@ function renderColumn (h: any, _vm: any, $xetable: any, seq: any, rowid: any, fi
323
324
  'col--tree-node': treeNode,
324
325
  'col--edit': isEdit,
325
326
  'col--ellipsis': hasEllipsis,
327
+ 'fixed--width': !isAutoCellWidth,
326
328
  'fixed--hidden': fixedHiddenColumn,
327
329
  'is--drag-cell': isColDragCell,
328
330
  'is--drag-disabled': isDisabledDrag,
@@ -345,6 +347,8 @@ function renderColumn (h: any, _vm: any, $xetable: any, seq: any, rowid: any, fi
345
347
  }
346
348
 
347
349
  function renderRows (h: CreateElement, _vm: any, $xeTable: any, fixedType: any, tableData: any, tableColumn: any) {
350
+ const columnOpts = $xeTable.computeColumnOpts
351
+ const columnDragOpts = $xeTable.computeColumnDragOpts
348
352
  const {
349
353
  stripe,
350
354
  rowKey,
@@ -367,7 +371,6 @@ function renderRows (h: CreateElement, _vm: any, $xeTable: any, fixedType: any,
367
371
  fullAllDataRowIdData,
368
372
  rowOpts,
369
373
  pendingRowMaps,
370
- columnOpts,
371
374
  isDragColMove
372
375
  } = $xeTable
373
376
  const { transform, seqMode } = treeOpts
@@ -453,7 +456,7 @@ function renderRows (h: CreateElement, _vm: any, $xeTable: any, fixedType: any,
453
456
  return renderColumn(h, _vm, $xeTable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData)
454
457
  })
455
458
  rows.push(
456
- columnOpts.drag
459
+ columnOpts.drag && columnDragOpts.animation
457
460
  ? h('transition-group', {
458
461
  props: {
459
462
  tag: 'tr',
@@ -578,7 +581,10 @@ export default {
578
581
  const $xeTable = this.$parent
579
582
 
580
583
  const { _e, $parent: $xetable, fixedColumn, fixedType } = this
581
- let { $scopedSlots, tId, tableData, tableColumn, visibleColumn, expandColumn, showOverflow: allColumnOverflow, keyboardConfig, keyboardOpts, mergeList, spanMethod, scrollXLoad, scrollYLoad, isAllOverflow, emptyOpts, mouseConfig, mouseOpts, sYOpts, rowOpts, isDragRowMove } = $xetable
584
+
585
+ const rowOpts = $xeTable.computeRowOpts
586
+ const rowDragOpts = $xeTable.computeRowDragOpts
587
+ let { $scopedSlots, tId, tableData, tableColumn, visibleColumn, expandColumn, showOverflow: allColumnOverflow, keyboardConfig, keyboardOpts, mergeList, spanMethod, scrollXLoad, scrollYLoad, isAllOverflow, emptyOpts, mouseConfig, mouseOpts, sYOpts, isDragRowMove } = $xetable
582
588
  // 如果是使用优化模式
583
589
  if (fixedType) {
584
590
  // 如果存在展开行使用全量渲染
@@ -664,7 +670,7 @@ export default {
664
670
  /**
665
671
  * 内容
666
672
  */
667
- rowOpts.drag
673
+ rowOpts.drag && rowDragOpts.animation
668
674
  ? h('transition-group', {
669
675
  props: {
670
676
  tag: 'tbody',
@@ -120,11 +120,14 @@ function renderRows (h: CreateElement, _vm: any, tableColumn: VxeTableDefines.Co
120
120
  attrs.colspan = colspan
121
121
  }
122
122
  }
123
+ const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto')
124
+
123
125
  return h('td', {
124
126
  class: ['vxe-footer--column', column.id, {
125
127
  [`col--${footAlign}`]: footAlign,
126
128
  [`col--${type}`]: type,
127
129
  'col--last': $columnIndex === tableColumn.length - 1,
130
+ 'fixed--width': !isAutoCellWidth,
128
131
  'fixed--hidden': fixedHiddenColumn,
129
132
  'col--ellipsis': hasEllipsis,
130
133
  'col--current': currentColumn === column
@@ -153,15 +156,19 @@ function renderRows (h: CreateElement, _vm: any, tableColumn: VxeTableDefines.Co
153
156
  }
154
157
 
155
158
  function renderHeads (h: CreateElement, _vm: any, footerTableData: any[]) {
159
+ const $xeTable = _vm.$parent
160
+
161
+ const columnOpts = $xeTable.computeColumnOpts
162
+ const columnDragOpts = $xeTable.computeColumnDragOpts
163
+
156
164
  const { $parent: $xetable, fixedType, tableColumn } = _vm
157
165
  const { footerRowClassName, footerRowStyle, isDragColMove } = $xetable
158
- const columnOpts = $xetable.columnOpts
159
166
 
160
167
  return footerTableData.map((row: any, $rowIndex: any) => {
161
168
  const _rowIndex = $rowIndex
162
169
  const rowParams = { $table: $xetable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType }
163
170
 
164
- if (columnOpts.drag) {
171
+ if (columnOpts.drag && columnDragOpts.animation) {
165
172
  return h('transition-group', {
166
173
  props: {
167
174
  tag: 'tr',
@@ -69,6 +69,8 @@ const renderRows = (h: CreateElement, _vm: any, cols: VxeTableDefines.ColumnInfo
69
69
  thOns.mouseup = $xeTable.handleHeaderCellDragMouseupEvent
70
70
  }
71
71
  }
72
+ const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto')
73
+
72
74
  return h('th', {
73
75
  class: ['vxe-header--column', colid, {
74
76
  [`col--${headAlign}`]: headAlign,
@@ -77,6 +79,7 @@ const renderRows = (h: CreateElement, _vm: any, cols: VxeTableDefines.ColumnInfo
77
79
  'col--fixed': column.fixed,
78
80
  'col--group': isColGroup,
79
81
  'col--ellipsis': hasEllipsis,
82
+ 'fixed--width': !isAutoCellWidth,
80
83
  'fixed--hidden': fixedHiddenColumn,
81
84
  'is--sortable': column.sortable,
82
85
  'col--filter': !!column.filters,
@@ -121,18 +124,21 @@ const renderRows = (h: CreateElement, _vm: any, cols: VxeTableDefines.ColumnInfo
121
124
  }
122
125
 
123
126
  function renderHeads (h: CreateElement, _vm: any, headerGroups: any[]) {
124
- const { $parent: $xetable } = _vm
125
- const tableProps = $xetable
127
+ const $xeTable = _vm.$parent
128
+ const tableProps = $xeTable
126
129
 
127
130
  const { fixedType } = _vm
131
+
132
+ const columnOpts = $xeTable.computeColumnOpts
133
+ const columnDragOpts = $xeTable.computeColumnDragOpts
134
+
128
135
  const { headerRowClassName, headerRowStyle } = tableProps
129
- const { isDragColMove } = $xetable
130
- const columnOpts = $xetable.columnOpts
136
+ const { isDragColMove } = $xeTable
131
137
 
132
138
  return headerGroups.map((cols: any, $rowIndex: any) => {
133
- const params = { $table: $xetable, $rowIndex, fixed: fixedType, type: cellType }
139
+ const params = { $table: $xeTable, $rowIndex, fixed: fixedType, type: cellType }
134
140
 
135
- if (columnOpts.drag) {
141
+ if (columnOpts.drag && columnDragOpts.animation) {
136
142
  return h('transition-group', {
137
143
  props: {
138
144
  tag: 'tr',
@@ -48,10 +48,12 @@ VxeUI.setConfig({
48
48
  strict: true
49
49
  },
50
50
  rowDragConfig: {
51
- showIcon: true
51
+ showIcon: true,
52
+ animation: true
52
53
  },
53
54
  columnDragConfig: {
54
- showIcon: true
55
+ showIcon: true,
56
+ animation: true
55
57
  },
56
58
  checkboxConfig: {
57
59
  // trigger: 'default',
@@ -60,6 +60,96 @@
60
60
  }
61
61
 
62
62
  /*默认的渲染*/
63
+ .vxe-header--column,
64
+ .vxe-footer--column {
65
+ &.fixed--width {
66
+ & > .vxe-cell {
67
+ .vxe-default-input,
68
+ .vxe-default-textarea,
69
+ .vxe-default-select {
70
+ width: 100%;
71
+ }
72
+ .vxe-input,
73
+ .vxe-textarea,
74
+ .vxe-select,
75
+ .vxe-tree-select,
76
+ .vxe-date-picker,
77
+ .vxe-number-input,
78
+ .vxe-ico-picker {
79
+ width: 100%;
80
+ }
81
+ .vxe-cell--tree-node {
82
+ .vxe-input,
83
+ .vxe-textarea,
84
+ .vxe-select,
85
+ .vxe-tree-select,
86
+ .vxe-date-picker,
87
+ .vxe-number-input,
88
+ .vxe-ico-picker {
89
+ width: 100%;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ .vxe-body--column {
96
+ &.fixed--width {
97
+ & > .vxe-cell {
98
+ & > .vxe-default-input,
99
+ & > .vxe-default-textarea,
100
+ & > .vxe-default-select {
101
+ width: 100%;
102
+ }
103
+ & > .vxe-input,
104
+ & > .vxe-textarea,
105
+ & > .vxe-select,
106
+ & > .vxe-tree-select,
107
+ & > .vxe-date-picker,
108
+ & > .vxe-number-input,
109
+ & > .vxe-ico-picker {
110
+ width: 100%;
111
+ }
112
+ & > .vxe-cell--tree-node {
113
+ .vxe-input,
114
+ .vxe-textarea,
115
+ .vxe-select,
116
+ .vxe-tree-select,
117
+ .vxe-date-picker,
118
+ .vxe-number-input,
119
+ .vxe-ico-picker {
120
+ width: 100%;
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ .vxe-table--filter-template {
127
+ & > .vxe-default-input,
128
+ & > .vxe-default-textarea,
129
+ & > .vxe-default-select {
130
+ width: 100%;
131
+ }
132
+ & > .vxe-input,
133
+ & > .vxe-textarea,
134
+ & > .vxe-select,
135
+ & > .vxe-tree-select,
136
+ & > .vxe-date-picker,
137
+ & > .vxe-number-input,
138
+ & > .vxe-ico-picker {
139
+ width: 100%;
140
+ }
141
+ & > .vxe-cell--tree-node {
142
+ .vxe-input,
143
+ .vxe-textarea,
144
+ .vxe-select,
145
+ .vxe-tree-select,
146
+ .vxe-date-picker,
147
+ .vxe-number-input,
148
+ .vxe-ico-picker {
149
+ width: 100%;
150
+ }
151
+ }
152
+ }
63
153
  .vxe-cell,
64
154
  .vxe-table--filter-template {
65
155
  .vxe-default-input,
@@ -71,7 +161,6 @@
71
161
  .vxe-default-select {
72
162
  outline: 0;
73
163
  padding: 0 2px;
74
- width: 100%;
75
164
  color: var(--vxe-ui-font-color);
76
165
  border-radius: var(--vxe-ui-border-radius);
77
166
  border: 1px solid var(--vxe-ui-input-border-color);
@@ -107,15 +196,6 @@
107
196
  height: var(--vxe-ui-input-height-default);
108
197
  }
109
198
  }
110
- & > .vxe-input,
111
- & > .vxe-textarea,
112
- & > .vxe-select,
113
- & > .vxe-tree-select,
114
- & > .vxe-date-picker,
115
- & > .vxe-number-input,
116
- & > .vxe-ico-picker {
117
- width: 100%;
118
- }
119
199
  & > .vxe-input > .vxe-input--inner,
120
200
  & > .vxe-textarea > .vxe-textarea--inner {
121
201
  padding: 0 2px;
@@ -125,15 +205,6 @@
125
205
  resize: none;
126
206
  }
127
207
  & > .vxe-cell--tree-node {
128
- .vxe-input,
129
- .vxe-textarea,
130
- .vxe-select,
131
- .vxe-tree-select,
132
- .vxe-date-picker,
133
- .vxe-number-input,
134
- .vxe-ico-picker {
135
- width: 100%;
136
- }
137
208
  .vxe-input > .vxe-input--inner,
138
209
  .vxe-textarea > .vxe-textarea--inner {
139
210
  padding: 0 2px;