vxe-table 4.16.19 → 4.17.0-beta.0

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 (81) hide show
  1. package/es/grid/src/grid.js +8 -0
  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/filter/hook.js +108 -58
  7. package/es/table/module/filter/panel.js +45 -25
  8. package/es/table/render/index.js +93 -9
  9. package/es/table/src/cell.js +9 -3
  10. package/es/table/src/column.js +2 -0
  11. package/es/table/src/columnInfo.js +14 -6
  12. package/es/table/src/header.js +118 -3
  13. package/es/table/src/props.js +2 -0
  14. package/es/table/src/table.js +29 -26
  15. package/es/table/src/util.js +8 -5
  16. package/es/table/style.css +2 -1
  17. package/es/table/style.min.css +1 -1
  18. package/es/ui/index.js +4 -1
  19. package/es/ui/src/log.js +1 -1
  20. package/es/ui/src/vn.js +11 -0
  21. package/es/vxe-table/style.css +2 -1
  22. package/es/vxe-table/style.min.css +1 -1
  23. package/lib/grid/src/grid.js +12 -0
  24. package/lib/grid/src/grid.min.js +1 -1
  25. package/lib/index.css +1 -1
  26. package/lib/index.min.css +1 -1
  27. package/lib/index.umd.js +525 -137
  28. package/lib/index.umd.min.js +1 -1
  29. package/lib/style.css +1 -1
  30. package/lib/style.min.css +1 -1
  31. package/lib/table/module/filter/hook.js +123 -66
  32. package/lib/table/module/filter/hook.min.js +1 -1
  33. package/lib/table/module/filter/panel.js +59 -26
  34. package/lib/table/module/filter/panel.min.js +1 -1
  35. package/lib/table/render/index.js +109 -8
  36. package/lib/table/render/index.min.js +1 -1
  37. package/lib/table/src/cell.js +15 -3
  38. package/lib/table/src/cell.min.js +1 -1
  39. package/lib/table/src/column.js +2 -0
  40. package/lib/table/src/column.min.js +1 -1
  41. package/lib/table/src/columnInfo.js +18 -5
  42. package/lib/table/src/columnInfo.min.js +1 -1
  43. package/lib/table/src/header.js +133 -3
  44. package/lib/table/src/header.min.js +1 -1
  45. package/lib/table/src/props.js +2 -0
  46. package/lib/table/src/props.min.js +1 -1
  47. package/lib/table/src/table.js +10 -10
  48. package/lib/table/src/table.min.js +1 -1
  49. package/lib/table/src/util.js +18 -14
  50. package/lib/table/src/util.min.js +1 -1
  51. package/lib/table/style/style.css +2 -1
  52. package/lib/table/style/style.min.css +1 -1
  53. package/lib/ui/index.js +4 -1
  54. package/lib/ui/index.min.js +1 -1
  55. package/lib/ui/src/log.js +1 -1
  56. package/lib/ui/src/log.min.js +1 -1
  57. package/lib/ui/src/vn.js +12 -0
  58. package/lib/ui/src/vn.min.js +1 -1
  59. package/lib/vxe-table/style/style.css +2 -1
  60. package/lib/vxe-table/style/style.min.css +1 -1
  61. package/package.json +2 -2
  62. package/packages/grid/src/grid.ts +8 -0
  63. package/packages/table/module/filter/hook.ts +110 -64
  64. package/packages/table/module/filter/panel.ts +56 -28
  65. package/packages/table/render/index.ts +110 -15
  66. package/packages/table/src/cell.ts +9 -3
  67. package/packages/table/src/column.ts +2 -0
  68. package/packages/table/src/columnInfo.ts +19 -7
  69. package/packages/table/src/header.ts +137 -8
  70. package/packages/table/src/props.ts +2 -0
  71. package/packages/table/src/table.ts +30 -26
  72. package/packages/table/src/util.ts +8 -5
  73. package/packages/ui/index.ts +3 -0
  74. package/packages/ui/src/vn.ts +12 -0
  75. package/styles/components/table-module/filter.scss +4 -1
  76. /package/es/{iconfont.1758609514163.ttf → iconfont.1759031444881.ttf} +0 -0
  77. /package/es/{iconfont.1758609514163.woff → iconfont.1759031444881.woff} +0 -0
  78. /package/es/{iconfont.1758609514163.woff2 → iconfont.1759031444881.woff2} +0 -0
  79. /package/lib/{iconfont.1758609514163.ttf → iconfont.1759031444881.ttf} +0 -0
  80. /package/lib/{iconfont.1758609514163.woff → iconfont.1759031444881.woff} +0 -0
  81. /package/lib/{iconfont.1758609514163.woff2 → iconfont.1759031444881.woff2} +0 -0
@@ -151,9 +151,7 @@ export default defineVxeComponent({
151
151
  isAllSelected: false,
152
152
  isIndeterminate: false,
153
153
  style: null,
154
- options: [],
155
154
  column: null,
156
- multiple: false,
157
155
  visible: false,
158
156
  maxHeight: null
159
157
  },
@@ -613,6 +611,10 @@ export default defineVxeComponent({
613
611
  return Object.assign({}, getConfig().table.filterConfig, props.filterConfig) as VxeTablePropTypes.FilterOpts
614
612
  })
615
613
 
614
+ const computeFloatingFilterOpts = computed(() => {
615
+ return Object.assign({}, getConfig().table.floatingFilterConfig, props.floatingFilterConfig)
616
+ })
617
+
616
618
  const computeMouseOpts = computed(() => {
617
619
  return Object.assign({}, getConfig().table.mouseConfig, props.mouseConfig) as VxeTablePropTypes.MouseOpts
618
620
  })
@@ -910,6 +912,7 @@ export default defineVxeComponent({
910
912
  computeEditOpts,
911
913
  computeSortOpts,
912
914
  computeFilterOpts,
915
+ computeFloatingFilterOpts,
913
916
  computeMouseOpts,
914
917
  computeAreaOpts,
915
918
  computeKeyboardOpts,
@@ -1785,7 +1788,7 @@ export default defineVxeComponent({
1785
1788
  fullColFieldData[field] = rest
1786
1789
  } else {
1787
1790
  if (storage && !type) {
1788
- errLog('vxe.error.reqSupportProp', ['storage', `${column.getTitle() || type || ''} -> field=?`])
1791
+ errLog('vxe.error.reqSupportProp', ['storage', `[${type ? `type=${type}` : `title=${column.getTitle()}`}]field=?`])
1789
1792
  }
1790
1793
  if (columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
1791
1794
  errLog('vxe.error.reqSupportProp', ['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag', `${column.getTitle() || type || ''} -> field=?`])
@@ -6372,7 +6375,7 @@ export default defineVxeComponent({
6372
6375
  setFilterByEvent (evnt, fieldOrColumn, options) {
6373
6376
  const column = handleFieldOrColumn($xeTable, fieldOrColumn)
6374
6377
  if (column && column.filters) {
6375
- column.filters = toFilters(options || [])
6378
+ column.filters = toFilters(options || [], column.id)
6376
6379
  return $xeTable.handleColumnConfirmFilter(column, evnt)
6377
6380
  }
6378
6381
  return nextTick()
@@ -6386,13 +6389,13 @@ export default defineVxeComponent({
6386
6389
  const { column, visible } = filterStore
6387
6390
  filterStore.isAllSelected = false
6388
6391
  filterStore.isIndeterminate = false
6389
- filterStore.options = []
6390
6392
  filterStore.visible = false
6391
6393
  if (visible) {
6394
+ const field = column ? column.field : null
6392
6395
  dispatchEvent('filter-visible', {
6393
6396
  column,
6394
- property: column.field,
6395
- field: column.field,
6397
+ property: field,
6398
+ field,
6396
6399
  filterList: () => $xeTable.getCheckedFilters(),
6397
6400
  visible: false
6398
6401
  }, null)
@@ -7457,7 +7460,7 @@ export default defineVxeComponent({
7457
7460
  * 全局按下事件处理
7458
7461
  */
7459
7462
  const handleGlobalMousedownEvent = (evnt: MouseEvent) => {
7460
- const { editStore, ctxMenuStore, filterStore, customStore } = reactData
7463
+ const { editStore, ctxMenuStore, customStore } = reactData
7461
7464
  const { mouseConfig, editRules } = props
7462
7465
  const el = refElem.value
7463
7466
  const editOpts = computeEditOpts.value
@@ -7476,7 +7479,7 @@ export default defineVxeComponent({
7476
7479
  // 如果点击筛选容器
7477
7480
  } else {
7478
7481
  if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-clear').flag) {
7479
- tablePrivateMethods.preventEvent(evnt, 'event.clearFilter', filterStore.args, tableMethods.closeFilter)
7482
+ tablePrivateMethods.preventEvent(evnt, 'event.clearFilter', internalData._currFilterParams, tableMethods.closeFilter)
7480
7483
  }
7481
7484
  }
7482
7485
  }
@@ -8972,24 +8975,25 @@ export default defineVxeComponent({
8972
8975
  reactData.reColumnFlag++
8973
8976
  },
8974
8977
  handleFilterOptions (column) {
8975
- const { filterStore } = reactData
8976
- const { filters, filterMultiple, filterRender } = column
8977
- const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
8978
- const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null)
8979
- filterStore.multiple = filterMultiple
8980
- filterStore.options = filters
8981
- filterStore.column = column
8982
- // 复原状态
8983
- filterStore.options.forEach((option: any) => {
8984
- const { _checked, checked } = option
8985
- option._checked = checked
8986
- if (!checked && _checked !== checked) {
8987
- if (frMethod) {
8988
- frMethod({ option, column, $table: $xeTable })
8978
+ if (column) {
8979
+ const { filterStore } = reactData
8980
+ const { filterRender, filters } = column
8981
+ const filterOptions = filters || []
8982
+ const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
8983
+ const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null)
8984
+ filterStore.column = column
8985
+ // 复原状态
8986
+ filterOptions.forEach((option: any) => {
8987
+ const { _checked, checked } = option
8988
+ option._checked = checked
8989
+ if (!checked && _checked !== checked) {
8990
+ if (frMethod) {
8991
+ frMethod({ option, column, $table: $xeTable })
8992
+ }
8989
8993
  }
8990
- }
8991
- })
8992
- $xeTable.checkFilterOptions()
8994
+ })
8995
+ $xeTable.checkFilterOptions()
8996
+ }
8993
8997
  },
8994
8998
  preventEvent (evnt, type, args, next, end) {
8995
8999
  let evntList = interceptor.get(type)
@@ -408,11 +408,14 @@ function getElementMarginAndWidth (elem: HTMLElement | null) {
408
408
  return 0
409
409
  }
410
410
 
411
- export function toFilters (filters: any) {
412
- if (filters && XEUtils.isArray(filters)) {
413
- return filters.map(({ label, value, data, resetValue, checked }) => {
414
- return { label, value, data, resetValue, checked: !!checked, _checked: !!checked }
415
- })
411
+ export function toFilters (filters: any, colid?: string) {
412
+ if (filters) {
413
+ if (XEUtils.isArray(filters)) {
414
+ return filters.map(({ label, value, data, resetValue, checked }) => {
415
+ return { label, value, data, resetValue, checked: !!checked, _checked: !!checked, _colId: colid }
416
+ })
417
+ }
418
+ return []
416
419
  }
417
420
  return filters
418
421
  }
@@ -156,6 +156,9 @@ VxeUI.setConfig({
156
156
  multiple: true,
157
157
  showIcon: true
158
158
  },
159
+ floatingFilterConfig: {
160
+ // enabled: false
161
+ },
159
162
  aggregateConfig: {
160
163
  padding: true,
161
164
  rowField: 'id',
@@ -32,6 +32,18 @@ export function getChangeEvent (renderOpts: VxeGlobalRendererHandles.RenderOptio
32
32
  return 'change'
33
33
  }
34
34
 
35
+ export function hasInputType (renderOpts: VxeGlobalRendererHandles.RenderOptions) {
36
+ switch (renderOpts.name) {
37
+ case 'VxeInput':
38
+ case 'VxeNumberInput':
39
+ case 'VxeTextarea':
40
+ case '$input':
41
+ case '$textarea':
42
+ return true
43
+ }
44
+ return false
45
+ }
46
+
35
47
  export function getSlotVNs (vns: VxeComponentSlotType | VxeComponentSlotType[]) {
36
48
  if (vns === null || vns === undefined) {
37
49
  return []
@@ -41,7 +41,10 @@
41
41
  box-shadow: var(--vxe-ui-base-popup-box-shadow);
42
42
  z-index: 10;
43
43
  &:not(.is--multiple) {
44
- text-align: center;
44
+ .vxe-table--filter-header,
45
+ .vxe-table--filter-body {
46
+ text-align: center;
47
+ }
45
48
  }
46
49
  &.is--active {
47
50
  display: block;