vxe-pc-ui 4.14.27 → 4.14.29

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 (65) hide show
  1. package/dist/all.esm.js +177 -26
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/date-panel/src/date-panel.js +15 -13
  5. package/es/date-panel/style.css +4 -0
  6. package/es/date-panel/style.min.css +1 -1
  7. package/es/date-range-picker/src/date-range-picker.js +92 -2
  8. package/es/select/src/select.js +4 -1
  9. package/es/style.css +1 -1
  10. package/es/style.min.css +1 -1
  11. package/es/table-select/src/table-select.js +4 -1
  12. package/es/tree-select/src/tree-select.js +4 -1
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/es/upload/src/upload.js +56 -6
  16. package/es/vxe-date-panel/style.css +4 -0
  17. package/es/vxe-date-panel/style.min.css +1 -1
  18. package/lib/date-panel/src/date-panel.js +55 -13
  19. package/lib/date-panel/src/date-panel.min.js +1 -1
  20. package/lib/date-panel/style/style.css +4 -0
  21. package/lib/date-panel/style/style.min.css +1 -1
  22. package/lib/date-range-picker/src/date-range-picker.js +102 -2
  23. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  24. package/lib/index.umd.js +243 -30
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/select/src/select.js +4 -1
  27. package/lib/select/src/select.min.js +1 -1
  28. package/lib/style.css +1 -1
  29. package/lib/style.min.css +1 -1
  30. package/lib/table-select/src/table-select.js +4 -1
  31. package/lib/table-select/src/table-select.min.js +1 -1
  32. package/lib/tree-select/src/tree-select.js +4 -1
  33. package/lib/tree-select/src/tree-select.min.js +1 -1
  34. package/lib/ui/index.js +1 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/upload/src/upload.js +72 -10
  39. package/lib/upload/src/upload.min.js +1 -1
  40. package/lib/vxe-date-panel/style/style.css +4 -0
  41. package/lib/vxe-date-panel/style/style.min.css +1 -1
  42. package/package.json +1 -1
  43. package/packages/date-panel/src/date-panel.ts +30 -28
  44. package/packages/date-range-picker/src/date-range-picker.ts +94 -3
  45. package/packages/select/src/select.ts +4 -1
  46. package/packages/table-select/src/table-select.ts +4 -1
  47. package/packages/tree-select/src/tree-select.ts +4 -1
  48. package/packages/upload/src/upload.ts +66 -6
  49. package/styles/components/date-panel.scss +4 -0
  50. package/types/components/date-panel.d.ts +26 -2
  51. package/types/components/date-range-picker.d.ts +2 -0
  52. package/types/components/gantt.d.ts +4 -0
  53. package/types/components/upload.d.ts +37 -2
  54. /package/es/icon/{iconfont.1780477619002.ttf → iconfont.1780632924397.ttf} +0 -0
  55. /package/es/icon/{iconfont.1780477619002.woff → iconfont.1780632924397.woff} +0 -0
  56. /package/es/icon/{iconfont.1780477619002.woff2 → iconfont.1780632924397.woff2} +0 -0
  57. /package/es/{iconfont.1780477619002.ttf → iconfont.1780632924397.ttf} +0 -0
  58. /package/es/{iconfont.1780477619002.woff → iconfont.1780632924397.woff} +0 -0
  59. /package/es/{iconfont.1780477619002.woff2 → iconfont.1780632924397.woff2} +0 -0
  60. /package/lib/icon/style/{iconfont.1780477619002.ttf → iconfont.1780632924397.ttf} +0 -0
  61. /package/lib/icon/style/{iconfont.1780477619002.woff → iconfont.1780632924397.woff} +0 -0
  62. /package/lib/icon/style/{iconfont.1780477619002.woff2 → iconfont.1780632924397.woff2} +0 -0
  63. /package/lib/{iconfont.1780477619002.ttf → iconfont.1780632924397.ttf} +0 -0
  64. /package/lib/{iconfont.1780477619002.woff → iconfont.1780632924397.woff} +0 -0
  65. /package/lib/{iconfont.1780477619002.woff2 → iconfont.1780632924397.woff2} +0 -0
package/dist/all.esm.js CHANGED
@@ -80,11 +80,11 @@ function checkDynamic() {
80
80
  }
81
81
  }
82
82
 
83
- const version$1 = `ui v${"4.14.27"}`;
83
+ const version$1 = `ui v${"4.14.30"}`;
84
84
  const warnLog = log.create('warn', version$1);
85
85
  const errLog = log.create('error', version$1);
86
86
 
87
- const version = "4.14.27";
87
+ const version = "4.14.30";
88
88
  VxeUI.uiVersion = version;
89
89
  VxeUI.dynamicApp = dynamicApp;
90
90
  function config(options) {
@@ -14423,6 +14423,7 @@ var VxeDatePanelComponent = defineVxeComponent({
14423
14423
  default: 'date'
14424
14424
  },
14425
14425
  className: String,
14426
+ cellClassName: [String, Function],
14426
14427
  size: {
14427
14428
  type: String,
14428
14429
  default: () => getConfig$3().datePanel.size || getConfig$3().size
@@ -15267,7 +15268,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15267
15268
  if (!props.multiple) {
15268
15269
  hidePanel();
15269
15270
  }
15270
- dispatchEvent('date-today', { type: props.type }, evnt);
15271
+ dispatchEvent('date-today', { viewType: reactData.datePanelType, type: props.type, viewDate: reactData.selectMonth }, evnt);
15271
15272
  };
15272
15273
  const dateNextEvent = (evnt) => {
15273
15274
  const { type } = props;
@@ -15300,7 +15301,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15300
15301
  }
15301
15302
  }
15302
15303
  reactData.selectMonth = viewDate;
15303
- dispatchEvent('date-next', { viewType: datePanelType, value, type }, evnt);
15304
+ dispatchEvent('date-next', { viewType: datePanelType, value, type, viewDate }, evnt);
15304
15305
  }
15305
15306
  };
15306
15307
  const isRangeDisabled = (item) => {
@@ -15584,7 +15585,8 @@ var VxeDatePanelComponent = defineVxeComponent({
15584
15585
  }
15585
15586
  },
15586
15587
  getPanelDate() {
15587
- return reactData.selectMonth;
15588
+ const { selectMonth } = reactData;
15589
+ return selectMonth ? new Date(selectMonth.getTime()) : new Date();
15588
15590
  },
15589
15591
  checkValue(value) {
15590
15592
  afterCheckValue(value);
@@ -15638,7 +15640,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15638
15640
  return labelVNs;
15639
15641
  };
15640
15642
  const renderDateDayTable = () => {
15641
- const { multiple } = props;
15643
+ const { type, multiple, cellClassName } = props;
15642
15644
  const { datePanelType, datePanelValue } = reactData;
15643
15645
  const dateValue = computeDateValue.value;
15644
15646
  const dateHeaders = computeDateHeaders.value;
@@ -15683,7 +15685,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15683
15685
  }, rows.map((item) => {
15684
15686
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15685
15687
  return h('div', {
15686
- class: ['vxe-date-panel--view-item', {
15688
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15687
15689
  'is--prev': item.isPrev,
15688
15690
  'is--current': item.isCurrent,
15689
15691
  'is--now': item.isNow,
@@ -15711,7 +15713,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15711
15713
  ];
15712
15714
  };
15713
15715
  const renderDateWeekTable = () => {
15714
- const { multiple } = props;
15716
+ const { type, multiple, cellClassName } = props;
15715
15717
  const { datePanelType, datePanelValue } = reactData;
15716
15718
  const dateValue = computeDateValue.value;
15717
15719
  const weekHeaders = computeWeekHeaders.value;
@@ -15758,7 +15760,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15758
15760
  }
15759
15761
  }, rows.map((item, rIndex) => {
15760
15762
  return h('div', {
15761
- class: ['vxe-date-panel--view-item', {
15763
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15762
15764
  'is--prev': item.isPrev,
15763
15765
  'is--current': item.isCurrent,
15764
15766
  'is--now': rIndex ? item.isNow : isNowWeek,
@@ -15786,7 +15788,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15786
15788
  ];
15787
15789
  };
15788
15790
  const renderDateMonthTable = () => {
15789
- const { multiple } = props;
15791
+ const { type, multiple, cellClassName } = props;
15790
15792
  const { datePanelType, datePanelValue } = reactData;
15791
15793
  const dateValue = computeDateValue.value;
15792
15794
  const monthDatas = computeMonthDatas.value;
@@ -15808,7 +15810,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15808
15810
  }, rows.map((item) => {
15809
15811
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15810
15812
  return h('div', {
15811
- class: ['vxe-date-panel--view-item', {
15813
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15812
15814
  'is--prev': item.isPrev,
15813
15815
  'is--current': item.isCurrent,
15814
15816
  'is--now': item.isNow,
@@ -15836,7 +15838,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15836
15838
  ];
15837
15839
  };
15838
15840
  const renderDateQuarterTable = () => {
15839
- const { multiple } = props;
15841
+ const { type, multiple, cellClassName } = props;
15840
15842
  const { datePanelType, datePanelValue } = reactData;
15841
15843
  const dateValue = computeDateValue.value;
15842
15844
  const quarterDatas = computeQuarterDatas.value;
@@ -15858,7 +15860,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15858
15860
  }, rows.map((item) => {
15859
15861
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15860
15862
  return h('div', {
15861
- class: ['vxe-date-panel--view-item', {
15863
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15862
15864
  'is--prev': item.isPrev,
15863
15865
  'is--current': item.isCurrent,
15864
15866
  'is--now': item.isNow,
@@ -15886,7 +15888,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15886
15888
  ];
15887
15889
  };
15888
15890
  const renderDateYearTable = () => {
15889
- const { multiple } = props;
15891
+ const { type, multiple, cellClassName } = props;
15890
15892
  const { datePanelType, datePanelValue } = reactData;
15891
15893
  const dateValue = computeDateValue.value;
15892
15894
  const yearDatas = computeYearDatas.value;
@@ -15908,7 +15910,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15908
15910
  }, rows.map((item) => {
15909
15911
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15910
15912
  return h('div', {
15911
- class: ['vxe-date-panel--view-item', {
15913
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15912
15914
  'is--prev': item.isPrev,
15913
15915
  'is--current': item.isCurrent,
15914
15916
  'is--now': item.isNow,
@@ -17185,6 +17187,10 @@ var VxeDateRangePickerComponent = defineVxeComponent({
17185
17187
  type: Boolean,
17186
17188
  default: () => getConfig$3().dateRangePicker.clearable
17187
17189
  },
17190
+ linkedPanels: {
17191
+ type: Boolean,
17192
+ default: () => getConfig$3().dateRangePicker.linkedPanels
17193
+ },
17188
17194
  readonly: {
17189
17195
  type: Boolean,
17190
17196
  default: null
@@ -17652,6 +17658,19 @@ var VxeDateRangePickerComponent = defineVxeComponent({
17652
17658
  }
17653
17659
  }
17654
17660
  };
17661
+ const panelCellClassName = ({ date }) => {
17662
+ const startValue = reactData.startValue;
17663
+ const endValue = reactData.endValue;
17664
+ if (startValue && endValue) {
17665
+ const currTime = date.getTime();
17666
+ const startTime = XEUtils.toStringDate(startValue).getTime();
17667
+ const endTime = XEUtils.toStringDate(endValue).getTime();
17668
+ if (currTime >= startTime && currTime <= endTime) {
17669
+ return 'is--range-selected';
17670
+ }
17671
+ }
17672
+ return '';
17673
+ };
17655
17674
  const handleSelectClose = () => {
17656
17675
  const { autoClose } = props;
17657
17676
  const { startValue, endValue } = reactData;
@@ -17687,6 +17706,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
17687
17706
  }
17688
17707
  if (!reactData.visiblePanel) {
17689
17708
  reactData.isActivated = false;
17709
+ checkValue();
17690
17710
  }
17691
17711
  dispatchEvent('blur', { value, startValue, endValue }, evnt);
17692
17712
  // 自动更新校验状态
@@ -17758,6 +17778,70 @@ var VxeDateRangePickerComponent = defineVxeComponent({
17758
17778
  }
17759
17779
  });
17760
17780
  };
17781
+ const startPanelDateBtnChangeEvent = (params) => {
17782
+ const { linkedPanels } = props;
17783
+ if (linkedPanels) {
17784
+ const { viewType } = params;
17785
+ const $startDatePanel = refStartDatePanel.value;
17786
+ const $endDatePanel = refEndDatePanel.value;
17787
+ if (!$startDatePanel || !$endDatePanel) {
17788
+ return;
17789
+ }
17790
+ const startPanelDate = $startDatePanel.getPanelDate();
17791
+ if (!startPanelDate) {
17792
+ return;
17793
+ }
17794
+ const endYear = startPanelDate.getFullYear();
17795
+ const endMonth = startPanelDate.getMonth();
17796
+ switch (viewType) {
17797
+ case 'day':
17798
+ case 'date':
17799
+ case 'week': {
17800
+ if (endMonth < 11) {
17801
+ startPanelDate.setMonth(endMonth + 1);
17802
+ }
17803
+ else {
17804
+ startPanelDate.setFullYear(endYear + 1);
17805
+ startPanelDate.setMonth(0);
17806
+ }
17807
+ $endDatePanel.setPanelDate(startPanelDate);
17808
+ break;
17809
+ }
17810
+ }
17811
+ }
17812
+ };
17813
+ const endPanelDateBtnChangeEvent = (params) => {
17814
+ const { linkedPanels } = props;
17815
+ if (linkedPanels) {
17816
+ const { viewType } = params;
17817
+ const $startDatePanel = refStartDatePanel.value;
17818
+ const $endDatePanel = refEndDatePanel.value;
17819
+ if (!$startDatePanel || !$endDatePanel) {
17820
+ return;
17821
+ }
17822
+ const endPanelDate = $endDatePanel.getPanelDate();
17823
+ if (!endPanelDate) {
17824
+ return;
17825
+ }
17826
+ const endYear = endPanelDate.getFullYear();
17827
+ const endMonth = endPanelDate.getMonth();
17828
+ switch (viewType) {
17829
+ case 'day':
17830
+ case 'date':
17831
+ case 'week': {
17832
+ if (endMonth) {
17833
+ endPanelDate.setMonth(endMonth - 1);
17834
+ }
17835
+ else {
17836
+ endPanelDate.setFullYear(endYear - 1);
17837
+ endPanelDate.setMonth(11);
17838
+ }
17839
+ $startDatePanel.setPanelDate(endPanelDate);
17840
+ break;
17841
+ }
17842
+ }
17843
+ }
17844
+ };
17761
17845
  // 全局事件
17762
17846
  const handleGlobalMousedownEvent = (evnt) => {
17763
17847
  const { visiblePanel, isActivated } = reactData;
@@ -18117,7 +18201,11 @@ var VxeDateRangePickerComponent = defineVxeComponent({
18117
18201
  festivalMethod: props.festivalMethod,
18118
18202
  disabledMethod: props.disabledMethod,
18119
18203
  selectDay: props.selectDay,
18120
- onChange: startPanelChangeEvent
18204
+ cellClassName: panelCellClassName,
18205
+ onChange: startPanelChangeEvent,
18206
+ onDatePrev: startPanelDateBtnChangeEvent,
18207
+ onDateToday: startPanelDateBtnChangeEvent,
18208
+ onDateNext: startPanelDateBtnChangeEvent
18121
18209
  }),
18122
18210
  h(VxeDatePanelComponent, {
18123
18211
  ref: refEndDatePanel,
@@ -18137,7 +18225,11 @@ var VxeDateRangePickerComponent = defineVxeComponent({
18137
18225
  festivalMethod: props.festivalMethod,
18138
18226
  disabledMethod: props.disabledMethod,
18139
18227
  selectDay: props.selectDay,
18140
- onChange: endPanelChangeEvent
18228
+ cellClassName: panelCellClassName,
18229
+ onChange: endPanelChangeEvent,
18230
+ onDatePrev: endPanelDateBtnChangeEvent,
18231
+ onDateToday: endPanelDateBtnChangeEvent,
18232
+ onDateNext: endPanelDateBtnChangeEvent
18141
18233
  })
18142
18234
  ]),
18143
18235
  h('div', {
@@ -26507,7 +26599,10 @@ var VxeSelectComponent = defineVxeComponent({
26507
26599
  props: {
26508
26600
  modelValue: [String, Number, Boolean, Array],
26509
26601
  defaultConfig: Object,
26510
- clearable: Boolean,
26602
+ clearable: {
26603
+ type: Boolean,
26604
+ default: () => getConfig$3().select.clearable
26605
+ },
26511
26606
  placeholder: String,
26512
26607
  readonly: {
26513
26608
  type: Boolean,
@@ -33222,7 +33317,10 @@ var VxeTableSelectComponent = defineVxeComponent({
33222
33317
  name: 'VxeTableSelect',
33223
33318
  props: {
33224
33319
  modelValue: [String, Number, Array],
33225
- clearable: Boolean,
33320
+ clearable: {
33321
+ type: Boolean,
33322
+ default: getConfig$3().tableSelect.clearable
33323
+ },
33226
33324
  placeholder: {
33227
33325
  type: String,
33228
33326
  default: () => XEUtils.eqNull(getConfig$3().tableSelect.placeholder) ? getI18n$2('vxe.base.pleaseSelect') : getConfig$3().tableSelect.placeholder
@@ -38665,7 +38763,10 @@ var VxeTreeSelectComponent = defineVxeComponent({
38665
38763
  name: 'VxeTreeSelect',
38666
38764
  props: {
38667
38765
  modelValue: [String, Number, Array],
38668
- clearable: Boolean,
38766
+ clearable: {
38767
+ type: Boolean,
38768
+ default: getConfig$3().treeSelect.clearable
38769
+ },
38669
38770
  placeholder: {
38670
38771
  type: String,
38671
38772
  default: () => XEUtils.eqNull(getConfig$3().treeSelect.placeholder) ? getI18n$2('vxe.base.pleaseSelect') : getConfig$3().treeSelect.placeholder
@@ -40087,7 +40188,9 @@ var VxeUploadComponent = defineVxeComponent({
40087
40188
  const computeMoreOpts = computed(() => {
40088
40189
  return Object.assign({ showMoreButton: true }, props.moreConfig);
40089
40190
  });
40090
- const computeMaps = {};
40191
+ const computeMaps = {
40192
+ computeUrlProp
40193
+ };
40091
40194
  const $xeUpload = {
40092
40195
  xID,
40093
40196
  props,
@@ -40480,14 +40583,16 @@ var VxeUploadComponent = defineVxeComponent({
40480
40583
  handleChange(fileList);
40481
40584
  // 自动更新校验状态
40482
40585
  if ($xeForm && formItemInfo) {
40483
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, fileList);
40586
+ $xeForm.triggerItemEvent(evnt || { type: 'remove' }, formItemInfo.itemConfig.field, fileList);
40587
+ }
40588
+ if (evnt) {
40589
+ dispatchEvent('remove', { option: item }, evnt);
40484
40590
  }
40485
- dispatchEvent('remove', { option: item }, evnt);
40486
40591
  };
40487
40592
  const removeFileEvent = (evnt, item, index) => {
40488
40593
  const beforeRemoveFn = props.beforeRemoveMethod || getConfig$3().upload.beforeRemoveMethod;
40489
40594
  const removeFn = props.removeMethod || getConfig$3().upload.removeMethod;
40490
- Promise.resolve(beforeRemoveFn
40595
+ return Promise.resolve(beforeRemoveFn
40491
40596
  ? beforeRemoveFn({
40492
40597
  $upload: $xeUpload,
40493
40598
  option: item
@@ -40507,8 +40612,11 @@ var VxeUploadComponent = defineVxeComponent({
40507
40612
  }
40508
40613
  }
40509
40614
  else {
40510
- dispatchEvent('remove-fail', { option: item }, evnt);
40615
+ if (evnt) {
40616
+ dispatchEvent('remove-fail', { option: item }, evnt);
40617
+ }
40511
40618
  }
40619
+ return status;
40512
40620
  });
40513
40621
  };
40514
40622
  const handleDownloadEvent = (evnt, item) => {
@@ -40867,11 +40975,46 @@ var VxeUploadComponent = defineVxeComponent({
40867
40975
  const handleGlobalBlurEvent = () => {
40868
40976
  reactData.isActivated = false;
40869
40977
  };
40978
+ const handleClearFile = (evnt) => {
40979
+ const { fileList } = reactData;
40980
+ const urlProp = computeUrlProp.value;
40981
+ const rest = [];
40982
+ XEUtils.lastEach(fileList, (item, index) => {
40983
+ rest.push(removeFileEvent(evnt, item, index).then((status) => {
40984
+ return { url: item[urlProp], status };
40985
+ }));
40986
+ });
40987
+ return Promise.all(rest);
40988
+ };
40989
+ const handleRemoveFile = (evnt, urlOrItem) => {
40990
+ const { fileList } = reactData;
40991
+ const urlProp = computeUrlProp.value;
40992
+ const urls = (XEUtils.isArray(urlOrItem) ? urlOrItem : [urlOrItem]);
40993
+ const rest = [];
40994
+ urls.forEach((obj) => {
40995
+ if (obj) {
40996
+ const url = XEUtils.isString(obj) ? obj : obj[urlProp];
40997
+ const index = XEUtils.findIndexOf(fileList, fileItem => fileItem[urlProp] === url);
40998
+ if (index > -1) {
40999
+ rest.push(removeFileEvent(evnt, fileList[index], index).then(status => {
41000
+ return { url, status };
41001
+ }));
41002
+ }
41003
+ }
41004
+ });
41005
+ return Promise.all(rest);
41006
+ };
40870
41007
  const uploadMethods = {
40871
41008
  dispatchEvent,
40872
41009
  choose() {
40873
41010
  return handleChoose(null);
40874
41011
  },
41012
+ clear() {
41013
+ return handleClearFile(null);
41014
+ },
41015
+ clearByEvent(evnt) {
41016
+ return handleClearFile(evnt);
41017
+ },
40875
41018
  getPendingFiles() {
40876
41019
  const { fileList, fileCacheMaps } = reactData;
40877
41020
  const pendingFiles = [];
@@ -40934,9 +41077,17 @@ var VxeUploadComponent = defineVxeComponent({
40934
41077
  VxeUI.modal.close(internalData.moreId);
40935
41078
  }
40936
41079
  return nextTick();
41080
+ },
41081
+ remove(urlOrItem) {
41082
+ return handleRemoveFile(null, urlOrItem);
41083
+ },
41084
+ removeByEvent(evnt, urlOrItem) {
41085
+ return handleRemoveFile(evnt, urlOrItem);
40937
41086
  }
40938
41087
  };
40939
- const uploadPrivateMethods = {};
41088
+ const uploadPrivateMethods = {
41089
+ removeFileEvent
41090
+ };
40940
41091
  Object.assign($xeUpload, uploadMethods, uploadPrivateMethods);
40941
41092
  const renderFileItemList = (currList, isMoreView) => {
40942
41093
  const { showRemoveButton, showDownloadButton, showProgress, progressText, showPreview, showErrorStatus, dragSort, autoSubmit, showSubmitButton } = props;