vxe-table 3.15.54 → 3.15.57

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 (140) hide show
  1. package/es/grid/src/grid.js +31 -0
  2. package/es/locale/lang/ar-EG.js +2 -1
  3. package/es/locale/lang/de-DE.js +2 -1
  4. package/es/locale/lang/en-US.js +2 -1
  5. package/es/locale/lang/es-ES.js +2 -1
  6. package/es/locale/lang/fr-FR.js +2 -1
  7. package/es/locale/lang/hu-HU.js +2 -1
  8. package/es/locale/lang/hy-AM.js +2 -1
  9. package/es/locale/lang/id-ID.js +2 -1
  10. package/es/locale/lang/it-IT.js +2 -1
  11. package/es/locale/lang/ja-JP.js +2 -1
  12. package/es/locale/lang/ko-KR.js +2 -1
  13. package/es/locale/lang/ms-MY.js +2 -1
  14. package/es/locale/lang/nb-NO.js +2 -1
  15. package/es/locale/lang/pt-BR.js +2 -1
  16. package/es/locale/lang/ru-RU.js +2 -1
  17. package/es/locale/lang/th-TH.js +2 -1
  18. package/es/locale/lang/ug-CN.js +2 -1
  19. package/es/locale/lang/uk-UA.js +2 -1
  20. package/es/locale/lang/uz-UZ.js +2 -1
  21. package/es/locale/lang/vi-VN.js +2 -1
  22. package/es/locale/lang/zh-CHT.js +2 -1
  23. package/es/locale/lang/zh-CN.js +2 -1
  24. package/es/style.css +1 -1
  25. package/es/table/src/methods.js +60 -17
  26. package/es/table/src/table.js +30 -2
  27. package/es/ui/index.js +2 -1
  28. package/es/ui/src/log.js +1 -1
  29. package/lib/grid/src/grid.js +48 -0
  30. package/lib/grid/src/grid.min.js +1 -1
  31. package/lib/index.umd.js +157 -22
  32. package/lib/index.umd.min.js +1 -1
  33. package/lib/locale/lang/ar-EG.js +2 -1
  34. package/lib/locale/lang/ar-EG.min.js +1 -1
  35. package/lib/locale/lang/ar-EG.umd.js +2 -1
  36. package/lib/locale/lang/de-DE.js +2 -1
  37. package/lib/locale/lang/de-DE.min.js +1 -1
  38. package/lib/locale/lang/de-DE.umd.js +2 -1
  39. package/lib/locale/lang/en-US.js +2 -1
  40. package/lib/locale/lang/en-US.min.js +1 -1
  41. package/lib/locale/lang/en-US.umd.js +2 -1
  42. package/lib/locale/lang/es-ES.js +2 -1
  43. package/lib/locale/lang/es-ES.min.js +1 -1
  44. package/lib/locale/lang/es-ES.umd.js +2 -1
  45. package/lib/locale/lang/fr-FR.js +2 -1
  46. package/lib/locale/lang/fr-FR.min.js +1 -1
  47. package/lib/locale/lang/fr-FR.umd.js +2 -1
  48. package/lib/locale/lang/hu-HU.js +2 -1
  49. package/lib/locale/lang/hu-HU.min.js +1 -1
  50. package/lib/locale/lang/hu-HU.umd.js +2 -1
  51. package/lib/locale/lang/hy-AM.js +2 -1
  52. package/lib/locale/lang/hy-AM.min.js +1 -1
  53. package/lib/locale/lang/hy-AM.umd.js +2 -1
  54. package/lib/locale/lang/id-ID.js +2 -1
  55. package/lib/locale/lang/id-ID.min.js +1 -1
  56. package/lib/locale/lang/id-ID.umd.js +2 -1
  57. package/lib/locale/lang/it-IT.js +2 -1
  58. package/lib/locale/lang/it-IT.min.js +1 -1
  59. package/lib/locale/lang/it-IT.umd.js +2 -1
  60. package/lib/locale/lang/ja-JP.js +2 -1
  61. package/lib/locale/lang/ja-JP.min.js +1 -1
  62. package/lib/locale/lang/ja-JP.umd.js +2 -1
  63. package/lib/locale/lang/ko-KR.js +2 -1
  64. package/lib/locale/lang/ko-KR.min.js +1 -1
  65. package/lib/locale/lang/ko-KR.umd.js +2 -1
  66. package/lib/locale/lang/ms-MY.js +2 -1
  67. package/lib/locale/lang/ms-MY.min.js +1 -1
  68. package/lib/locale/lang/ms-MY.umd.js +2 -1
  69. package/lib/locale/lang/nb-NO.js +2 -1
  70. package/lib/locale/lang/nb-NO.min.js +1 -1
  71. package/lib/locale/lang/nb-NO.umd.js +2 -1
  72. package/lib/locale/lang/pt-BR.js +2 -1
  73. package/lib/locale/lang/pt-BR.min.js +1 -1
  74. package/lib/locale/lang/pt-BR.umd.js +2 -1
  75. package/lib/locale/lang/ru-RU.js +2 -1
  76. package/lib/locale/lang/ru-RU.min.js +1 -1
  77. package/lib/locale/lang/ru-RU.umd.js +2 -1
  78. package/lib/locale/lang/th-TH.js +2 -1
  79. package/lib/locale/lang/th-TH.min.js +1 -1
  80. package/lib/locale/lang/th-TH.umd.js +2 -1
  81. package/lib/locale/lang/ug-CN.js +2 -1
  82. package/lib/locale/lang/ug-CN.min.js +1 -1
  83. package/lib/locale/lang/ug-CN.umd.js +2 -1
  84. package/lib/locale/lang/uk-UA.js +2 -1
  85. package/lib/locale/lang/uk-UA.min.js +1 -1
  86. package/lib/locale/lang/uk-UA.umd.js +2 -1
  87. package/lib/locale/lang/uz-UZ.js +2 -1
  88. package/lib/locale/lang/uz-UZ.min.js +1 -1
  89. package/lib/locale/lang/uz-UZ.umd.js +2 -1
  90. package/lib/locale/lang/vi-VN.js +2 -1
  91. package/lib/locale/lang/vi-VN.min.js +1 -1
  92. package/lib/locale/lang/vi-VN.umd.js +2 -1
  93. package/lib/locale/lang/zh-CHT.js +2 -1
  94. package/lib/locale/lang/zh-CHT.min.js +1 -1
  95. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  96. package/lib/locale/lang/zh-CN.js +2 -1
  97. package/lib/locale/lang/zh-CN.min.js +1 -1
  98. package/lib/locale/lang/zh-CN.umd.js +2 -1
  99. package/lib/style.css +1 -1
  100. package/lib/table/src/methods.js +66 -17
  101. package/lib/table/src/methods.min.js +1 -1
  102. package/lib/table/src/table.js +36 -2
  103. package/lib/table/src/table.min.js +1 -1
  104. package/lib/ui/index.js +2 -1
  105. package/lib/ui/index.min.js +1 -1
  106. package/lib/ui/src/log.js +1 -1
  107. package/lib/ui/src/log.min.js +1 -1
  108. package/package.json +1 -1
  109. package/packages/grid/src/grid.ts +31 -0
  110. package/packages/locale/lang/ar-EG.ts +2 -1
  111. package/packages/locale/lang/de-DE.ts +2 -1
  112. package/packages/locale/lang/en-US.ts +2 -1
  113. package/packages/locale/lang/es-ES.ts +2 -1
  114. package/packages/locale/lang/fr-FR.ts +2 -1
  115. package/packages/locale/lang/hu-HU.ts +2 -1
  116. package/packages/locale/lang/hy-AM.ts +2 -1
  117. package/packages/locale/lang/id-ID.ts +2 -1
  118. package/packages/locale/lang/it-IT.ts +2 -1
  119. package/packages/locale/lang/ja-JP.ts +2 -1
  120. package/packages/locale/lang/ko-KR.ts +2 -1
  121. package/packages/locale/lang/ms-MY.ts +2 -1
  122. package/packages/locale/lang/nb-NO.ts +2 -1
  123. package/packages/locale/lang/pt-BR.ts +2 -1
  124. package/packages/locale/lang/ru-RU.ts +2 -1
  125. package/packages/locale/lang/th-TH.ts +2 -1
  126. package/packages/locale/lang/ug-CN.ts +2 -1
  127. package/packages/locale/lang/uk-UA.ts +2 -1
  128. package/packages/locale/lang/uz-UZ.ts +2 -1
  129. package/packages/locale/lang/vi-VN.ts +2 -1
  130. package/packages/locale/lang/zh-CHT.ts +2 -1
  131. package/packages/locale/lang/zh-CN.ts +2 -1
  132. package/packages/table/src/methods.ts +70 -16
  133. package/packages/table/src/table.ts +31 -3
  134. package/packages/ui/index.ts +1 -0
  135. /package/es/{iconfont.1753260891694.ttf → iconfont.1754364592710.ttf} +0 -0
  136. /package/es/{iconfont.1753260891694.woff → iconfont.1754364592710.woff} +0 -0
  137. /package/es/{iconfont.1753260891694.woff2 → iconfont.1754364592710.woff2} +0 -0
  138. /package/lib/{iconfont.1753260891694.ttf → iconfont.1754364592710.ttf} +0 -0
  139. /package/lib/{iconfont.1753260891694.woff → iconfont.1754364592710.woff} +0 -0
  140. /package/lib/{iconfont.1753260891694.woff2 → iconfont.1754364592710.woff2} +0 -0
@@ -55,7 +55,8 @@ export default {
55
55
  treeCrossDrag: 'Chỉ kéo cấp độ đầu tiên',
56
56
  treeDragChild: 'Cha mẹ không thể kéo đến con cái của họ',
57
57
  reqPlugin: '"{1}" không được cài đặt tại https://vxeui.com/other/khác',
58
- errMaxRow: 'Vượt quá khối lượng dữ liệu được hỗ trợ tối đa {0}, điều này có thể gây ra lỗi'
58
+ errMaxRow: 'Vượt quá khối lượng dữ liệu được hỗ trợ tối đa {0}, điều này có thể gây ra lỗi',
59
+ useNew: '不建议使用 {0},请使用 {1}'
59
60
  },
60
61
  table: {
61
62
  emptyText: 'Chưa có dữ liệu',
@@ -55,7 +55,8 @@ export default {
55
55
  treeCrossDrag: '只能拖拽第一層級',
56
56
  treeDragChild: '父級不能拖拽到自己的子級中',
57
57
  reqPlugin: '擴展插件未安裝 "{1}" https://vxeui.com/other{0}/#/{1}/install',
58
- errMaxRow: '超過支持的最大數據量 {0} 行,這可能會導致出現錯誤'
58
+ errMaxRow: '超過支持的最大數據量 {0} 行,這可能會導致出現錯誤',
59
+ useNew: '不建议使用 {0},请使用 {1}'
59
60
  },
60
61
  table: {
61
62
  emptyText: '暫無數據',
@@ -55,7 +55,8 @@ export default {
55
55
  treeCrossDrag: '只能拖拽第一层级',
56
56
  treeDragChild: '父级不能拖拽到自己的子级中',
57
57
  reqPlugin: '扩展插件未安装 "{1}" https://vxeui.com/other{0}/#/{1}/install',
58
- errMaxRow: '超过支持的最大数据量 {0} 行,这可能会导致出现错误'
58
+ errMaxRow: '超过支持的最大数据量 {0} 行,这可能会导致出现错误',
59
+ useNew: '不建议使用 {0},请使用 {1}'
59
60
  },
60
61
  table: {
61
62
  emptyText: '暂无数据',
@@ -318,10 +318,10 @@ function cacheColumnMap ($xeTable: VxeTableConstructor & VxeTablePrivateMethods)
318
318
 
319
319
  if (htmlColumn) {
320
320
  if (!columnOpts.useKey) {
321
- errLog('vxe.error.reqProp', ['column-config.useKey & column.type=html'])
321
+ errLog('vxe.error.notSupportProp', ['column.type=html', 'column-config.useKey=false', 'column-config.useKey=true'])
322
322
  }
323
323
  if (!rowOpts.useKey) {
324
- errLog('vxe.error.reqProp', ['row-config.useKey & column.type=html'])
324
+ errLog('vxe.error.notSupportProp', ['column.type=html', 'row-config.useKey=false', 'row-config.useKey=true'])
325
325
  }
326
326
  }
327
327
 
@@ -2038,16 +2038,25 @@ function removeFooterMerges ($xeTable: VxeTableConstructor & VxeTablePrivateMeth
2038
2038
  }
2039
2039
 
2040
2040
  function handleSortEvent ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, evnt: Event | null, sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[], isUpdate?: boolean) {
2041
+ const internalData = $xeTable as unknown as TableInternalData
2042
+
2043
+ const { tableFullColumn } = internalData
2041
2044
  const sortOpts = $xeTable.computeSortOpts
2042
2045
  const { multiple, remote, orders } = sortOpts
2043
2046
  if (!XEUtils.isArray(sortConfs)) {
2044
2047
  sortConfs = [sortConfs]
2045
2048
  }
2046
2049
  if (sortConfs && sortConfs.length) {
2050
+ const orderActiveMaps: Record<string, VxeTableDefines.ColumnInfo> = {}
2047
2051
  if (!multiple) {
2048
2052
  sortConfs = [sortConfs[0]]
2049
- clearAllSort($xeTable)
2053
+ tableFullColumn.forEach((column) => {
2054
+ if (column.order) {
2055
+ orderActiveMaps[column.id] = column
2056
+ }
2057
+ })
2050
2058
  }
2059
+ const sortColMpps: Record<string, VxeTableDefines.ColumnInfo> = {}
2051
2060
  let firstColumn: any = null
2052
2061
  sortConfs.forEach((confs: any, index: number) => {
2053
2062
  let { field, order } = confs
@@ -2066,8 +2075,16 @@ function handleSortEvent ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
2066
2075
  column.order = order
2067
2076
  }
2068
2077
  column.sortTime = Date.now() + index
2078
+ sortColMpps[column.id] = column
2069
2079
  }
2070
2080
  })
2081
+ if (!multiple) {
2082
+ XEUtils.each(orderActiveMaps, (oaCol: VxeTableDefines.ColumnInfo, oaId) => {
2083
+ if (!sortColMpps[oaId]) {
2084
+ oaCol.order = null
2085
+ }
2086
+ })
2087
+ }
2071
2088
  if (isUpdate) {
2072
2089
  if (!remote) {
2073
2090
  $xeTable.handleTableData(true)
@@ -8744,10 +8761,10 @@ const Methods = {
8744
8761
 
8745
8762
  return handleSortEvent($xeTable, null, sortConfs, isUpdate)
8746
8763
  },
8747
- setSortByEvent (evnt: Event, sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[], isUpdate?: boolean) {
8764
+ setSortByEvent (evnt: Event, sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[]) {
8748
8765
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
8749
8766
 
8750
- return handleSortEvent($xeTable, evnt, sortConfs, isUpdate)
8767
+ return handleSortEvent($xeTable, evnt, sortConfs, true)
8751
8768
  },
8752
8769
  /**
8753
8770
  * 清空指定列的排序条件
@@ -8780,6 +8797,7 @@ const Methods = {
8780
8797
 
8781
8798
  const { tableFullColumn } = internalData
8782
8799
  const sortOpts = $xeTable.computeSortOpts
8800
+ const { multiple } = sortOpts
8783
8801
  const sortCols: VxeTableDefines.ColumnInfo[] = []
8784
8802
  let column: VxeTableDefines.ColumnInfo<any> | null = null
8785
8803
  if (evnt) {
@@ -8799,11 +8817,18 @@ const Methods = {
8799
8817
  if (!sortOpts.remote) {
8800
8818
  $xeTable.handleTableData(true)
8801
8819
  }
8802
- if (sortCols.length) {
8820
+
8821
+ if (!multiple) {
8822
+ column = sortCols[0]
8823
+ }
8824
+
8825
+ if (column) {
8826
+ $xeTable.handleColumnSortEvent(evnt, column)
8827
+ }
8828
+
8829
+ if (multiple && sortCols.length) {
8803
8830
  const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] }
8804
8831
  $xeTable.dispatchEvent('clear-all-sort', params, evnt)
8805
- } else if (column) {
8806
- $xeTable.handleColumnSortEvent(evnt, column)
8807
8832
  }
8808
8833
  }
8809
8834
  return $xeTable.$nextTick().then(() => {
@@ -8837,15 +8862,13 @@ const Methods = {
8837
8862
  }
8838
8863
  return sortList
8839
8864
  },
8840
- setFilterByEvent (evnt: Event, fieldOrColumn: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo<any>, options: VxeColumnPropTypes.FilterItem[], isUpdate?: boolean) {
8865
+ setFilterByEvent (evnt: Event, fieldOrColumn: VxeColumnPropTypes.Field | VxeTableDefines.ColumnInfo<any>, options: VxeColumnPropTypes.FilterItem[]) {
8841
8866
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
8842
8867
 
8843
8868
  const column = handleFieldOrColumn($xeTable, fieldOrColumn)
8844
8869
  if (column && column.filters) {
8845
8870
  column.filters = toFilters(options || [])
8846
- if (isUpdate) {
8847
- return $xeTable.handleColumnConfirmFilter(column, evnt)
8848
- }
8871
+ return $xeTable.handleColumnConfirmFilter(column, evnt)
8849
8872
  }
8850
8873
  return $xeTable.$nextTick()
8851
8874
  },
@@ -8897,6 +8920,7 @@ const Methods = {
8897
8920
  const { filterStore } = reactData
8898
8921
  const { tableFullColumn } = internalData
8899
8922
  const filterOpts = $xeTable.computeFilterOpts
8923
+ const { multiple } = filterOpts
8900
8924
  const filterCols: VxeTableDefines.ColumnInfo[] = []
8901
8925
  let column: VxeTableDefines.ColumnInfo<any> | null = null
8902
8926
  if (fieldOrColumn) {
@@ -8919,19 +8943,49 @@ const Methods = {
8919
8943
  style: null,
8920
8944
  options: [],
8921
8945
  column: null,
8922
- multiple: false,
8946
+ multiple: false, // 选项是覅多选
8923
8947
  visible: false
8924
8948
  })
8925
8949
  }
8950
+
8926
8951
  if (!filterOpts.remote) {
8927
8952
  $xeTable.updateData()
8928
8953
  }
8929
- if (filterCols.length) {
8954
+
8955
+ if (!multiple) {
8956
+ column = filterCols[0]
8957
+ }
8958
+
8959
+ if (column) {
8960
+ const filterList = () => $xeTable.getCheckedFilters()
8961
+ const values: any[] = []
8962
+ const datas: any[] = []
8963
+ column.filters.forEach((item: any) => {
8964
+ if (item.checked) {
8965
+ values.push(item.value)
8966
+ datas.push(item.data)
8967
+ }
8968
+ })
8969
+ const params = {
8970
+ $table: $xeTable,
8971
+ $event: evnt as Event,
8972
+ column,
8973
+ field: column.field,
8974
+ property: column.field,
8975
+ values,
8976
+ datas,
8977
+ filters: filterList,
8978
+ filterList
8979
+ }
8980
+ $xeTable.dispatchEvent('filter-change', params, evnt)
8981
+ $xeTable.dispatchEvent('clear-filter', params, evnt)
8982
+ }
8983
+
8984
+ if (multiple && filterCols.length) {
8930
8985
  const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] }
8931
8986
  $xeTable.dispatchEvent('clear-all-filter', params, evnt)
8932
- } else if (column) {
8933
- $xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt)
8934
8987
  }
8988
+
8935
8989
  return $xeTable.$nextTick()
8936
8990
  },
8937
8991
  /**
@@ -26,7 +26,7 @@ import validatorMixin from '../module/validator/mixin'
26
26
  import customMixin from '../module/custom/mixin'
27
27
 
28
28
  import type { VxeLoadingComponent, VxeTooltipComponent, VxeTabsConstructor, VxeTabsPrivateMethods } from 'vxe-pc-ui'
29
- import type { VxeTableConstructor, VxeTablePrivateMethods, TableInternalData, TableReactData, VxeTableDefines } from '../../../types'
29
+ import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTablePropTypes, TableInternalData, TableReactData, VxeTableDefines } from '../../../types'
30
30
 
31
31
  const { getConfig, getIcon, getI18n, renderer, globalResize, globalEvents, globalMixins, renderEmptyElement } = VxeUI
32
32
 
@@ -791,13 +791,41 @@ export default {
791
791
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
792
792
  const props = $xeTable
793
793
 
794
- return Object.assign({}, getConfig().table.virtualXConfig || getConfig().table.scrollX, props.virtualXConfig || props.scrollX)
794
+ const { virtualXConfig, scrollX } = props
795
+ const globalVirtualXConfig = getConfig().table.virtualXConfig
796
+ const globalScrollX = getConfig().table.scrollX
797
+ if (virtualXConfig) {
798
+ return Object.assign({}, globalVirtualXConfig, virtualXConfig) as VxeTablePropTypes.VirtualXConfig & { gt: number }
799
+ }
800
+ if (scrollX) {
801
+ // 已废弃,保留兼容
802
+ return Object.assign({}, globalScrollX, scrollX) as VxeTablePropTypes.VirtualXConfig & { gt: number }
803
+ }
804
+ if (globalVirtualXConfig) {
805
+ return Object.assign({}, globalVirtualXConfig, virtualXConfig) as VxeTablePropTypes.VirtualXConfig & { gt: number }
806
+ }
807
+ // 已废弃,保留兼容
808
+ return Object.assign({}, globalScrollX, scrollX) as VxeTablePropTypes.VirtualXConfig & { gt: number }
795
809
  },
796
810
  computeVirtualYOpts () {
797
811
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
798
812
  const props = $xeTable
799
813
 
800
- return Object.assign({}, getConfig().table.virtualYConfig || getConfig().table.scrollY, props.virtualYConfig || props.scrollY)
814
+ const { virtualYConfig, scrollY } = props
815
+ const globalVirtualYConfig = getConfig().table.virtualYConfig
816
+ const globalScrollY = getConfig().table.scrollY
817
+ if (virtualYConfig) {
818
+ return Object.assign({}, globalVirtualYConfig, virtualYConfig) as VxeTablePropTypes.VirtualYConfig & { gt: number }
819
+ }
820
+ if (scrollY) {
821
+ // 已废弃,保留兼容
822
+ return Object.assign({}, globalScrollY, scrollY) as VxeTablePropTypes.VirtualYConfig & { gt: number }
823
+ }
824
+ if (globalVirtualYConfig) {
825
+ return Object.assign({}, globalVirtualYConfig, virtualYConfig) as VxeTablePropTypes.VirtualYConfig & { gt: number }
826
+ }
827
+ // 已废弃,保留兼容
828
+ return Object.assign({}, globalScrollY, scrollY) as VxeTablePropTypes.VirtualYConfig & { gt: number }
801
829
  },
802
830
  computeScrollbarOpts () {
803
831
  const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
@@ -140,6 +140,7 @@ VxeUI.setConfig({
140
140
  // filterMethod: null,
141
141
  // destroyOnClose: false,
142
142
  // isEvery: false,
143
+ multiple: true,
143
144
  showIcon: true
144
145
  },
145
146
  aggregateConfig: {