vxe-table 4.11.16 → 4.11.17

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 (61) hide show
  1. package/es/grid/src/grid.js +15 -29
  2. package/es/style.css +1 -1
  3. package/es/table/module/custom/panel.js +19 -21
  4. package/es/table/module/edit/hook.js +3 -5
  5. package/es/table/module/export/export-panel.js +17 -19
  6. package/es/table/module/export/hook.js +5 -11
  7. package/es/table/module/export/import-panel.js +11 -13
  8. package/es/table/module/validator/hook.js +1 -3
  9. package/es/table/render/index.js +2 -4
  10. package/es/table/src/columnInfo.js +26 -28
  11. package/es/table/src/table.js +112 -78
  12. package/es/toolbar/src/toolbar.js +16 -24
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/lib/grid/src/grid.js +15 -29
  16. package/lib/grid/src/grid.min.js +1 -1
  17. package/lib/index.umd.js +246 -240
  18. package/lib/index.umd.min.js +1 -1
  19. package/lib/style.css +1 -1
  20. package/lib/table/module/custom/panel.js +21 -23
  21. package/lib/table/module/custom/panel.min.js +1 -1
  22. package/lib/table/module/edit/hook.js +3 -5
  23. package/lib/table/module/edit/hook.min.js +1 -1
  24. package/lib/table/module/export/export-panel.js +17 -19
  25. package/lib/table/module/export/export-panel.min.js +1 -1
  26. package/lib/table/module/export/hook.js +5 -11
  27. package/lib/table/module/export/hook.min.js +1 -1
  28. package/lib/table/module/export/import-panel.js +11 -13
  29. package/lib/table/module/export/import-panel.min.js +1 -1
  30. package/lib/table/module/validator/hook.js +1 -3
  31. package/lib/table/module/validator/hook.min.js +1 -1
  32. package/lib/table/render/index.js +2 -4
  33. package/lib/table/render/index.min.js +1 -1
  34. package/lib/table/src/columnInfo.js +30 -32
  35. package/lib/table/src/columnInfo.min.js +1 -1
  36. package/lib/table/src/table.js +119 -75
  37. package/lib/table/src/table.min.js +1 -1
  38. package/lib/toolbar/src/toolbar.js +16 -24
  39. package/lib/toolbar/src/toolbar.min.js +1 -1
  40. package/lib/ui/index.js +1 -1
  41. package/lib/ui/index.min.js +1 -1
  42. package/lib/ui/src/log.js +1 -1
  43. package/lib/ui/src/log.min.js +1 -1
  44. package/package.json +2 -2
  45. package/packages/grid/src/grid.ts +16 -29
  46. package/packages/table/module/custom/panel.ts +19 -21
  47. package/packages/table/module/edit/hook.ts +3 -5
  48. package/packages/table/module/export/export-panel.ts +17 -19
  49. package/packages/table/module/export/hook.ts +5 -11
  50. package/packages/table/module/export/import-panel.ts +11 -13
  51. package/packages/table/module/validator/hook.ts +1 -3
  52. package/packages/table/render/index.ts +2 -4
  53. package/packages/table/src/columnInfo.ts +26 -28
  54. package/packages/table/src/table.ts +110 -75
  55. package/packages/toolbar/src/toolbar.ts +16 -24
  56. /package/es/{iconfont.1741051544689.ttf → iconfont.1741140593243.ttf} +0 -0
  57. /package/es/{iconfont.1741051544689.woff → iconfont.1741140593243.woff} +0 -0
  58. /package/es/{iconfont.1741051544689.woff2 → iconfont.1741140593243.woff2} +0 -0
  59. /package/lib/{iconfont.1741051544689.ttf → iconfont.1741140593243.ttf} +0 -0
  60. /package/lib/{iconfont.1741051544689.woff → iconfont.1741140593243.woff} +0 -0
  61. /package/lib/{iconfont.1741051544689.woff2 → iconfont.1741140593243.woff2} +0 -0
@@ -1344,14 +1344,12 @@ export default defineComponent({
1344
1344
  errLog('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand'])
1345
1345
  }
1346
1346
 
1347
- if (process.env.VUE_APP_VXE_ENV === 'development') {
1348
- if (htmlColumn) {
1349
- if (!columnOpts.useKey) {
1350
- errLog('vxe.error.reqProp', ['column-config.useKey & column.type=html'])
1351
- }
1352
- if (!rowOpts.useKey) {
1353
- errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html'])
1354
- }
1347
+ if (htmlColumn) {
1348
+ if (!columnOpts.useKey) {
1349
+ errLog('vxe.error.reqProp', ['column-config.useKey & column.type=html'])
1350
+ }
1351
+ if (!rowOpts.useKey) {
1352
+ errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html'])
1355
1353
  }
1356
1354
  }
1357
1355
 
@@ -2756,28 +2754,26 @@ export default defineComponent({
2756
2754
  if (treeConfig) {
2757
2755
  if (transform) {
2758
2756
  // 树结构自动转换
2759
- if (process.env.VUE_APP_VXE_ENV === 'development') {
2760
- if (!treeOpts.rowField) {
2761
- errLog('vxe.error.reqProp', ['tree-config.rowField'])
2762
- }
2763
- if (!treeOpts.parentField) {
2764
- errLog('vxe.error.reqProp', ['tree-config.parentField'])
2765
- }
2766
- if (!childrenField) {
2767
- errLog('vxe.error.reqProp', ['tree-config.childrenField'])
2768
- }
2769
- if (!treeOpts.mapChildrenField) {
2770
- errLog('vxe.error.reqProp', ['tree-config.mapChildrenField'])
2771
- }
2772
- if (childrenField === treeOpts.mapChildrenField) {
2773
- errLog('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField'])
2774
- }
2775
- // fullData.forEach(row => {
2776
- // if (row[treeOpts.children] && row[treeOpts.children].length) {
2777
- // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
2778
- // }
2779
- // })
2757
+ if (!treeOpts.rowField) {
2758
+ errLog('vxe.error.reqProp', ['tree-config.rowField'])
2759
+ }
2760
+ if (!treeOpts.parentField) {
2761
+ errLog('vxe.error.reqProp', ['tree-config.parentField'])
2762
+ }
2763
+ if (!childrenField) {
2764
+ errLog('vxe.error.reqProp', ['tree-config.childrenField'])
2765
+ }
2766
+ if (!treeOpts.mapChildrenField) {
2767
+ errLog('vxe.error.reqProp', ['tree-config.mapChildrenField'])
2780
2768
  }
2769
+ if (childrenField === treeOpts.mapChildrenField) {
2770
+ errLog('vxe.error.errConflicts', ['tree-config.childrenField', 'tree-config.mapChildrenField'])
2771
+ }
2772
+ // fullData.forEach(row => {
2773
+ // if (row[treeOpts.children] && row[treeOpts.children].length) {
2774
+ // warnLog('vxe.error.errConflicts', ['tree-config.transform', `row.${treeOpts.children}`])
2775
+ // }
2776
+ // })
2781
2777
  treeData = XEUtils.toArrayTree(fullData, {
2782
2778
  key: treeOpts.rowField,
2783
2779
  parentKey: treeOpts.parentField,
@@ -2843,16 +2839,14 @@ export default defineComponent({
2843
2839
  // }
2844
2840
  // }
2845
2841
 
2846
- if (process.env.VUE_APP_VXE_ENV === 'development') {
2847
- if (!(props.height || props.maxHeight)) {
2848
- errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}'])
2849
- }
2850
- // if (!props.showOverflow) {
2851
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2852
- // }
2853
- if (props.spanMethod) {
2854
- warnLog('vxe.error.scrollErrProp', ['table.span-method'])
2855
- }
2842
+ if (!(props.height || props.maxHeight)) {
2843
+ errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}'])
2844
+ }
2845
+ // if (!props.showOverflow) {
2846
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2847
+ // }
2848
+ if (props.spanMethod) {
2849
+ warnLog('vxe.error.scrollErrProp', ['table.span-method'])
2856
2850
  }
2857
2851
  }
2858
2852
 
@@ -3846,8 +3840,10 @@ export default defineComponent({
3846
3840
  * 如果还额外传了 field 则还原指定的单元格数据
3847
3841
  */
3848
3842
  revertData (rows: any, field) {
3849
- const { keepSource } = props
3850
- const { tableSourceData, sourceDataRowIdData } = internalData
3843
+ const { keepSource, treeConfig } = props
3844
+ const { fullAllDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData
3845
+ const treeOpts = computeTreeOpts.value
3846
+ const { transform } = treeOpts
3851
3847
  if (!keepSource) {
3852
3848
  if (process.env.VUE_APP_VXE_ENV === 'development') {
3853
3849
  warnLog('vxe.error.reqProp', ['keep-source'])
@@ -3862,9 +3858,10 @@ export default defineComponent({
3862
3858
  } else {
3863
3859
  targetRows = XEUtils.toArray($xeTable.getUpdateRecords())
3864
3860
  }
3861
+ let reDelFlag = false
3865
3862
  if (targetRows.length) {
3866
3863
  targetRows.forEach((row: any) => {
3867
- if (!tableMethods.isInsertByRow(row)) {
3864
+ if (!$xeTable.isInsertByRow(row)) {
3868
3865
  const rowid = getRowid($xeTable, row)
3869
3866
  const oRow = sourceDataRowIdData[rowid]
3870
3867
  if (oRow && row) {
@@ -3873,14 +3870,38 @@ export default defineComponent({
3873
3870
  } else {
3874
3871
  XEUtils.destructuring(row, XEUtils.clone(oRow, true))
3875
3872
  }
3873
+ if ($xeTable.isRemoveByRow(row)) {
3874
+ const rowRest = fullAllDataRowIdData[rowid]
3875
+ if (rowRest) {
3876
+ const reRow = rowRest.row
3877
+ tableFullData.unshift(reRow)
3878
+ afterFullData.unshift(reRow)
3879
+ reDelFlag = true
3880
+ }
3881
+ }
3876
3882
  }
3877
3883
  }
3878
3884
  })
3879
3885
  }
3880
3886
  if (rows) {
3881
- return nextTick()
3887
+ if (reDelFlag) {
3888
+ $xeTable.updateFooter()
3889
+ $xeTable.cacheRowMap(false)
3890
+ $xeTable.handleTableData(treeConfig && transform)
3891
+ if (!(treeConfig && transform)) {
3892
+ $xeTable.updateAfterDataIndex()
3893
+ }
3894
+ $xeTable.checkSelectionStatus()
3895
+ if (reactData.scrollYLoad) {
3896
+ $xeTable.updateScrollYSpace()
3897
+ }
3898
+ }
3899
+ return nextTick().then(() => {
3900
+ $xeTable.updateCellAreas()
3901
+ return $xeTable.recalculate()
3902
+ })
3882
3903
  }
3883
- return tableMethods.reloadData(tableSourceData)
3904
+ return $xeTable.reloadData(tableSourceData)
3884
3905
  },
3885
3906
  /**
3886
3907
  * 清空单元格内容
@@ -3995,6 +4016,11 @@ export default defineComponent({
3995
4016
  const rowid = getRowid($xeTable, row)
3996
4017
  return !!editStore.insertMaps[rowid]
3997
4018
  },
4019
+ isRemoveByRow (row) {
4020
+ const { editStore } = reactData
4021
+ const rowid = getRowid($xeTable, row)
4022
+ return !!editStore.removeMaps[rowid]
4023
+ },
3998
4024
  /**
3999
4025
  * 删除所有新增的临时数据
4000
4026
  * @returns
@@ -6772,14 +6798,15 @@ export default defineComponent({
6772
6798
  */
6773
6799
  cacheRowMap () {
6774
6800
  const { treeConfig } = props
6775
- const treeOpts = computeTreeOpts.value
6801
+ const { treeExpandedMaps } = reactData
6776
6802
  const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData
6803
+ const treeOpts = computeTreeOpts.value
6777
6804
  const childrenField = treeOpts.children || treeOpts.childrenField
6778
6805
  const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
6779
6806
  const rowkey = getRowkey($xeTable)
6780
- const isLazy = treeConfig && treeOpts.lazy
6781
- const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
6807
+ const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
6782
6808
  const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
6809
+ const treeTempExpandedMaps = { ...treeExpandedMaps }
6783
6810
  const handleRow = (row: any, index: number, items: any, path?: any[], parentRow?: any, nodes?: any[]) => {
6784
6811
  let rowid = getRowid($xeTable, row)
6785
6812
  const seq = treeConfig && path ? toTreePathSeq(path) : index + 1
@@ -6788,13 +6815,24 @@ export default defineComponent({
6788
6815
  rowid = getRowUniqueId()
6789
6816
  XEUtils.set(row, rowkey, rowid)
6790
6817
  }
6791
- if (isLazy && row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
6792
- row[childrenField] = null
6818
+ if (treeConfig && treeOpts.lazy) {
6819
+ const treeExpRest = treeExpandedMaps[rowid]
6820
+ if (row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
6821
+ row[childrenField] = null
6822
+ }
6823
+ if (treeExpRest) {
6824
+ if (!row[childrenField] || !row[childrenField].length) {
6825
+ delete treeTempExpandedMaps[rowid]
6826
+ }
6827
+ }
6793
6828
  }
6794
6829
  let rowRest = fullAllDataRowIdData[rowid]
6795
6830
  if (!rowRest) {
6796
6831
  rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
6797
6832
  }
6833
+ rowRest.treeLoaded = false
6834
+ rowRest.expandLoaded = false
6835
+
6798
6836
  rowRest.row = row
6799
6837
  rowRest.items = items
6800
6838
  rowRest.parent = parentRow
@@ -6803,13 +6841,14 @@ export default defineComponent({
6803
6841
  fullDataRowIdMaps[rowid] = rowRest
6804
6842
  fullAllDataRowIdMaps[rowid] = rowRest
6805
6843
  }
6806
- internalData.fullDataRowIdData = fullDataRowIdMaps
6807
- internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
6808
6844
  if (treeConfig) {
6809
6845
  XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField })
6810
6846
  } else {
6811
6847
  tableFullData.forEach(handleRow)
6812
6848
  }
6849
+ internalData.fullDataRowIdData = fullDataRowIdMaps
6850
+ internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
6851
+ reactData.treeExpandedMaps = treeTempExpandedMaps
6813
6852
  },
6814
6853
  cacheSourceMap (fullData) {
6815
6854
  const { treeConfig } = props
@@ -9331,18 +9370,16 @@ export default defineComponent({
9331
9370
  }
9332
9371
 
9333
9372
  // 检测对应模块是否安装
9334
- if (process.env.VUE_APP_VXE_ENV === 'development') {
9335
- 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
9336
- ($xeTable as any)[name] = function () {
9337
- errLog('vxe.error.reqModule', ['VxeTableExportModule'])
9338
- }
9339
- })
9340
- 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
9341
- ($xeTable as any)[name] = function () {
9342
- errLog('vxe.error.reqModule', ['VxeTableValidatorModule'])
9343
- }
9344
- })
9345
- }
9373
+ 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
9374
+ ($xeTable as any)[name] = function () {
9375
+ errLog('vxe.error.reqModule', ['VxeTableExportModule'])
9376
+ }
9377
+ })
9378
+ 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
9379
+ ($xeTable as any)[name] = function () {
9380
+ errLog('vxe.error.reqModule', ['VxeTableValidatorModule'])
9381
+ }
9382
+ })
9346
9383
 
9347
9384
  Object.assign($xeTable, tableMethods, tablePrivateMethods)
9348
9385
 
@@ -10350,23 +10387,21 @@ export default defineComponent({
10350
10387
  tablePrivateMethods.preventEvent(null, 'unmounted', { $table: $xeTable })
10351
10388
  })
10352
10389
 
10353
- if (process.env.VUE_APP_VXE_ENV === 'development') {
10354
- nextTick(() => {
10355
- if (props.loading) {
10356
- if (!VxeUILoadingComponent && !slots.loading) {
10357
- errLog('vxe.error.reqComp', ['vxe-loading'])
10358
- }
10390
+ nextTick(() => {
10391
+ if (props.loading) {
10392
+ if (!VxeUILoadingComponent && !slots.loading) {
10393
+ errLog('vxe.error.reqComp', ['vxe-loading'])
10359
10394
  }
10360
- if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
10395
+ }
10396
+ if ((props.showOverflow === true || props.showOverflow === 'tooltip') ||
10361
10397
  (props.showHeaderOverflow === true || props.showHeaderOverflow === 'tooltip') ||
10362
10398
  (props.showFooterOverflow === true || props.showFooterOverflow === 'tooltip') ||
10363
10399
  props.tooltipConfig || props.editRules) {
10364
- if (!VxeUITooltipComponent) {
10365
- errLog('vxe.error.reqComp', ['vxe-tooltip'])
10366
- }
10400
+ if (!VxeUITooltipComponent) {
10401
+ errLog('vxe.error.reqComp', ['vxe-tooltip'])
10367
10402
  }
10368
- })
10369
- }
10403
+ }
10404
+ })
10370
10405
 
10371
10406
  provide('$xeColgroup', null)
10372
10407
  provide('$xeTable', $xeTable)
@@ -210,9 +210,7 @@ export default defineComponent({
210
210
  if (tCommandMethod) {
211
211
  tCommandMethod(params)
212
212
  } else {
213
- if (process.env.VUE_APP_VXE_ENV === 'development') {
214
- errLog('vxe.error.notCommands', [code])
215
- }
213
+ errLog('vxe.error.notCommands', [code])
216
214
  }
217
215
  }
218
216
  $xeToolbar.dispatchEvent('button-click', params, evnt)
@@ -235,9 +233,7 @@ export default defineComponent({
235
233
  if (tCommandMethod) {
236
234
  tCommandMethod(params)
237
235
  } else {
238
- if (process.env.VUE_APP_VXE_ENV === 'development') {
239
- errLog('vxe.error.notCommands', [code])
240
- }
236
+ errLog('vxe.error.notCommands', [code])
241
237
  }
242
238
  }
243
239
  $xeToolbar.dispatchEvent('tool-click', params, evnt)
@@ -598,25 +594,21 @@ export default defineComponent({
598
594
  warnLog('vxe.error.notFunc', ['queryMethod'])
599
595
  }
600
596
  const customOpts = computeCustomOpts.value
601
- if (process.env.VUE_APP_VXE_ENV === 'development') {
602
- if (customOpts.isFooter) {
603
- warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter'])
604
- }
605
- if (customOpts.showFooter) {
606
- warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter'])
607
- }
608
- if (customOpts.immediate) {
609
- warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate'])
610
- }
611
- if (customOpts.trigger) {
612
- warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger'])
613
- }
597
+ if (customOpts.isFooter) {
598
+ warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter'])
614
599
  }
615
- if (process.env.VUE_APP_VXE_ENV === 'development') {
616
- if (props.refresh || props.import || props.export || props.print || props.zoom) {
617
- if (!VxeUIButtonComponent) {
618
- errLog('vxe.error.reqComp', ['vxe-button'])
619
- }
600
+ if (customOpts.showFooter) {
601
+ warnLog('vxe.error.delProp', ['toolbar.custom.showFooter', 'table.custom-config.showFooter'])
602
+ }
603
+ if (customOpts.immediate) {
604
+ warnLog('vxe.error.delProp', ['toolbar.custom.immediate', 'table.custom-config.immediate'])
605
+ }
606
+ if (customOpts.trigger) {
607
+ warnLog('vxe.error.delProp', ['toolbar.custom.trigger', 'table.custom-config.trigger'])
608
+ }
609
+ if (props.refresh || props.import || props.export || props.print || props.zoom) {
610
+ if (!VxeUIButtonComponent) {
611
+ errLog('vxe.error.reqComp', ['vxe-button'])
620
612
  }
621
613
  }
622
614
  })