@zgfe/business-lib 1.2.51-ljy.2 → 1.2.51-ljy.21

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.
@@ -41,6 +41,8 @@ export default (function () {
41
41
  key: "".concat(includeToday, "--2"),
42
42
  onChange: handleChange,
43
43
  includeToday: includeToday,
44
- defaultValue: time
44
+ defaultValue: time,
45
+ selectRange: 365,
46
+ selectRangeUnit: "days"
45
47
  }), /*#__PURE__*/React.createElement("p", null, "\u5F53\u524D\u503C\uFF1A", JSON.stringify(time))));
46
48
  });
@@ -4,12 +4,10 @@ export interface DatePickerContextProps {
4
4
  dateRange?: DatePickerTypes.Range;
5
5
  setDateRange?: (range: DatePickerTypes.Range) => void;
6
6
  includeToday?: boolean;
7
- mode?: DatePickerTypes.Props['mode'];
8
7
  currentType?: DatePickerTypes.Unit;
9
8
  relative?: [number, number];
10
9
  setRelative?: (relative?: [number, number]) => void;
11
10
  setOpen?: Dispatch<SetStateAction<boolean>>;
12
- setLabel?: Dispatch<SetStateAction<string>>;
13
11
  }
14
12
  declare const DatePickerContext: import("react").Context<DatePickerContextProps>;
15
13
  export default DatePickerContext;
@@ -3,6 +3,5 @@ declare const BizDate: React.ForwardRefExoticComponent<{
3
3
  selectRange?: number | undefined;
4
4
  timeRangeOpen?: number | undefined;
5
5
  selectRangeUnit?: "quarter" | "months" | "weeks" | "days" | undefined;
6
- onOpenChange?: ((data: boolean) => void) | undefined;
7
6
  } & React.RefAttributes<any>>;
8
7
  export default BizDate;
@@ -13,14 +13,13 @@ import { DatePickerTypes } from './types';
13
13
  import locale from 'antd/es/date-picker/locale/zh_CN';
14
14
  import DatePickerContext from './context';
15
15
  import BizGlobalDataContext from '../context';
16
- import { isTodayInRange } from './utils';
16
+ import { DateSingleMap, isTodayInRange } from './utils';
17
17
  import _ from 'lodash';
18
18
  var RangePicker = DatePicker.RangePicker;
19
19
  var BizDateBeyondRange = false;
20
20
  var BizDate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
21
21
  var selectRange = _ref.selectRange,
22
22
  selectRangeUnit = _ref.selectRangeUnit,
23
- _onOpenChange = _ref.onOpenChange,
24
23
  timeRangeOpen = _ref.timeRangeOpen;
25
24
  var _useContext = useContext(DatePickerContext),
26
25
  includeToday = _useContext.includeToday,
@@ -39,7 +38,7 @@ var BizDate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
39
38
  var min = moment(max).subtract(_timeRangeOpen, 'month');
40
39
  return current > max || current < min;
41
40
  }
42
- var _useState = useState(),
41
+ var _useState = useState(currentType === DatePickerTypes.Unit.hour ? moment(dateRange === null || dateRange === void 0 ? void 0 : dateRange.begin, 'YYYY-MM-DD') : [moment(dateRange === null || dateRange === void 0 ? void 0 : dateRange.begin, 'YYYY-MM-DD'), moment(dateRange === null || dateRange === void 0 ? void 0 : dateRange.end, 'YYYY-MM-DD')]),
43
42
  _useState2 = _slicedToArray(_useState, 2),
44
43
  value = _useState2[0],
45
44
  setValue = _useState2[1];
@@ -68,8 +67,20 @@ var BizDate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
68
67
  useImperativeHandle(ref, function () {
69
68
  return {
70
69
  getDateValue: function getDateValue() {
70
+ var _value$, _value$2;
71
71
  if (setRelative) setRelative(undefined);
72
- return value;
72
+ if (BizDateBeyondRange) {
73
+ message.error("\u65F6\u95F4\u6BB5\u6700\u5927\u652F\u6301".concat(selectRange ? selectRange : 12).concat(selectRangeUnitText));
74
+ BizDateBeyondRange = false;
75
+ return false;
76
+ }
77
+ return Array.isArray(value) ? {
78
+ begin: (_value$ = value[0]) === null || _value$ === void 0 ? void 0 : _value$.format('YYYY-MM-DD'),
79
+ end: (_value$2 = value[1]) === null || _value$2 === void 0 ? void 0 : _value$2.format('YYYY-MM-DD')
80
+ } : {
81
+ begin: value === null || value === void 0 ? void 0 : value.format('YYYY-MM-DD'),
82
+ end: value === null || value === void 0 ? void 0 : value.format('YYYY-MM-DD')
83
+ };
73
84
  }
74
85
  };
75
86
  });
@@ -81,7 +92,7 @@ var BizDate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
81
92
  return /*#__PURE__*/React.createElement("div", {
82
93
  className: "".concat(classPrefix, "-panel")
83
94
  }, currentType === DatePickerTypes.Unit.hour ? /*#__PURE__*/React.createElement(DatePicker, {
84
- value: moment(dateRange.begin, 'YYYY-MM-DD'),
95
+ value: value,
85
96
  allowClear: false,
86
97
  inputReadOnly: true,
87
98
  popupClassName: "".concat(classPrefix, "-drop"),
@@ -99,14 +110,11 @@ var BizDate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
99
110
  open: true,
100
111
  onChange: function onChange(date) {
101
112
  if (date) {
102
- setValue({
103
- begin: date.format('YYYY-MM-DD'),
104
- end: date.format('YYYY-MM-DD')
105
- });
113
+ setValue(moment(date, 'YYYY-MM-DD'));
106
114
  }
107
115
  }
108
116
  }) : /*#__PURE__*/React.createElement(RangePicker, {
109
- value: [moment(dateRange.begin, 'YYYY-MM-DD'), moment(dateRange.end, 'YYYY-MM-DD')],
117
+ value: value,
110
118
  allowClear: false,
111
119
  popupClassName: "".concat(classPrefix, "-drop"),
112
120
  inputReadOnly: true,
@@ -122,28 +130,18 @@ var BizDate = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
122
130
  getPopupContainer: function getPopupContainer(trigger) {
123
131
  return trigger.parentNode;
124
132
  },
125
- onOpenChange: function onOpenChange(open) {
126
- if (BizDateBeyondRange) {
127
- message.error("\u65F6\u95F4\u6BB5\u6700\u5927\u652F\u6301".concat(selectRange ? selectRange : 12).concat(selectRangeUnitText));
128
- BizDateBeyondRange = false;
129
- }
130
- _onOpenChange && _onOpenChange(open);
131
- },
132
133
  onChange: function onChange(value) {
133
134
  var subtractDays = 0;
134
135
  if (includeToday && value && value.length === 2 && isTodayInRange(value[0], value[1])) {
135
136
  subtractDays = 1;
136
137
  }
137
- if (value && value.length === 2 && moment(_.cloneDeep(value[1]).subtract(subtractDays, 'days').format('YYYY-MM-DD')).diff(moment(value[0].format('YYYY-MM-DD')), selectRangeUnit || 'months') >= (selectRange ? selectRange : 12)) {
138
+ if (value && value.length === 2 && moment(_.cloneDeep(value[1]).subtract(subtractDays, 'days').format('YYYY-MM-DD')).diff(moment(value[0].format('YYYY-MM-DD')), selectRangeUnit || 'months') >= (selectRange ? Math.floor(selectRange / Reflect.get(DateSingleMap, selectRangeUnit)) : 12)) {
138
139
  BizDateBeyondRange = true;
139
140
  return;
140
141
  }
141
142
  if (value && value.length === 2) {
142
143
  BizDateBeyondRange = false;
143
- setValue({
144
- begin: value[0].format('YYYY-MM-DD'),
145
- end: value[1].format('YYYY-MM-DD')
146
- });
144
+ setValue([moment(value[0], 'YYYY-MM-DD'), moment(value[1], 'YYYY-MM-DD')]);
147
145
  }
148
146
  }
149
147
  }));
@@ -37,7 +37,6 @@ export default (function () {
37
37
  defaultChecked: includeToday,
38
38
  onChange: setIncludeToday
39
39
  })), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(BizDatePicker, {
40
- mode: "simple",
41
40
  onChange: handleChange,
42
41
  includeToday: true,
43
42
  value: time,
@@ -8,11 +8,12 @@ import { BizDatePickerOld } from '@zgfe/business-lib';
8
8
  import React, { useState } from 'react';
9
9
  import '@zgfe/business-lib/es/assets/styles/resetAntd.less';
10
10
  import { Divider, Space, Switch } from 'antd';
11
+ import { DatePickerTypes } from '../types';
11
12
  export default (function () {
12
13
  var _useState = useState({
13
- begin: '2024-07-11',
14
- end: '2024-08-05',
15
- relative: [4, 1],
14
+ begin: '2024-07-01',
15
+ end: '2024-08-09',
16
+ relative: [5, 0],
16
17
  unit: 'week'
17
18
  }),
18
19
  _useState2 = _slicedToArray(_useState, 2),
@@ -33,9 +34,11 @@ export default (function () {
33
34
  defaultChecked: includeToday,
34
35
  onChange: setIncludeToday
35
36
  })), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(BizDatePickerOld, {
36
- key: "".concat(includeToday, "--2"),
37
- onChange: handleChange,
38
- includeToday: includeToday,
39
- defaultValue: time
37
+ value: time,
38
+ defaultValue: time,
39
+ dateTypeList: [DatePickerTypes.Unit.hour, DatePickerTypes.Unit.day, DatePickerTypes.Unit.week, DatePickerTypes.Unit.month, DatePickerTypes.Unit.quarter, DatePickerTypes.Unit.custom],
40
+ selectRange: 1,
41
+ selectRangeUnit: "months",
42
+ onChange: handleChange
40
43
  }), /*#__PURE__*/React.createElement("p", null, "\u5F53\u524D\u503C\uFF1A", JSON.stringify(time))));
41
44
  });
@@ -17,7 +17,7 @@ import './styles/index.less';
17
17
  import { Popover, Skeleton } from 'antd';
18
18
  import DatePickerContext from './context';
19
19
  import _ from 'lodash';
20
- import { getDateRange, getTypeList } from './utils';
20
+ import { DateOptionMap, getDateRange, getTypeList } from './utils';
21
21
  import PopoverContent from './popoverContent';
22
22
  import IconFont from '../icon/iconFont';
23
23
  import moment from 'moment';
@@ -34,10 +34,10 @@ var BizDatePicker = function BizDatePicker(_ref) {
34
34
  var defaultValue = _ref.defaultValue,
35
35
  value = _ref.value,
36
36
  includeToday = _ref.includeToday,
37
- mode = _ref.mode,
38
37
  dateTypeList = _ref.dateTypeList,
39
38
  onChange = _ref.onChange,
40
39
  selectRange = _ref.selectRange,
40
+ selectRangeUnit = _ref.selectRangeUnit,
41
41
  timeRangeOpen = _ref.timeRangeOpen;
42
42
  var _useState = useState(false),
43
43
  _useState2 = _slicedToArray(_useState, 2),
@@ -66,10 +66,6 @@ var BizDatePicker = function BizDatePicker(_ref) {
66
66
  _useState14 = _slicedToArray(_useState13, 2),
67
67
  open = _useState14[0],
68
68
  setOpen = _useState14[1];
69
- var _useState15 = useState('个月'),
70
- _useState16 = _slicedToArray(_useState15, 2),
71
- label = _useState16[0],
72
- setLabel = _useState16[1];
73
69
  function init(initValue) {
74
70
  setReady(false);
75
71
  var list = dateTypeList === null || dateTypeList === void 0 ? void 0 : dateTypeList.map(function (type) {
@@ -85,22 +81,8 @@ var BizDatePicker = function BizDatePicker(_ref) {
85
81
  setCurrentType(currentType);
86
82
  if (initValue === null || initValue === void 0 ? void 0 : initValue.relative) {
87
83
  setRelative(initValue.relative);
88
- switch (currentType === null || currentType === void 0 ? void 0 : currentType.value) {
89
- case 'day':
90
- setLabel(initValue.relative[0] + '天');
91
- break;
92
- case 'week':
93
- setLabel(initValue.relative[0] + '周');
94
- break;
95
- case 'month':
96
- setLabel(initValue.relative[0] + '个月');
97
- break;
98
- case 'quarter':
99
- setLabel(initValue.relative[0] + '个季度');
100
- break;
101
- }
102
84
  }
103
- var typeList = getTypeList(currentType === null || currentType === void 0 ? void 0 : currentType.value, mode, includeToday);
85
+ var typeList = getTypeList(currentType === null || currentType === void 0 ? void 0 : currentType.value, includeToday);
104
86
  var begin = initValue.begin,
105
87
  end = initValue.end;
106
88
  var item = typeList.find(function (item) {
@@ -147,6 +129,28 @@ var BizDatePicker = function BizDatePicker(_ref) {
147
129
  }, 100);
148
130
  });
149
131
  }, [dateRange, currentType, relative, ready]);
132
+ var renderLabel = function renderLabel() {
133
+ var typeList = getTypeList(currentType === null || currentType === void 0 ? void 0 : currentType.value, includeToday);
134
+ if (relative) {
135
+ var type = typeList.find(function (item) {
136
+ return item.count == relative[0];
137
+ });
138
+ if (type) {
139
+ if ((currentType === null || currentType === void 0 ? void 0 : currentType.value) == DatePickerTypes.Unit.hour) {
140
+ return type.value;
141
+ }
142
+ return '最近' + type.value;
143
+ } else {
144
+ return '最近' + relative[0] + Reflect.get(DateOptionMap, currentType === null || currentType === void 0 ? void 0 : currentType.value);
145
+ }
146
+ } else {
147
+ if ((currentType === null || currentType === void 0 ? void 0 : currentType.value) == DatePickerTypes.Unit.hour) {
148
+ return dateRange === null || dateRange === void 0 ? void 0 : dateRange.begin;
149
+ } else {
150
+ return (dateRange === null || dateRange === void 0 ? void 0 : dateRange.begin) + ' 至 ' + (dateRange === null || dateRange === void 0 ? void 0 : dateRange.end);
151
+ }
152
+ }
153
+ };
150
154
  if (!typeList.length || !currentType || !ready) {
151
155
  return /*#__PURE__*/React.createElement("div", {
152
156
  className: classPrefix
@@ -159,16 +163,14 @@ var BizDatePicker = function BizDatePicker(_ref) {
159
163
  }, /*#__PURE__*/React.createElement(DatePickerContext.Provider, {
160
164
  value: {
161
165
  includeToday: includeToday,
162
- mode: mode,
163
166
  dateRange: dateRange,
164
167
  setDateRange: setDateRange,
165
168
  currentType: currentType.value,
166
169
  relative: relative,
167
170
  setRelative: setRelative,
168
- setOpen: setOpen,
169
- setLabel: setLabel
171
+ setOpen: setOpen
170
172
  }
171
- }, mode == 'general' && /*#__PURE__*/React.createElement(BizSelect, {
173
+ }, /*#__PURE__*/React.createElement(BizSelect, {
172
174
  className: "".concat(classPrefix, "-type"),
173
175
  theme: "secondary",
174
176
  keyField: "value",
@@ -177,11 +179,9 @@ var BizDatePicker = function BizDatePicker(_ref) {
177
179
  options: typeList,
178
180
  onChange: function onChange(type) {
179
181
  setCurrentType(type);
180
- if (type.value === 'custom') {
181
- setDateRange(getDateRange(DatePickerTypes.Unit.day, 7, includeToday));
182
- }
183
182
  if (type.value === 'hour') {
184
183
  setDateRange(getDateRange(DatePickerTypes.Unit.day, 1, includeToday));
184
+ setRelative([1, 1]);
185
185
  }
186
186
  if (type.value === 'day') {
187
187
  setDateRange(getDateRange(DatePickerTypes.Unit.day, 7, includeToday));
@@ -199,18 +199,24 @@ var BizDatePicker = function BizDatePicker(_ref) {
199
199
  setDateRange(getDateRange(DatePickerTypes.Unit.quarter, 1, includeToday));
200
200
  setRelative([1, includeToday ? 0 : 1]);
201
201
  }
202
+ if (type.value == 'custom') {
203
+ setRelative(undefined);
204
+ }
202
205
  }
203
206
  }), /*#__PURE__*/React.createElement(Popover, {
204
207
  overlayClassName: "".concat(classPrefix, "-input-popover"),
205
208
  open: open,
206
209
  placement: "bottomLeft",
207
210
  trigger: "click",
211
+ destroyTooltipOnHide: true,
208
212
  content: /*#__PURE__*/React.createElement(PopoverContent, {
209
213
  setDateRange: setDateRange,
210
214
  setOpen: setOpen,
211
215
  selectRange: selectRange,
216
+ selectRangeUnit: selectRangeUnit,
212
217
  timeRangeOpen: timeRangeOpen,
213
- currentType: currentType.value
218
+ currentType: currentType.value,
219
+ relative: relative
214
220
  }),
215
221
  onOpenChange: function onOpenChange() {
216
222
  return setOpen(!open);
@@ -225,14 +231,13 @@ var BizDatePicker = function BizDatePicker(_ref) {
225
231
  }, /*#__PURE__*/React.createElement(IconFont, {
226
232
  type: "rili-2",
227
233
  size: 14
228
- }), /*#__PURE__*/React.createElement("span", null, currentType.value == DatePickerTypes.Unit.hour ? label ? label : dateRange === null || dateRange === void 0 ? void 0 : dateRange.begin : relative ? '最近' + label : (dateRange === null || dateRange === void 0 ? void 0 : dateRange.begin) + ' 至 ' + (dateRange === null || dateRange === void 0 ? void 0 : dateRange.end))), /*#__PURE__*/React.createElement(IconFont, {
234
+ }), /*#__PURE__*/React.createElement("span", null, renderLabel())), /*#__PURE__*/React.createElement(IconFont, {
229
235
  type: "xiangxia",
230
236
  size: 14
231
237
  })))));
232
238
  };
233
239
  BizDatePicker.defaultProps = {
234
240
  includeToday: true,
235
- mode: 'general',
236
241
  dateTypeList: [DatePickerTypes.Unit.hour, DatePickerTypes.Unit.day, DatePickerTypes.Unit.week, DatePickerTypes.Unit.month]
237
242
  };
238
243
  export default BizDatePicker;
@@ -6,6 +6,8 @@ interface PopoverContent {
6
6
  timeRangeOpen?: number;
7
7
  selectRange?: number;
8
8
  currentType?: DatePickerTypes.Unit;
9
+ relative?: any[];
10
+ selectRangeUnit?: 'days' | 'weeks' | 'months' | 'quarter';
9
11
  }
10
12
  declare const _default: (props: PopoverContent) => React.JSX.Element;
11
13
  export default _default;
@@ -9,20 +9,23 @@ import React, { useRef } from 'react';
9
9
  import PickerShortcut from './shortcut';
10
10
  import BizDate from './datePicker';
11
11
  import { classPrefix } from '.';
12
+ import { DatePickerTypes } from './types';
12
13
  export default (function (props) {
13
14
  var selectRange = props.selectRange,
14
15
  setDateRange = props.setDateRange,
15
16
  setOpen = props.setOpen,
16
- currentType = props.currentType;
17
+ currentType = props.currentType,
18
+ relative = props.relative,
19
+ selectRangeUnit = props.selectRangeUnit;
17
20
  var ref = useRef();
18
21
  return /*#__PURE__*/React.createElement(Tabs, {
19
- defaultActiveKey: "1"
20
- }, /*#__PURE__*/React.createElement(Tabs.TabPane, {
22
+ defaultActiveKey: relative ? '1' : '2'
23
+ }, currentType != DatePickerTypes.Unit.custom && /*#__PURE__*/React.createElement(Tabs.TabPane, {
21
24
  tab: "\u6700\u8FD1",
22
25
  key: "1"
23
26
  }, /*#__PURE__*/React.createElement(PickerShortcut, {
24
27
  selectRange: selectRange,
25
- currentType: currentType
28
+ selectRangeUnit: selectRangeUnit
26
29
  })), /*#__PURE__*/React.createElement(Tabs.TabPane, {
27
30
  tab: "\u81EA\u5B9A\u4E49",
28
31
  key: "2"
@@ -40,7 +43,9 @@ export default (function (props) {
40
43
  if (ref.current) {
41
44
  var _ref$current;
42
45
  var dateValue = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getDateValue();
43
- setDateRange(dateValue);
46
+ if (dateValue === null || dateValue === void 0 ? void 0 : dateValue.begin) {
47
+ setDateRange(dateValue);
48
+ }
44
49
  setOpen(false);
45
50
  }
46
51
  }
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import { DatePickerTypes } from './types';
3
2
  declare const PickerShortcut: React.FC<{
4
3
  selectRange?: number;
5
- currentType?: DatePickerTypes.Unit;
4
+ selectRangeUnit?: string;
6
5
  }>;
7
6
  export default PickerShortcut;
@@ -8,29 +8,20 @@ import React, { useContext, useEffect, useState } from 'react';
8
8
  import { DatePickerTypes } from './types';
9
9
  import { classPrefix } from '.';
10
10
  import DatePickerContext from './context';
11
- import moment from 'moment';
12
- import { getDateRange, getTypeList } from './utils';
11
+ import { DateMaxMap, DateOptionMap, DateSingleMap, getDateRange, getTypeList } from './utils';
13
12
  import { Button, InputNumber } from 'antd';
14
- var DateOptionMap = {
15
- day: '天',
16
- week: '周',
17
- month: '月',
18
- quarter: '季度'
19
- };
20
13
  var PickerShortcut = function PickerShortcut(_ref) {
21
- var selectRange = _ref.selectRange;
14
+ var selectRange = _ref.selectRange,
15
+ selectRangeUnit = _ref.selectRangeUnit;
22
16
  var _useContext = useContext(DatePickerContext),
23
17
  currentType = _useContext.currentType,
24
- mode = _useContext.mode,
25
18
  includeToday = _useContext.includeToday,
26
- dateRange = _useContext.dateRange,
27
19
  relative = _useContext.relative,
28
20
  setDateRange = _useContext.setDateRange,
29
21
  setRelative = _useContext.setRelative,
30
- setLabel = _useContext.setLabel,
31
22
  setOpen = _useContext.setOpen;
32
- var list = getTypeList(currentType, mode, includeToday);
33
- var _useState = useState(list[0].count),
23
+ var list = getTypeList(currentType, includeToday);
24
+ var _useState = useState(),
34
25
  _useState2 = _slicedToArray(_useState, 2),
35
26
  active = _useState2[0],
36
27
  setActive = _useState2[1];
@@ -39,68 +30,35 @@ var PickerShortcut = function PickerShortcut(_ref) {
39
30
  numbers = _useState4[0],
40
31
  setNumbers = _useState4[1];
41
32
  useEffect(function () {
42
- list = getTypeList(currentType, mode, includeToday);
43
- if (!relative && !dateRange) {
44
- var _active = list[0];
45
- setActive(_active === null || _active === void 0 ? void 0 : _active.count);
46
- setLabel === null || setLabel === void 0 ? void 0 : setLabel(_active === null || _active === void 0 ? void 0 : _active.value);
47
- if (_active && setRelative) {
48
- setRelative([_active === null || _active === void 0 ? void 0 : _active.count, includeToday ? 0 : 1]);
49
- }
50
- }
51
- }, [currentType, mode, includeToday]);
52
- useEffect(function () {
53
- if (!dateRange || !dateRange.begin || !dateRange.end) return;
54
- var begin = dateRange.begin,
55
- end = dateRange.end;
56
- var item = list.find(function (item) {
57
- var match = getDateRange(currentType, item.count, includeToday);
58
- return moment(begin).isSame(match.begin) && moment(end).isSame(match.end);
59
- });
60
- setActive(item === null || item === void 0 ? void 0 : item.count);
61
- setLabel === null || setLabel === void 0 ? void 0 : setLabel(item === null || item === void 0 ? void 0 : item.value);
62
- if (relative && (!item || item.count !== relative[0]) && setRelative) {
63
- setRelative(undefined);
33
+ list = getTypeList(currentType, includeToday);
34
+ if (relative) {
35
+ setActive(relative[0]);
36
+ setNumbers(relative[0]);
64
37
  }
65
- }, [dateRange]);
66
- useEffect(function () {
67
- if (active === undefined || !setDateRange) return;
68
- setDateRange(getDateRange(currentType, active, includeToday));
69
- setNumbers(active);
70
- }, [active]);
71
- useEffect(function () {
72
- if (!relative || !setDateRange) return;
73
- var _relative = _slicedToArray(relative, 1),
74
- count = _relative[0];
75
- var item = list.find(function (item) {
76
- return item.count === count;
77
- });
78
- setActive(item === null || item === void 0 ? void 0 : item.count);
79
- setLabel === null || setLabel === void 0 ? void 0 : setLabel(item === null || item === void 0 ? void 0 : item.value);
80
- setDateRange(getDateRange(currentType, count, includeToday));
81
- }, [relative]);
38
+ }, [currentType, includeToday]);
39
+ var max = selectRange && selectRangeUnit ? Math.floor(selectRange * Reflect.get(DateSingleMap, selectRangeUnit) / Reflect.get(DateSingleMap, currentType)) : Reflect.get(DateMaxMap, currentType);
82
40
  return /*#__PURE__*/React.createElement("div", {
83
41
  className: "".concat(classPrefix, "-shortcut")
84
42
  }, /*#__PURE__*/React.createElement("div", {
85
43
  className: "".concat(classPrefix, "-list")
86
- }, mode !== 'superSimple' && /*#__PURE__*/React.createElement(React.Fragment, null, list.map(function (item, index) {
44
+ }, list.map(function (item, index) {
87
45
  return /*#__PURE__*/React.createElement("div", {
88
46
  key: index,
89
47
  className: "".concat(classPrefix, "-item ").concat(active === item.count ? 'active' : ''),
90
48
  onClick: function onClick() {
91
49
  setActive(item.count);
92
- setLabel === null || setLabel === void 0 ? void 0 : setLabel(item === null || item === void 0 ? void 0 : item.value);
93
50
  if (setRelative) setRelative([item.count, includeToday ? 0 : 1]);
51
+ setDateRange === null || setDateRange === void 0 ? void 0 : setDateRange(getDateRange(currentType, item.count, includeToday));
94
52
  setOpen === null || setOpen === void 0 ? void 0 : setOpen(false);
95
53
  }
96
54
  }, item.value);
97
- }))), currentType !== DatePickerTypes.Unit.hour && /*#__PURE__*/React.createElement("div", {
55
+ })), ![DatePickerTypes.Unit.hour, DatePickerTypes.Unit.quarter].includes(currentType) && /*#__PURE__*/React.createElement("div", {
98
56
  className: "".concat(classPrefix, "-list-relative")
99
57
  }, /*#__PURE__*/React.createElement("div", {
100
58
  className: "".concat(classPrefix, "-list-relative-content")
101
59
  }, /*#__PURE__*/React.createElement("span", null, "\u8FD1"), /*#__PURE__*/React.createElement(InputNumber, {
102
60
  min: 1,
103
- max: currentType == DatePickerTypes.Unit.month ? selectRange || 12 : selectRange || 365,
61
+ max: max,
104
62
  controls: false,
105
63
  style: {
106
64
  width: '58px'
@@ -112,8 +70,12 @@ var PickerShortcut = function PickerShortcut(_ref) {
112
70
  }), /*#__PURE__*/React.createElement("span", null, Reflect.get(DateOptionMap, currentType))), /*#__PURE__*/React.createElement(Button, {
113
71
  type: "primary",
114
72
  onClick: function onClick() {
115
- if (!setDateRange) return;
116
- setDateRange(getDateRange(currentType, numbers, includeToday));
73
+ if (!numbers) {
74
+ return;
75
+ }
76
+ var date = getDateRange(currentType, numbers, includeToday);
77
+ setDateRange === null || setDateRange === void 0 ? void 0 : setDateRange(date);
78
+ setRelative === null || setRelative === void 0 ? void 0 : setRelative([numbers, includeToday ? 0 : 1]);
117
79
  setOpen === null || setOpen === void 0 ? void 0 : setOpen(false);
118
80
  }
119
81
  }, "\u786E\u8BA4")));
@@ -24,7 +24,6 @@ export declare namespace DatePickerTypes {
24
24
  selectRangeUnit?: 'days' | 'weeks' | 'months' | 'quarter';
25
25
  onChange?: (data: Value) => void;
26
26
  onOpenChange?: (data: boolean) => void;
27
- mode?: 'general' | 'simple' | 'superSimple';
28
27
  dateTypeList?: Unit[];
29
28
  }
30
29
  interface Option {
@@ -1,9 +1,30 @@
1
1
  import moment from 'moment';
2
2
  import { DatePickerTypes } from './types';
3
- import { DatePickerContextProps } from './context';
4
3
  export declare const getDateRange: (type: DatePickerTypes.Unit, count: number, includeToday: boolean) => {
5
4
  begin: string;
6
5
  end: string;
7
6
  };
8
7
  export declare const isTodayInRange: (_startDate: moment.Moment, _endDate: moment.Moment) => boolean;
9
- export declare const getTypeList: (currentType: DatePickerTypes.Unit, mode: DatePickerContextProps['mode'], includeToday: boolean) => DatePickerTypes.ListOption[];
8
+ export declare const getTypeList: (currentType: DatePickerTypes.Unit, includeToday: boolean) => DatePickerTypes.ListOption[];
9
+ export declare const DateOptionMap: {
10
+ day: string;
11
+ week: string;
12
+ month: string;
13
+ quarter: string;
14
+ };
15
+ export declare const DateMaxMap: {
16
+ day: number;
17
+ week: number;
18
+ month: number;
19
+ quarter: number;
20
+ };
21
+ export declare const DateSingleMap: {
22
+ day: number;
23
+ days: number;
24
+ week: number;
25
+ weeks: number;
26
+ month: number;
27
+ months: number;
28
+ quarter: number;
29
+ quarters: number;
30
+ };
@@ -2,7 +2,6 @@ import moment from 'moment';
2
2
  import { DatePickerTypes } from './types';
3
3
  function getAbsoluteDate(unit, count, maxDate) {
4
4
  var res = {};
5
- var dayTime = 24 * 60 * 60 * 1000;
6
5
  switch (unit) {
7
6
  case DatePickerTypes.Unit.hour:
8
7
  res.endDate = res.startDate = moment().subtract(count, 'days').toDate();
@@ -13,20 +12,15 @@ function getAbsoluteDate(unit, count, maxDate) {
13
12
  break;
14
13
  case DatePickerTypes.Unit.week:
15
14
  res.endDate = maxDate;
16
- var firstOfWeek = new Date(maxDate.getTime() - (maxDate.getDay() - 1) * dayTime);
17
- res.startDate = new Date(firstOfWeek.getTime() - count * 7 * dayTime);
15
+ res.startDate = moment(maxDate).subtract(count, 'weeks').toDate();
18
16
  break;
19
17
  case DatePickerTypes.Unit.month:
20
18
  res.endDate = maxDate;
21
- var firstOfMonth = new Date(maxDate.getTime() - (maxDate.getDate() - 1) * dayTime);
22
- firstOfMonth.setMonth(firstOfMonth.getMonth() - count);
23
- res.startDate = new Date(firstOfMonth);
19
+ res.startDate = moment(maxDate).subtract(count, 'months').toDate();
24
20
  break;
25
21
  case DatePickerTypes.Unit.quarter:
26
22
  res.endDate = maxDate;
27
- var firstOfQuarter = new Date(maxDate.getTime() - (maxDate.getDate() - 1) * dayTime);
28
- firstOfQuarter.setMonth(firstOfQuarter.getMonth() - firstOfQuarter.getMonth() % 3 - 3 * (count - 1));
29
- res.startDate = new Date(firstOfQuarter);
23
+ res.startDate = moment(maxDate).subtract(count, 'quarters').toDate();
30
24
  break;
31
25
  }
32
26
  return res;
@@ -45,7 +39,7 @@ export var isTodayInRange = function isTodayInRange(_startDate, _endDate) {
45
39
  var dateToCheck = moment(new Date()).format('x');
46
40
  return dateToCheck >= startDate && dateToCheck <= endDate;
47
41
  };
48
- export var getTypeList = function getTypeList(currentType, mode, includeToday) {
42
+ export var getTypeList = function getTypeList(currentType, includeToday) {
49
43
  var _shortcuts$find;
50
44
  var shortcuts = [{
51
45
  label: '按小时',
@@ -61,12 +55,6 @@ export var getTypeList = function getTypeList(currentType, mode, includeToday) {
61
55
  label: '按天',
62
56
  value: DatePickerTypes.Unit.day,
63
57
  children: [{
64
- value: '今天',
65
- count: 0
66
- }, {
67
- value: '昨天',
68
- count: 1
69
- }, {
70
58
  value: '7天',
71
59
  count: 7
72
60
  }, {
@@ -120,10 +108,32 @@ export var getTypeList = function getTypeList(currentType, mode, includeToday) {
120
108
  return item.value === currentType;
121
109
  })) === null || _shortcuts$find === void 0 ? void 0 : _shortcuts$find.children) || []).filter(function (item) {
122
110
  if (currentType === 'day') {
123
- if ((mode === 'general' || !includeToday) && (item.count === 0 || item.count === 1)) return false;
111
+ if (!includeToday && (item.count === 0 || item.count === 1)) return false;
124
112
  return true;
125
113
  }
126
114
  return true;
127
115
  });
128
116
  return list;
117
+ };
118
+ export var DateOptionMap = {
119
+ day: '天',
120
+ week: '周',
121
+ month: '个月',
122
+ quarter: '个季度'
123
+ };
124
+ export var DateMaxMap = {
125
+ day: 365,
126
+ week: 52,
127
+ month: 12,
128
+ quarter: 4
129
+ };
130
+ export var DateSingleMap = {
131
+ day: 1,
132
+ days: 1,
133
+ week: 7,
134
+ weeks: 7,
135
+ month: 30,
136
+ months: 30,
137
+ quarter: 91,
138
+ quarters: 91
129
139
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zgfe/business-lib",
3
- "version": "1.2.51-ljy.2",
3
+ "version": "1.2.51-ljy.21",
4
4
  "module": "es/index.js",
5
5
  "typings": "es/index.d.ts",
6
6
  "files": [
@@ -55,7 +55,7 @@
55
55
  "react": "^16.12.0 || ^17.0.0",
56
56
  "yorkie": "^2.0.0"
57
57
  },
58
- "gitHead": "4ec2943a33bb54f7b6035e846dea5cc65dc4e275",
58
+ "gitHead": "f173c31214c9d396af612eb15313565f7f46e3dd",
59
59
  "gitHooks": {
60
60
  "pre-commit": "lint-staged"
61
61
  }