vxe-table 4.7.53 → 4.7.55

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 (37) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/module/custom/panel.js +1 -2
  3. package/es/table/module/filter/hook.js +54 -2
  4. package/es/table/module/filter/panel.js +5 -24
  5. package/es/table/render/index.js +10 -4
  6. package/es/table/src/table.js +2 -1
  7. package/es/ui/index.js +2 -2
  8. package/es/ui/src/log.js +1 -1
  9. package/lib/index.umd.js +88 -43
  10. package/lib/index.umd.min.js +1 -1
  11. package/lib/style.css +1 -1
  12. package/lib/table/module/custom/panel.js +1 -2
  13. package/lib/table/module/custom/panel.min.js +1 -1
  14. package/lib/table/module/filter/hook.js +61 -2
  15. package/lib/table/module/filter/hook.min.js +1 -1
  16. package/lib/table/module/filter/panel.js +5 -31
  17. package/lib/table/module/filter/panel.min.js +1 -1
  18. package/lib/table/render/index.js +16 -4
  19. package/lib/table/render/index.min.js +1 -1
  20. package/lib/table/src/table.js +2 -1
  21. package/lib/table/src/table.min.js +1 -1
  22. package/lib/ui/index.js +2 -2
  23. package/lib/ui/index.min.js +1 -1
  24. package/lib/ui/src/log.js +1 -1
  25. package/lib/ui/src/log.min.js +1 -1
  26. package/package.json +2 -2
  27. package/packages/table/module/custom/panel.ts +1 -2
  28. package/packages/table/module/filter/hook.ts +57 -2
  29. package/packages/table/module/filter/panel.ts +5 -23
  30. package/packages/table/render/index.ts +11 -4
  31. package/packages/table/src/table.ts +2 -1
  32. /package/es/{iconfont.1721123621784.ttf → iconfont.1721294431120.ttf} +0 -0
  33. /package/es/{iconfont.1721123621784.woff → iconfont.1721294431120.woff} +0 -0
  34. /package/es/{iconfont.1721123621784.woff2 → iconfont.1721294431120.woff2} +0 -0
  35. /package/lib/{iconfont.1721123621784.ttf → iconfont.1721294431120.ttf} +0 -0
  36. /package/lib/{iconfont.1721123621784.woff → iconfont.1721294431120.woff} +0 -0
  37. /package/lib/{iconfont.1721123621784.woff2 → iconfont.1721294431120.woff2} +0 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.7.53",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.7.55",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.7.53",
3
+ "version": "4.7.55",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
28
28
  "style": "lib/style.css",
29
29
  "typings": "types/index.d.ts",
30
30
  "dependencies": {
31
- "vxe-pc-ui": "^4.0.70"
31
+ "vxe-pc-ui": "^4.0.76"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.11",
@@ -580,10 +580,9 @@ export default defineComponent({
580
580
  VxeUIInputComponent
581
581
  ? h(VxeUIInputComponent, {
582
582
  type: 'integer',
583
- min: 40,
584
583
  modelValue: column.renderResizeWidth,
585
584
  'onUpdate:modelValue' (value: any) {
586
- column.renderResizeWidth = Math.max(40, Number(value))
585
+ column.renderResizeWidth = Math.max(0, Number(value))
587
586
  }
588
587
  })
589
588
  : createCommentVNode()
@@ -9,7 +9,7 @@ import type { TableFilterMethods, TableFilterPrivateMethods } from '../../../../
9
9
 
10
10
  const { renderer, hooks } = VxeUI
11
11
 
12
- const tableFilterMethodKeys: (keyof TableFilterMethods)[] = ['setFilter', 'clearFilter', 'getCheckedFilters']
12
+ const tableFilterMethodKeys: (keyof TableFilterMethods)[] = ['openFilter', 'setFilter', 'clearFilter', 'getCheckedFilters', 'updateFilterOptionStatus']
13
13
 
14
14
  hooks.add('tableFilterModule', {
15
15
  setupTable ($xeTable) {
@@ -17,6 +17,43 @@ hooks.add('tableFilterModule', {
17
17
  const { refTableHeader, refTableBody, refTableFilter } = $xeTable.getRefMaps()
18
18
  const { computeFilterOpts, computeMouseOpts } = $xeTable.getComputeMaps()
19
19
 
20
+ // 确认筛选
21
+ const confirmFilter = (evnt: Event) => {
22
+ const { filterStore } = reactData
23
+ filterStore.options.forEach((option: any) => {
24
+ option.checked = option._checked
25
+ })
26
+ $xeTable.confirmFilterEvent(evnt)
27
+ }
28
+
29
+ // (单选)筛选发生改变
30
+ const changeRadioOption = (evnt: Event, checked: boolean, item: any) => {
31
+ const { filterStore } = reactData
32
+ filterStore.options.forEach((option: any) => {
33
+ option._checked = false
34
+ })
35
+ item._checked = checked
36
+ $xeTable.checkFilterOptions()
37
+ confirmFilter(evnt)
38
+ }
39
+
40
+ // (多选)筛选发生改变
41
+ const changeMultipleOption = (evnt: Event, checked: boolean, item: any) => {
42
+ item._checked = checked
43
+ $xeTable.checkFilterOptions()
44
+ }
45
+
46
+ /**
47
+ * 重置筛选
48
+ * 当筛选面板中的重置按钮被按下时触发
49
+ * @param {Event} evnt 事件
50
+ */
51
+ const resetFilter = (evnt: Event) => {
52
+ const { filterStore } = reactData
53
+ $xeTable.handleClearFilter(filterStore.column)
54
+ $xeTable.confirmFilterEvent(evnt)
55
+ }
56
+
20
57
  const filterPrivateMethods: TableFilterPrivateMethods = {
21
58
  checkFilterOptions () {
22
59
  const { filterStore } = reactData
@@ -187,7 +224,20 @@ hooks.add('tableFilterModule', {
187
224
  // 存在滚动行为未结束情况
188
225
  setTimeout(() => $xeTable.recalculate(), 50)
189
226
  })
190
- }
227
+ },
228
+ handleFilterChangeRadioOption: changeRadioOption,
229
+ handleFilterChangeMultipleOption: changeMultipleOption,
230
+ // 筛选发生改变
231
+ handleFilterChangeOption (evnt: Event, checked: boolean, item: any) {
232
+ const { filterStore } = reactData
233
+ if (filterStore.multiple) {
234
+ changeMultipleOption(evnt, checked, item)
235
+ } else {
236
+ changeRadioOption(evnt, checked, item)
237
+ }
238
+ },
239
+ handleFilterConfirmFilter: confirmFilter,
240
+ handleFilterResetFilter: resetFilter
191
241
  }
192
242
 
193
243
  const filterMethods: TableFilterMethods = {
@@ -277,6 +327,11 @@ hooks.add('tableFilterModule', {
277
327
  }
278
328
  })
279
329
  return filterList
330
+ },
331
+ updateFilterOptionStatus (item: any, checked: boolean) {
332
+ item._checked = checked
333
+ item.checked = checked
334
+ return nextTick()
280
335
  }
281
336
  }
282
337
 
@@ -39,22 +39,12 @@ export default defineComponent({
39
39
  *************************/
40
40
  // 确认筛选
41
41
  const confirmFilter = (evnt: Event) => {
42
- const { filterStore } = props
43
- filterStore.options.forEach((option: any) => {
44
- option.checked = option._checked
45
- })
46
- $xeTable.confirmFilterEvent(evnt)
42
+ $xeTable.handleFilterConfirmFilter(evnt)
47
43
  }
48
44
 
49
45
  // (单选)筛选发生改变
50
46
  const changeRadioOption = (evnt: Event, checked: boolean, item: any) => {
51
- const { filterStore } = props
52
- filterStore.options.forEach((option: any) => {
53
- option._checked = false
54
- })
55
- item._checked = checked
56
- $xeTable.checkFilterOptions()
57
- confirmFilter(evnt)
47
+ $xeTable.handleFilterChangeRadioOption(evnt, checked, item)
58
48
  }
59
49
 
60
50
  /**
@@ -63,25 +53,17 @@ export default defineComponent({
63
53
  * @param {Event} evnt 事件
64
54
  */
65
55
  const resetFilter = (evnt: Event) => {
66
- const { filterStore } = props
67
- $xeTable.handleClearFilter(filterStore.column)
68
- $xeTable.confirmFilterEvent(evnt)
56
+ $xeTable.handleFilterResetFilter(evnt)
69
57
  }
70
58
 
71
59
  // (多选)筛选发生改变
72
60
  const changeMultipleOption = (evnt: Event, checked: boolean, item: any) => {
73
- item._checked = checked
74
- $xeTable.checkFilterOptions()
61
+ $xeTable.handleFilterChangeMultipleOption(evnt, checked, item)
75
62
  }
76
63
 
77
64
  // 筛选发生改变
78
65
  const changeOption = (evnt: Event, checked: boolean, item: any) => {
79
- const { filterStore } = props
80
- if (filterStore.multiple) {
81
- changeMultipleOption(evnt, checked, item)
82
- } else {
83
- changeRadioOption(evnt, checked, item)
84
- }
66
+ $xeTable.handleFilterChangeOption(evnt, checked, item)
85
67
  }
86
68
 
87
69
  const changeAllOption = (evnt: Event, checked: boolean) => {
@@ -441,6 +441,13 @@ function handleFilterMethod ({ option, row, column }: any) {
441
441
  return cellValue == data
442
442
  }
443
443
 
444
+ function handleInputFilterMethod ({ option, row, column }: any) {
445
+ const { data } = option
446
+ const cellValue = XEUtils.get(row, column.property)
447
+ /* eslint-disable eqeqeq */
448
+ return XEUtils.toValueString(cellValue).indexOf(data) > -1
449
+ }
450
+
444
451
  function nativeSelectEditRender (renderOpts: any, params: any) {
445
452
  return [
446
453
  h('select', {
@@ -561,7 +568,7 @@ renderer.mixin({
561
568
  renderEdit: nativeEditRender,
562
569
  renderDefault: nativeEditRender,
563
570
  renderFilter: nativeFilterRender,
564
- defaultFilterMethod: handleFilterMethod
571
+ defaultFilterMethod: handleInputFilterMethod
565
572
  },
566
573
  textarea: {
567
574
  autofocus: 'textarea',
@@ -614,7 +621,7 @@ renderer.mixin({
614
621
  },
615
622
  renderDefault: defaultEditRender,
616
623
  renderFilter: defaultFilterRender,
617
- defaultFilterMethod: handleFilterMethod
624
+ defaultFilterMethod: handleInputFilterMethod
618
625
  },
619
626
  VxeNumberInput: {
620
627
  autofocus: '.vxe-number-input--inner',
@@ -635,7 +642,7 @@ renderer.mixin({
635
642
  },
636
643
  renderDefault: defaultEditRender,
637
644
  renderFilter: defaultFilterRender,
638
- defaultFilterMethod: handleFilterMethod
645
+ defaultFilterMethod: handleInputFilterMethod
639
646
  },
640
647
  VxeDatePicker: {
641
648
  autofocus: '.vxe-date-picker--inner',
@@ -750,7 +757,7 @@ renderer.mixin({
750
757
  },
751
758
  renderDefault: oldEditRender,
752
759
  renderFilter: oldFilterRender,
753
- defaultFilterMethod: handleFilterMethod
760
+ defaultFilterMethod: handleInputFilterMethod
754
761
  },
755
762
  $textarea: {
756
763
  autofocus: '.vxe-textarea--inner'
@@ -3432,7 +3432,8 @@ export default defineComponent({
3432
3432
  const bodyWidth = bodyElem ? bodyElem.clientWidth - 1 : 0
3433
3433
  rdWidth = Math.floor(colWidth * bodyWidth)
3434
3434
  }
3435
- column.renderWidth = rdWidth
3435
+ column.resizeWidth = rdWidth
3436
+ return tableMethods.refreshColumn()
3436
3437
  }
3437
3438
  return nextTick()
3438
3439
  },