vxe-pc-ui 3.15.23 → 3.15.24

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 (51) hide show
  1. package/es/date-panel/src/date-panel.js +34 -14
  2. package/es/date-panel/src/util.js +30 -3
  3. package/es/date-picker/src/date-picker.js +1 -1
  4. package/es/date-range-picker/src/date-range-picker.js +205 -124
  5. package/es/icon/style.css +1 -1
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/tooltip/src/tooltip.js +34 -21
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/date-panel/src/date-panel.js +46 -15
  12. package/lib/date-panel/src/date-panel.min.js +1 -1
  13. package/lib/date-panel/src/util.js +31 -5
  14. package/lib/date-panel/src/util.min.js +1 -1
  15. package/lib/date-picker/src/date-picker.js +1 -1
  16. package/lib/date-picker/src/date-picker.min.js +1 -1
  17. package/lib/date-range-picker/src/date-range-picker.js +217 -131
  18. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  19. package/lib/icon/style/style.css +1 -1
  20. package/lib/icon/style/style.min.css +1 -1
  21. package/lib/index.umd.js +339 -181
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/tooltip/src/tooltip.js +36 -21
  26. package/lib/tooltip/src/tooltip.min.js +1 -1
  27. package/lib/ui/index.js +1 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/package.json +1 -1
  32. package/packages/date-panel/src/date-panel.ts +38 -15
  33. package/packages/date-panel/src/util.ts +30 -3
  34. package/packages/date-picker/src/date-picker.ts +1 -1
  35. package/packages/date-range-picker/src/date-range-picker.ts +207 -123
  36. package/packages/tooltip/src/tooltip.ts +41 -20
  37. package/types/components/date-panel.d.ts +15 -2
  38. package/types/components/date-range-picker.d.ts +5 -3
  39. package/types/components/tooltip.d.ts +1 -1
  40. /package/es/icon/{iconfont.1783073807010.ttf → iconfont.1783233735491.ttf} +0 -0
  41. /package/es/icon/{iconfont.1783073807010.woff → iconfont.1783233735491.woff} +0 -0
  42. /package/es/icon/{iconfont.1783073807010.woff2 → iconfont.1783233735491.woff2} +0 -0
  43. /package/es/{iconfont.1783073807010.ttf → iconfont.1783233735491.ttf} +0 -0
  44. /package/es/{iconfont.1783073807010.woff → iconfont.1783233735491.woff} +0 -0
  45. /package/es/{iconfont.1783073807010.woff2 → iconfont.1783233735491.woff2} +0 -0
  46. /package/lib/icon/style/{iconfont.1783073807010.ttf → iconfont.1783233735491.ttf} +0 -0
  47. /package/lib/icon/style/{iconfont.1783073807010.woff → iconfont.1783233735491.woff} +0 -0
  48. /package/lib/icon/style/{iconfont.1783073807010.woff2 → iconfont.1783233735491.woff2} +0 -0
  49. /package/lib/{iconfont.1783073807010.ttf → iconfont.1783233735491.ttf} +0 -0
  50. /package/lib/{iconfont.1783073807010.woff → iconfont.1783233735491.woff} +0 -0
  51. /package/lib/{iconfont.1783073807010.woff2 → iconfont.1783233735491.woff2} +0 -0
@@ -37,6 +37,7 @@ export default {
37
37
  type: [String, Number, Date],
38
38
  default: () => getConfig().datePanel.endDate
39
39
  },
40
+ defaultMode: String,
40
41
  defaultDate: [String, Number, Date],
41
42
  defaultTime: [String, Number, Date],
42
43
  minDate: [String, Number, Date],
@@ -48,6 +49,7 @@ export default {
48
49
  labelFormat: String,
49
50
  valueFormat: String,
50
51
  timeFormat: String,
52
+ valueSort: Boolean,
51
53
  festivalMethod: {
52
54
  type: Function,
53
55
  default: () => getConfig().datePanel.festivalMethod
@@ -171,12 +173,14 @@ export default {
171
173
  computeDateValue() {
172
174
  const $xeDatePanel = this;
173
175
  const props = $xeDatePanel;
174
- const { value: modelValue } = props;
176
+ const { value: modelValue, defaultMode } = props;
175
177
  const isDatePanelType = $xeDatePanel.computeIsDatePanelType;
176
178
  const dateValueFormat = $xeDatePanel.computeDateValueFormat;
177
179
  let val = null;
178
180
  if (modelValue && isDatePanelType) {
179
- const date = $xeDatePanel.parseDate(modelValue, dateValueFormat);
181
+ const vals = XEUtils.isString(modelValue) ? modelValue.split(',') : modelValue;
182
+ const currVal = defaultMode === 'last' ? XEUtils.last(vals) : XEUtils.first(vals);
183
+ const date = $xeDatePanel.parseDate(currVal, dateValueFormat);
180
184
  if (XEUtils.isValidDate(date)) {
181
185
  val = date;
182
186
  }
@@ -634,10 +638,10 @@ export default {
634
638
  const props = $xeDatePanel;
635
639
  const { type, multiple } = props;
636
640
  if (type === 'time') {
637
- return toStringTimeDate(value);
641
+ return toStringTimeDate(XEUtils.isArray(value) ? value : XEUtils.last(value));
638
642
  }
639
643
  if (XEUtils.isArray(value)) {
640
- return XEUtils.toStringDate(value[0], format);
644
+ return XEUtils.toStringDate(XEUtils.last(value), format);
641
645
  }
642
646
  if (XEUtils.isString(value)) {
643
647
  return XEUtils.toStringDate(multiple ? XEUtils.last(value.split(',')) : value, format);
@@ -708,7 +712,7 @@ export default {
708
712
  $xeDatePanel.handleChange('', { type: 'check' });
709
713
  }
710
714
  },
711
- handleChange(value, evnt) {
715
+ handleChange(value, evnt, params) {
712
716
  const $xeDatePanel = this;
713
717
  const props = $xeDatePanel;
714
718
  const reactData = $xeDatePanel.reactData;
@@ -720,20 +724,20 @@ export default {
720
724
  const timeNum = dateVal ? dateVal.getTime() : null;
721
725
  $xeDatePanel.emitModel(timeNum);
722
726
  if (modelValue !== timeNum) {
723
- $xeDatePanel.dispatchEvent('change', { value: timeNum }, evnt);
727
+ $xeDatePanel.dispatchEvent('change', { value: timeNum, currValue: params ? params.currValue : '' }, evnt);
724
728
  }
725
729
  }
726
730
  else if (hasDateValueType(valueFormat)) {
727
731
  const dateVal = parseDateValue(value, type, { valueFormat: dateValueFormat });
728
732
  $xeDatePanel.emitModel(dateVal);
729
733
  if (modelValue && dateVal ? XEUtils.toStringDate(modelValue).getTime() !== dateVal.getTime() : modelValue !== dateVal) {
730
- $xeDatePanel.dispatchEvent('change', { value: dateVal }, evnt);
734
+ $xeDatePanel.dispatchEvent('change', { value: dateVal, currValue: params ? params.currValue : '' }, evnt);
731
735
  }
732
736
  }
733
737
  else {
734
738
  $xeDatePanel.emitModel(value);
735
739
  if (XEUtils.toValueString(modelValue) !== value) {
736
- $xeDatePanel.dispatchEvent('change', { value }, evnt);
740
+ $xeDatePanel.dispatchEvent('change', { value, currValue: params ? params.currValue : '' }, evnt);
737
741
  }
738
742
  }
739
743
  },
@@ -807,7 +811,7 @@ export default {
807
811
  const $xeDatePanel = this;
808
812
  const props = $xeDatePanel;
809
813
  const reactData = $xeDatePanel.reactData;
810
- const { value: modelValue, multiple } = props;
814
+ const { value: modelValue, multiple, valueSort } = props;
811
815
  const { datetimePanelValue } = reactData;
812
816
  const isDateTimeType = $xeDatePanel.computeIsDateTimeType;
813
817
  const dateValueFormat = $xeDatePanel.computeDateValueFormat;
@@ -831,7 +835,7 @@ export default {
831
835
  if (isDateTimeType) {
832
836
  // 如果是datetime特殊类型
833
837
  const dateListValue = isReload ? [] : [...$xeDatePanel.computeDateListValue];
834
- const datetimeRest = [];
838
+ let datetimeRest = [];
835
839
  const eqIndex = XEUtils.findIndexOf(dateListValue, val => XEUtils.isDateSame(date, val, 'yyyyMMdd'));
836
840
  if (eqIndex === -1) {
837
841
  if (overCount) {
@@ -853,27 +857,37 @@ export default {
853
857
  datetimeRest.push(item);
854
858
  }
855
859
  });
856
- $xeDatePanel.handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' });
860
+ // 排序
861
+ if (valueSort) {
862
+ datetimeRest = datetimeRest.sort((a, b) => a.getTime() - b.getTime());
863
+ }
864
+ $xeDatePanel.handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' }, { currValue: inpVal });
857
865
  }
858
866
  else {
859
867
  const dateMultipleValue = isReload ? [] : $xeDatePanel.computeDateMultipleValue;
868
+ let dateRest = [];
860
869
  // 如果是日期类型
861
870
  if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
862
- $xeDatePanel.handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
871
+ dateRest = dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal));
863
872
  }
864
873
  else {
865
874
  if (overCount) {
866
875
  // 如果超出最大多选数量
867
876
  return;
868
877
  }
869
- $xeDatePanel.handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
878
+ dateRest = dateMultipleValue.concat([inpVal]);
879
+ }
880
+ // 排序
881
+ if (valueSort) {
882
+ dateRest = dateRest.sort();
870
883
  }
884
+ $xeDatePanel.handleChange(dateRest.join(','), { type: 'update' }, { currValue: inpVal });
871
885
  }
872
886
  }
873
887
  else {
874
888
  // 如果为单选
875
889
  if (!XEUtils.isEqual(modelValue, inpVal)) {
876
- $xeDatePanel.handleChange(inpVal, { type: 'update' });
890
+ $xeDatePanel.handleChange(inpVal, { type: 'update' }, { currValue: inpVal });
877
891
  }
878
892
  }
879
893
  },
@@ -1318,6 +1332,12 @@ export default {
1318
1332
  const reactData = $xeDatePanel.reactData;
1319
1333
  return reactData.inputValue;
1320
1334
  },
1335
+ getViewType() {
1336
+ const $xeDatePanel = this;
1337
+ const reactData = $xeDatePanel.reactData;
1338
+ const { datePanelType } = reactData;
1339
+ return datePanelType;
1340
+ },
1321
1341
  setPanelDate(date) {
1322
1342
  const $xeDatePanel = this;
1323
1343
  if (date) {
@@ -74,11 +74,11 @@ export function getDateQuarter(date) {
74
74
  }
75
75
  return 4;
76
76
  }
77
- export const parseDateValue = (val, type, options) => {
77
+ export function parseDateValue(val, type, options) {
78
78
  const { valueFormat } = options;
79
79
  if (val) {
80
80
  if (type === 'time') {
81
- return toStringTimeDate(val);
81
+ return toStringTimeDate(XEUtils.isArray(val) ? val : XEUtils.last(val));
82
82
  }
83
83
  if (XEUtils.isNumber(val) || /^[0-9]{10,15}$/.test(`${val}`)) {
84
84
  return new Date(Number(val));
@@ -86,10 +86,13 @@ export const parseDateValue = (val, type, options) => {
86
86
  if (XEUtils.isString(val)) {
87
87
  return XEUtils.toStringDate(XEUtils.last(val.split(',')), valueFormat);
88
88
  }
89
+ if (XEUtils.isArray(val)) {
90
+ return XEUtils.toStringDate(XEUtils.last(val), valueFormat);
91
+ }
89
92
  return XEUtils.toStringDate(val, valueFormat);
90
93
  }
91
94
  return null;
92
- };
95
+ }
93
96
  export function parseDateString(val, type, options) {
94
97
  const dValue = parseDateValue(val, type, options);
95
98
  return dValue ? XEUtils.toDateString(dValue, options.valueFormat) : '';
@@ -256,3 +259,27 @@ export function checkDateInputFormat(numStr, formatKey) {
256
259
  }
257
260
  return numVal;
258
261
  }
262
+ export const getPrevMonth = (date) => {
263
+ const currtYear = date.getFullYear();
264
+ const currMonth = date.getMonth();
265
+ if (currMonth) {
266
+ date.setMonth(currMonth - 1);
267
+ }
268
+ else {
269
+ date.setFullYear(currtYear - 1);
270
+ date.setMonth(11);
271
+ }
272
+ return date;
273
+ };
274
+ export const getNextMonth = (date) => {
275
+ const currtYear = date.getFullYear();
276
+ const currMonth = date.getMonth();
277
+ if (currMonth < 11) {
278
+ date.setMonth(currMonth + 1);
279
+ }
280
+ else {
281
+ date.setFullYear(currtYear + 1);
282
+ date.setMonth(0);
283
+ }
284
+ return date;
285
+ };
@@ -48,7 +48,7 @@ export default {
48
48
  event: 'modelValue'
49
49
  },
50
50
  props: {
51
- value: [String, Number, Date],
51
+ value: [String, Number, Date, Array],
52
52
  immediate: {
53
53
  type: Boolean,
54
54
  default: true