vxe-pc-ui 4.14.27 → 4.14.28

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 (63) hide show
  1. package/dist/all.esm.js +96 -21
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/date-panel/src/date-panel.js +11 -10
  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 +15 -0
  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 +46 -10
  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 +17 -0
  23. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  24. package/lib/index.umd.js +149 -25
  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 +11 -10
  44. package/packages/date-range-picker/src/date-range-picker.ts +17 -1
  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 +7 -0
  51. package/types/components/upload.d.ts +37 -2
  52. /package/es/icon/{iconfont.1780477619002.ttf → iconfont.1780570418794.ttf} +0 -0
  53. /package/es/icon/{iconfont.1780477619002.woff → iconfont.1780570418794.woff} +0 -0
  54. /package/es/icon/{iconfont.1780477619002.woff2 → iconfont.1780570418794.woff2} +0 -0
  55. /package/es/{iconfont.1780477619002.ttf → iconfont.1780570418794.ttf} +0 -0
  56. /package/es/{iconfont.1780477619002.woff → iconfont.1780570418794.woff} +0 -0
  57. /package/es/{iconfont.1780477619002.woff2 → iconfont.1780570418794.woff2} +0 -0
  58. /package/lib/icon/style/{iconfont.1780477619002.ttf → iconfont.1780570418794.ttf} +0 -0
  59. /package/lib/icon/style/{iconfont.1780477619002.woff → iconfont.1780570418794.woff} +0 -0
  60. /package/lib/icon/style/{iconfont.1780477619002.woff2 → iconfont.1780570418794.woff2} +0 -0
  61. /package/lib/{iconfont.1780477619002.ttf → iconfont.1780570418794.ttf} +0 -0
  62. /package/lib/{iconfont.1780477619002.woff → iconfont.1780570418794.woff} +0 -0
  63. /package/lib/{iconfont.1780477619002.woff2 → iconfont.1780570418794.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.28"}`;
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.28";
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
@@ -15638,7 +15639,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15638
15639
  return labelVNs;
15639
15640
  };
15640
15641
  const renderDateDayTable = () => {
15641
- const { multiple } = props;
15642
+ const { type, multiple, cellClassName } = props;
15642
15643
  const { datePanelType, datePanelValue } = reactData;
15643
15644
  const dateValue = computeDateValue.value;
15644
15645
  const dateHeaders = computeDateHeaders.value;
@@ -15683,7 +15684,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15683
15684
  }, rows.map((item) => {
15684
15685
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15685
15686
  return h('div', {
15686
- class: ['vxe-date-panel--view-item', {
15687
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15687
15688
  'is--prev': item.isPrev,
15688
15689
  'is--current': item.isCurrent,
15689
15690
  'is--now': item.isNow,
@@ -15711,7 +15712,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15711
15712
  ];
15712
15713
  };
15713
15714
  const renderDateWeekTable = () => {
15714
- const { multiple } = props;
15715
+ const { type, multiple, cellClassName } = props;
15715
15716
  const { datePanelType, datePanelValue } = reactData;
15716
15717
  const dateValue = computeDateValue.value;
15717
15718
  const weekHeaders = computeWeekHeaders.value;
@@ -15758,7 +15759,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15758
15759
  }
15759
15760
  }, rows.map((item, rIndex) => {
15760
15761
  return h('div', {
15761
- class: ['vxe-date-panel--view-item', {
15762
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15762
15763
  'is--prev': item.isPrev,
15763
15764
  'is--current': item.isCurrent,
15764
15765
  'is--now': rIndex ? item.isNow : isNowWeek,
@@ -15786,7 +15787,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15786
15787
  ];
15787
15788
  };
15788
15789
  const renderDateMonthTable = () => {
15789
- const { multiple } = props;
15790
+ const { type, multiple, cellClassName } = props;
15790
15791
  const { datePanelType, datePanelValue } = reactData;
15791
15792
  const dateValue = computeDateValue.value;
15792
15793
  const monthDatas = computeMonthDatas.value;
@@ -15808,7 +15809,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15808
15809
  }, rows.map((item) => {
15809
15810
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15810
15811
  return h('div', {
15811
- class: ['vxe-date-panel--view-item', {
15812
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15812
15813
  'is--prev': item.isPrev,
15813
15814
  'is--current': item.isCurrent,
15814
15815
  'is--now': item.isNow,
@@ -15836,7 +15837,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15836
15837
  ];
15837
15838
  };
15838
15839
  const renderDateQuarterTable = () => {
15839
- const { multiple } = props;
15840
+ const { type, multiple, cellClassName } = props;
15840
15841
  const { datePanelType, datePanelValue } = reactData;
15841
15842
  const dateValue = computeDateValue.value;
15842
15843
  const quarterDatas = computeQuarterDatas.value;
@@ -15858,7 +15859,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15858
15859
  }, rows.map((item) => {
15859
15860
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15860
15861
  return h('div', {
15861
- class: ['vxe-date-panel--view-item', {
15862
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15862
15863
  'is--prev': item.isPrev,
15863
15864
  'is--current': item.isCurrent,
15864
15865
  'is--now': item.isNow,
@@ -15886,7 +15887,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15886
15887
  ];
15887
15888
  };
15888
15889
  const renderDateYearTable = () => {
15889
- const { multiple } = props;
15890
+ const { type, multiple, cellClassName } = props;
15890
15891
  const { datePanelType, datePanelValue } = reactData;
15891
15892
  const dateValue = computeDateValue.value;
15892
15893
  const yearDatas = computeYearDatas.value;
@@ -15908,7 +15909,7 @@ var VxeDatePanelComponent = defineVxeComponent({
15908
15909
  }, rows.map((item) => {
15909
15910
  const isSelected = multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
15910
15911
  return h('div', {
15911
- class: ['vxe-date-panel--view-item', {
15912
+ class: ['vxe-date-panel--view-item', cellClassName ? (XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ''}` : `${cellClassName || ''}`) : '', {
15912
15913
  'is--prev': item.isPrev,
15913
15914
  'is--current': item.isCurrent,
15914
15915
  'is--now': item.isNow,
@@ -17652,6 +17653,19 @@ var VxeDateRangePickerComponent = defineVxeComponent({
17652
17653
  }
17653
17654
  }
17654
17655
  };
17656
+ const panelCellClassName = ({ date }) => {
17657
+ const startValue = reactData.startValue;
17658
+ const endValue = reactData.endValue;
17659
+ if (startValue && endValue) {
17660
+ const currTime = date.getTime();
17661
+ const startTime = XEUtils.toStringDate(startValue).getTime();
17662
+ const endTime = XEUtils.toStringDate(endValue).getTime();
17663
+ if (currTime >= startTime && currTime <= endTime) {
17664
+ return 'is--range-selected';
17665
+ }
17666
+ }
17667
+ return '';
17668
+ };
17655
17669
  const handleSelectClose = () => {
17656
17670
  const { autoClose } = props;
17657
17671
  const { startValue, endValue } = reactData;
@@ -18117,6 +18131,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
18117
18131
  festivalMethod: props.festivalMethod,
18118
18132
  disabledMethod: props.disabledMethod,
18119
18133
  selectDay: props.selectDay,
18134
+ cellClassName: panelCellClassName,
18120
18135
  onChange: startPanelChangeEvent
18121
18136
  }),
18122
18137
  h(VxeDatePanelComponent, {
@@ -18137,6 +18152,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
18137
18152
  festivalMethod: props.festivalMethod,
18138
18153
  disabledMethod: props.disabledMethod,
18139
18154
  selectDay: props.selectDay,
18155
+ cellClassName: panelCellClassName,
18140
18156
  onChange: endPanelChangeEvent
18141
18157
  })
18142
18158
  ]),
@@ -26507,7 +26523,10 @@ var VxeSelectComponent = defineVxeComponent({
26507
26523
  props: {
26508
26524
  modelValue: [String, Number, Boolean, Array],
26509
26525
  defaultConfig: Object,
26510
- clearable: Boolean,
26526
+ clearable: {
26527
+ type: Boolean,
26528
+ default: () => getConfig$3().select.clearable
26529
+ },
26511
26530
  placeholder: String,
26512
26531
  readonly: {
26513
26532
  type: Boolean,
@@ -33222,7 +33241,10 @@ var VxeTableSelectComponent = defineVxeComponent({
33222
33241
  name: 'VxeTableSelect',
33223
33242
  props: {
33224
33243
  modelValue: [String, Number, Array],
33225
- clearable: Boolean,
33244
+ clearable: {
33245
+ type: Boolean,
33246
+ default: getConfig$3().tableSelect.clearable
33247
+ },
33226
33248
  placeholder: {
33227
33249
  type: String,
33228
33250
  default: () => XEUtils.eqNull(getConfig$3().tableSelect.placeholder) ? getI18n$2('vxe.base.pleaseSelect') : getConfig$3().tableSelect.placeholder
@@ -38665,7 +38687,10 @@ var VxeTreeSelectComponent = defineVxeComponent({
38665
38687
  name: 'VxeTreeSelect',
38666
38688
  props: {
38667
38689
  modelValue: [String, Number, Array],
38668
- clearable: Boolean,
38690
+ clearable: {
38691
+ type: Boolean,
38692
+ default: getConfig$3().treeSelect.clearable
38693
+ },
38669
38694
  placeholder: {
38670
38695
  type: String,
38671
38696
  default: () => XEUtils.eqNull(getConfig$3().treeSelect.placeholder) ? getI18n$2('vxe.base.pleaseSelect') : getConfig$3().treeSelect.placeholder
@@ -40087,7 +40112,9 @@ var VxeUploadComponent = defineVxeComponent({
40087
40112
  const computeMoreOpts = computed(() => {
40088
40113
  return Object.assign({ showMoreButton: true }, props.moreConfig);
40089
40114
  });
40090
- const computeMaps = {};
40115
+ const computeMaps = {
40116
+ computeUrlProp
40117
+ };
40091
40118
  const $xeUpload = {
40092
40119
  xID,
40093
40120
  props,
@@ -40480,14 +40507,16 @@ var VxeUploadComponent = defineVxeComponent({
40480
40507
  handleChange(fileList);
40481
40508
  // 自动更新校验状态
40482
40509
  if ($xeForm && formItemInfo) {
40483
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, fileList);
40510
+ $xeForm.triggerItemEvent(evnt || { type: 'remove' }, formItemInfo.itemConfig.field, fileList);
40511
+ }
40512
+ if (evnt) {
40513
+ dispatchEvent('remove', { option: item }, evnt);
40484
40514
  }
40485
- dispatchEvent('remove', { option: item }, evnt);
40486
40515
  };
40487
40516
  const removeFileEvent = (evnt, item, index) => {
40488
40517
  const beforeRemoveFn = props.beforeRemoveMethod || getConfig$3().upload.beforeRemoveMethod;
40489
40518
  const removeFn = props.removeMethod || getConfig$3().upload.removeMethod;
40490
- Promise.resolve(beforeRemoveFn
40519
+ return Promise.resolve(beforeRemoveFn
40491
40520
  ? beforeRemoveFn({
40492
40521
  $upload: $xeUpload,
40493
40522
  option: item
@@ -40507,8 +40536,11 @@ var VxeUploadComponent = defineVxeComponent({
40507
40536
  }
40508
40537
  }
40509
40538
  else {
40510
- dispatchEvent('remove-fail', { option: item }, evnt);
40539
+ if (evnt) {
40540
+ dispatchEvent('remove-fail', { option: item }, evnt);
40541
+ }
40511
40542
  }
40543
+ return status;
40512
40544
  });
40513
40545
  };
40514
40546
  const handleDownloadEvent = (evnt, item) => {
@@ -40867,11 +40899,46 @@ var VxeUploadComponent = defineVxeComponent({
40867
40899
  const handleGlobalBlurEvent = () => {
40868
40900
  reactData.isActivated = false;
40869
40901
  };
40902
+ const handleClearFile = (evnt) => {
40903
+ const { fileList } = reactData;
40904
+ const urlProp = computeUrlProp.value;
40905
+ const rest = [];
40906
+ XEUtils.lastEach(fileList, (item, index) => {
40907
+ rest.push(removeFileEvent(evnt, item, index).then((status) => {
40908
+ return { url: item[urlProp], status };
40909
+ }));
40910
+ });
40911
+ return Promise.all(rest);
40912
+ };
40913
+ const handleRemoveFile = (evnt, urlOrItem) => {
40914
+ const { fileList } = reactData;
40915
+ const urlProp = computeUrlProp.value;
40916
+ const urls = (XEUtils.isArray(urlOrItem) ? urlOrItem : [urlOrItem]);
40917
+ const rest = [];
40918
+ urls.forEach((obj) => {
40919
+ if (obj) {
40920
+ const url = XEUtils.isString(obj) ? obj : obj[urlProp];
40921
+ const index = XEUtils.findIndexOf(fileList, fileItem => fileItem[urlProp] === url);
40922
+ if (index > -1) {
40923
+ rest.push(removeFileEvent(evnt, fileList[index], index).then(status => {
40924
+ return { url, status };
40925
+ }));
40926
+ }
40927
+ }
40928
+ });
40929
+ return Promise.all(rest);
40930
+ };
40870
40931
  const uploadMethods = {
40871
40932
  dispatchEvent,
40872
40933
  choose() {
40873
40934
  return handleChoose(null);
40874
40935
  },
40936
+ clear() {
40937
+ return handleClearFile(null);
40938
+ },
40939
+ clearByEvent(evnt) {
40940
+ return handleClearFile(evnt);
40941
+ },
40875
40942
  getPendingFiles() {
40876
40943
  const { fileList, fileCacheMaps } = reactData;
40877
40944
  const pendingFiles = [];
@@ -40934,9 +41001,17 @@ var VxeUploadComponent = defineVxeComponent({
40934
41001
  VxeUI.modal.close(internalData.moreId);
40935
41002
  }
40936
41003
  return nextTick();
41004
+ },
41005
+ remove(urlOrItem) {
41006
+ return handleRemoveFile(null, urlOrItem);
41007
+ },
41008
+ removeByEvent(evnt, urlOrItem) {
41009
+ return handleRemoveFile(evnt, urlOrItem);
40937
41010
  }
40938
41011
  };
40939
- const uploadPrivateMethods = {};
41012
+ const uploadPrivateMethods = {
41013
+ removeFileEvent
41014
+ };
40940
41015
  Object.assign($xeUpload, uploadMethods, uploadPrivateMethods);
40941
41016
  const renderFileItemList = (currList, isMoreView) => {
40942
41017
  const { showRemoveButton, showDownloadButton, showProgress, progressText, showPreview, showErrorStatus, dragSort, autoSubmit, showSubmitButton } = props;