vxe-pc-ui 4.11.43 → 4.11.45

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 (70) hide show
  1. package/es/button/src/button.js +18 -6
  2. package/es/date-picker/src/date-picker.js +17 -5
  3. package/es/date-range-picker/src/date-range-picker.js +17 -5
  4. package/es/icon/style.css +1 -1
  5. package/es/icon-picker/src/icon-picker.js +36 -74
  6. package/es/pulldown/src/pulldown.js +26 -6
  7. package/es/select/src/select.js +55 -16
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/table-select/src/table-select.js +17 -7
  11. package/es/tree-select/src/tree-select.js +21 -7
  12. package/es/ui/index.js +1 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/lib/button/src/button.js +18 -9
  15. package/lib/button/src/button.min.js +1 -1
  16. package/lib/date-picker/src/date-picker.js +19 -7
  17. package/lib/date-picker/src/date-picker.min.js +1 -1
  18. package/lib/date-range-picker/src/date-range-picker.js +19 -7
  19. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  20. package/lib/icon/style/style.css +1 -1
  21. package/lib/icon/style/style.min.css +1 -1
  22. package/lib/icon-picker/src/icon-picker.js +39 -80
  23. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  24. package/lib/index.umd.js +220 -157
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/pulldown/src/pulldown.js +26 -9
  27. package/lib/pulldown/src/pulldown.min.js +1 -1
  28. package/lib/select/src/select.js +57 -21
  29. package/lib/select/src/select.min.js +1 -1
  30. package/lib/style.css +1 -1
  31. package/lib/style.min.css +1 -1
  32. package/lib/table-select/src/table-select.js +18 -12
  33. package/lib/table-select/src/table-select.min.js +1 -1
  34. package/lib/tree-select/src/tree-select.js +22 -10
  35. package/lib/tree-select/src/tree-select.min.js +1 -1
  36. package/lib/ui/index.js +1 -1
  37. package/lib/ui/index.min.js +1 -1
  38. package/lib/ui/src/log.js +1 -1
  39. package/lib/ui/src/log.min.js +1 -1
  40. package/package.json +1 -1
  41. package/packages/button/src/button.ts +19 -6
  42. package/packages/date-picker/src/date-picker.ts +18 -5
  43. package/packages/date-range-picker/src/date-range-picker.ts +18 -5
  44. package/packages/icon-picker/src/icon-picker.ts +37 -71
  45. package/packages/pulldown/src/pulldown.ts +27 -6
  46. package/packages/select/src/select.ts +54 -16
  47. package/packages/table-select/src/table-select.ts +17 -7
  48. package/packages/tree-select/src/tree-select.ts +21 -7
  49. package/types/components/button.d.ts +18 -0
  50. package/types/components/date-picker.d.ts +8 -0
  51. package/types/components/date-range-picker.d.ts +8 -0
  52. package/types/components/icon-picker.d.ts +24 -0
  53. package/types/components/pulldown.d.ts +28 -0
  54. package/types/components/select.d.ts +70 -0
  55. package/types/components/table-select.d.ts +16 -1
  56. package/types/components/table.d.ts +2 -2
  57. package/types/components/tree-select.d.ts +20 -2
  58. package/types/components/upload.d.ts +1 -1
  59. /package/es/icon/{iconfont.1768192734102.ttf → iconfont.1768381374840.ttf} +0 -0
  60. /package/es/icon/{iconfont.1768192734102.woff → iconfont.1768381374840.woff} +0 -0
  61. /package/es/icon/{iconfont.1768192734102.woff2 → iconfont.1768381374840.woff2} +0 -0
  62. /package/es/{iconfont.1768192734102.ttf → iconfont.1768381374840.ttf} +0 -0
  63. /package/es/{iconfont.1768192734102.woff → iconfont.1768381374840.woff} +0 -0
  64. /package/es/{iconfont.1768192734102.woff2 → iconfont.1768381374840.woff2} +0 -0
  65. /package/lib/icon/style/{iconfont.1768192734102.ttf → iconfont.1768381374840.ttf} +0 -0
  66. /package/lib/icon/style/{iconfont.1768192734102.woff → iconfont.1768381374840.woff} +0 -0
  67. /package/lib/icon/style/{iconfont.1768192734102.woff2 → iconfont.1768381374840.woff2} +0 -0
  68. /package/lib/{iconfont.1768192734102.ttf → iconfont.1768381374840.ttf} +0 -0
  69. /package/lib/{iconfont.1768192734102.woff → iconfont.1768381374840.woff} +0 -0
  70. /package/lib/{iconfont.1768192734102.woff2 → iconfont.1768381374840.woff2} +0 -0
@@ -14,6 +14,10 @@ export default defineVxeComponent({
14
14
  type: String,
15
15
  default: getConfig().pulldown.trigger
16
16
  },
17
+ /**
18
+ * 已废弃,请使用 popupConfig.zIndex
19
+ * @deprecated
20
+ */
17
21
  zIndex: Number,
18
22
  size: {
19
23
  type: String,
@@ -24,8 +28,13 @@ export default defineVxeComponent({
24
28
  type: [String, Function],
25
29
  default: getConfig().pulldown.className
26
30
  },
31
+ /**
32
+ * 已废弃,请使用 popupConfig.className
33
+ * @deprecated
34
+ */
27
35
  popupClassName: [String, Function],
28
36
  showPopupShadow: Boolean,
37
+ popupConfig: Object,
29
38
  destroyOnClose: {
30
39
  type: Boolean,
31
40
  default: getConfig().pulldown.destroyOnClose
@@ -68,6 +77,10 @@ export default defineVxeComponent({
68
77
  const refPulldownPanel = ref();
69
78
  const computeBtnTransfer = computed(() => {
70
79
  const { transfer } = props;
80
+ const popupOpts = computePopupOpts.value;
81
+ if (XEUtils.isBoolean(popupOpts.transfer)) {
82
+ return popupOpts.transfer;
83
+ }
71
84
  if (transfer === null) {
72
85
  const globalTransfer = getConfig().pulldown.transfer;
73
86
  if (XEUtils.isBoolean(globalTransfer)) {
@@ -79,6 +92,9 @@ export default defineVxeComponent({
79
92
  }
80
93
  return transfer;
81
94
  });
95
+ const computePopupOpts = computed(() => {
96
+ return Object.assign({}, getConfig().pulldown.popupConfig, props.popupConfig);
97
+ });
82
98
  const refMaps = {
83
99
  refElem
84
100
  };
@@ -92,9 +108,10 @@ export default defineVxeComponent({
92
108
  };
93
109
  let pulldownMethods = {};
94
110
  const updateZindex = () => {
95
- const { zIndex } = props;
96
- if (zIndex) {
97
- reactData.panelIndex = zIndex;
111
+ const popupOpts = computePopupOpts.value;
112
+ const customZIndex = popupOpts.zIndex || props.zIndex;
113
+ if (customZIndex) {
114
+ reactData.panelIndex = XEUtils.toNumber(customZIndex);
98
115
  }
99
116
  else if (reactData.panelIndex < getLastZIndex()) {
100
117
  reactData.panelIndex = nextZIndex();
@@ -112,9 +129,10 @@ export default defineVxeComponent({
112
129
  const targetElem = refPulldownContent.value;
113
130
  const panelElem = refPulldownPanel.value;
114
131
  const btnTransfer = computeBtnTransfer.value;
132
+ const popupOpts = computePopupOpts.value;
115
133
  const handleStyle = () => {
116
134
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
117
- placement,
135
+ placement: popupOpts.placement || placement,
118
136
  teleportTo: btnTransfer
119
137
  });
120
138
  const panelStyle = Object.assign(ppObj.style, {
@@ -309,14 +327,16 @@ export default defineVxeComponent({
309
327
  : []);
310
328
  };
311
329
  const renderVN = () => {
312
- const { className, options, popupClassName, showPopupShadow, destroyOnClose, disabled } = props;
330
+ const { className, options, showPopupShadow, destroyOnClose, disabled } = props;
313
331
  const { initialized, isActivated, isAniVisible, visiblePanel, panelStyle, panelPlacement } = reactData;
314
332
  const btnTransfer = computeBtnTransfer.value;
315
333
  const vSize = computeSize.value;
334
+ const popupOpts = computePopupOpts.value;
316
335
  const defaultSlot = slots.default;
317
336
  const headerSlot = slots.header;
318
337
  const footerSlot = slots.footer;
319
338
  const dropdownSlot = slots.dropdown;
339
+ const ppClassName = popupOpts.className || props.popupClassName;
320
340
  return h('div', {
321
341
  ref: refElem,
322
342
  class: ['vxe-pulldown', className ? (XEUtils.isFunction(className) ? className({ $pulldown: $xePulldown }) : className) : '', {
@@ -337,7 +357,7 @@ export default defineVxeComponent({
337
357
  }, [
338
358
  h('div', {
339
359
  ref: refPulldownPanel,
340
- class: ['vxe-table--ignore-clear vxe-pulldown--panel', popupClassName ? (XEUtils.isFunction(popupClassName) ? popupClassName({ $pulldown: $xePulldown }) : popupClassName) : '', {
360
+ class: ['vxe-table--ignore-clear vxe-pulldown--panel', ppClassName ? (XEUtils.isFunction(ppClassName) ? ppClassName({ $pulldown: $xePulldown }) : ppClassName) : '', {
341
361
  [`size--${vSize}`]: vSize,
342
362
  'is--transfer': btnTransfer,
343
363
  'ani--leave': isAniVisible,
@@ -71,18 +71,31 @@ export default defineVxeComponent({
71
71
  optionGroupProps: Object,
72
72
  optionConfig: Object,
73
73
  className: [String, Function],
74
+ /**
75
+ * 已废弃,请使用 popupConfig.className
76
+ * @deprecated
77
+ */
74
78
  popupClassName: [String, Function],
75
79
  max: {
76
80
  type: [String, Number],
77
81
  default: null
78
82
  },
83
+ /**
84
+ * 已废弃,请使用 popupConfig.zIndex
85
+ * @deprecated
86
+ */
79
87
  zIndex: Number,
80
88
  size: {
81
89
  type: String,
82
90
  default: () => getConfig().select.size || getConfig().size
83
91
  },
84
92
  filterable: Boolean,
93
+ /**
94
+ * 已废弃,被 filter-config.filterMethod 替换
95
+ * @deprecated
96
+ */
85
97
  filterMethod: Function,
98
+ filterConfig: Object,
86
99
  remote: Boolean,
87
100
  remoteConfig: Object,
88
101
  emptyText: String,
@@ -204,6 +217,10 @@ export default defineVxeComponent({
204
217
  });
205
218
  const computeBtnTransfer = computed(() => {
206
219
  const { transfer } = props;
220
+ const popupOpts = computePopupOpts.value;
221
+ if (XEUtils.isBoolean(popupOpts.transfer)) {
222
+ return popupOpts.transfer;
223
+ }
207
224
  if (transfer === null) {
208
225
  const globalTransfer = getConfig().select.transfer;
209
226
  if (XEUtils.isBoolean(globalTransfer)) {
@@ -256,7 +273,7 @@ export default defineVxeComponent({
256
273
  return checkMaxLimit(selectVals);
257
274
  });
258
275
  const computePopupOpts = computed(() => {
259
- return Object.assign({}, getConfig().treeSelect.popupConfig, props.popupConfig);
276
+ return Object.assign({}, getConfig().select.popupConfig, props.popupConfig);
260
277
  });
261
278
  const computeVirtualYOpts = computed(() => {
262
279
  return Object.assign({}, getConfig().select.virtualYConfig || getConfig().select.scrollY, props.virtualYConfig || props.scrollY);
@@ -264,6 +281,9 @@ export default defineVxeComponent({
264
281
  const computeRemoteOpts = computed(() => {
265
282
  return Object.assign({}, getConfig().select.remoteConfig, props.remoteConfig);
266
283
  });
284
+ const computeFilterOpts = computed(() => {
285
+ return Object.assign({}, getConfig().select.filterConfig, props.filterConfig);
286
+ });
267
287
  const computeOptionOpts = computed(() => {
268
288
  return Object.assign({}, getConfig().select.optionConfig, props.optionConfig);
269
289
  });
@@ -432,19 +452,21 @@ export default defineVxeComponent({
432
452
  * 处理选项,当选项被动态显示/隐藏时可能会用到
433
453
  */
434
454
  const handleOption = () => {
435
- const { remote, modelValue, filterable, filterMethod } = props;
455
+ const { remote, modelValue, filterable } = props;
436
456
  const { searchValue } = reactData;
437
457
  const { fullData, optFullValMaps } = internalData;
438
458
  const labelField = computeLabelField.value;
439
459
  const valueField = computeValueField.value;
460
+ const filterOpts = computeFilterOpts.value;
461
+ const frMethod = filterOpts.filterMethod || props.filterMethod;
440
462
  const searchStr = `${searchValue || ''}`.toLowerCase();
441
463
  let avList = [];
442
464
  if (remote) {
443
465
  avList = fullData.filter(isOptionVisible);
444
466
  }
445
467
  else {
446
- if (filterable && filterMethod) {
447
- avList = fullData.filter(option => isOptionVisible(option) && filterMethod({ $select: $xeSelect, group: null, option, searchValue, value: modelValue }));
468
+ if (filterable && frMethod) {
469
+ avList = fullData.filter(option => isOptionVisible(option) && frMethod({ $select: $xeSelect, group: null, option, searchValue, value: modelValue }));
448
470
  }
449
471
  else if (filterable) {
450
472
  avList = fullData.filter(option => isOptionVisible(option) && (!searchStr || `${option[labelField] || option[valueField]}`.toLowerCase().indexOf(searchStr) > -1));
@@ -468,9 +490,10 @@ export default defineVxeComponent({
468
490
  }
469
491
  };
470
492
  const updateZIndex = () => {
471
- const { zIndex } = props;
472
- if (zIndex) {
473
- reactData.panelIndex = zIndex;
493
+ const popupOpts = computePopupOpts.value;
494
+ const customZIndex = popupOpts.zIndex || props.zIndex;
495
+ if (customZIndex) {
496
+ reactData.panelIndex = XEUtils.toNumber(customZIndex);
474
497
  }
475
498
  else if (reactData.panelIndex < getLastZIndex()) {
476
499
  reactData.panelIndex = nextZIndex();
@@ -482,9 +505,10 @@ export default defineVxeComponent({
482
505
  const targetElem = refElem.value;
483
506
  const panelElem = refOptionPanel.value;
484
507
  const btnTransfer = computeBtnTransfer.value;
508
+ const popupOpts = computePopupOpts.value;
485
509
  const handleStyle = () => {
486
510
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
487
- placement,
511
+ placement: popupOpts.placement || placement,
488
512
  teleportTo: btnTransfer
489
513
  });
490
514
  const panelStyle = Object.assign(ppObj.style, {
@@ -525,7 +549,7 @@ export default defineVxeComponent({
525
549
  reactData.isActivated = true;
526
550
  reactData.isAniVisible = true;
527
551
  if (filterable) {
528
- if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !fullData.length) {
552
+ if (remote && remoteOpts.enabled && ((remoteOpts.autoLoad && !fullData.length) || (fullData.length && remoteOpts.clearOnClose))) {
529
553
  handleSearchEvent();
530
554
  }
531
555
  else {
@@ -550,7 +574,22 @@ export default defineVxeComponent({
550
574
  }
551
575
  };
552
576
  const hideOptionPanel = () => {
553
- reactData.searchValue = '';
577
+ const { filterable, remote } = props;
578
+ const filterOpts = computeFilterOpts.value;
579
+ const remoteOpts = computeRemoteOpts.value;
580
+ if (remote) {
581
+ if (remoteOpts.clearOnClose) {
582
+ reactData.searchValue = '';
583
+ }
584
+ }
585
+ else if (filterable) {
586
+ if (filterOpts.clearOnClose) {
587
+ reactData.searchValue = '';
588
+ }
589
+ }
590
+ else {
591
+ reactData.searchValue = '';
592
+ }
554
593
  reactData.searchLoading = false;
555
594
  reactData.visiblePanel = false;
556
595
  internalData.hpTimeout = setTimeout(() => {
@@ -856,13 +895,13 @@ export default defineVxeComponent({
856
895
  reactData.isActivated = true;
857
896
  };
858
897
  const handleSearchEvent = () => {
859
- const { modelValue, remote, remoteMethod } = props;
898
+ const { modelValue, remote } = props;
860
899
  const { searchValue } = reactData;
861
900
  const remoteOpts = computeRemoteOpts.value;
862
- const queryMethod = remoteOpts.queryMethod || remoteMethod;
863
- if (remote && queryMethod && remoteOpts.enabled) {
901
+ const qyMethod = remoteOpts.queryMethod || props.remoteMethod;
902
+ if (remote && qyMethod && remoteOpts.enabled) {
864
903
  reactData.searchLoading = true;
865
- Promise.resolve(queryMethod({ $select: $xeSelect, searchValue, value: modelValue })).then(() => nextTick())
904
+ Promise.resolve(qyMethod({ $select: $xeSelect, searchValue, value: modelValue })).then(() => nextTick())
866
905
  .catch(() => nextTick())
867
906
  .finally(() => {
868
907
  reactData.searchLoading = false;
@@ -1344,11 +1383,11 @@ export default defineVxeComponent({
1344
1383
  const inpPlaceholder = computeInpPlaceholder.value;
1345
1384
  const popupWrapperStyle = computePopupWrapperStyle.value;
1346
1385
  const popupOpts = computePopupOpts.value;
1347
- const popupClassName = popupOpts.className || props.popupClassName;
1348
1386
  const defaultSlot = slots.default;
1349
1387
  const headerSlot = slots.header;
1350
1388
  const footerSlot = slots.footer;
1351
1389
  const prefixSlot = slots.prefix;
1390
+ const ppClassName = popupOpts.className || props.popupClassName;
1352
1391
  if (formReadonly) {
1353
1392
  return h('div', {
1354
1393
  ref: refElem,
@@ -1408,7 +1447,7 @@ export default defineVxeComponent({
1408
1447
  }, [
1409
1448
  h('div', {
1410
1449
  ref: refOptionPanel,
1411
- class: ['vxe-table--ignore-clear vxe-select--panel', popupClassName ? (XEUtils.isFunction(popupClassName) ? popupClassName({ $select: $xeSelect }) : popupClassName) : '', {
1450
+ class: ['vxe-table--ignore-clear vxe-select--panel', ppClassName ? (XEUtils.isFunction(ppClassName) ? ppClassName({ $select: $xeSelect }) : ppClassName) : '', {
1412
1451
  [`size--${vSize}`]: vSize,
1413
1452
  'is--transfer': btnTransfer,
1414
1453
  'ani--leave': !loading && isAniVisible,