assui 2.1.1 → 2.1.2
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.
- package/es/customize-range-picker/defaultRadioList.d.ts +24 -0
- package/es/customize-range-picker/defaultRadioList.js +79 -0
- package/es/customize-range-picker/index.d.ts +15 -0
- package/es/customize-range-picker/index.js +172 -0
- package/es/customize-range-picker/style/index.css +1821 -0
- package/es/customize-range-picker/style/index.d.ts +1 -0
- package/es/customize-range-picker/style/index.js +1 -0
- package/es/customize-range-picker/style/index.less +46 -0
- package/es/label-customize-range-picker/defaultRadioList.js +2 -2
- package/es/label-customize-range-picker/index.js +5 -3
- package/es/label-customize-range-picker/style/index.css +8 -8
- package/es/label-customize-range-picker/style/index.less +5 -3
- package/lib/customize-range-picker/defaultRadioList.d.ts +24 -0
- package/lib/customize-range-picker/defaultRadioList.js +93 -0
- package/lib/customize-range-picker/index.d.ts +15 -0
- package/lib/customize-range-picker/index.js +228 -0
- package/lib/customize-range-picker/style/index.css +1821 -0
- package/lib/customize-range-picker/style/index.d.ts +1 -0
- package/lib/customize-range-picker/style/index.js +7 -0
- package/lib/customize-range-picker/style/index.less +46 -0
- package/lib/label-customize-range-picker/defaultRadioList.js +2 -2
- package/lib/label-customize-range-picker/index.js +5 -3
- package/lib/label-customize-range-picker/style/index.css +8 -8
- package/lib/label-customize-range-picker/style/index.less +5 -3
- package/package.json +4 -4
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Moment } from 'moment';
|
|
2
|
+
export declare enum dateTypeEnum {
|
|
3
|
+
TODAY = 1,
|
|
4
|
+
YESTERDAY = 2,
|
|
5
|
+
WEEK = 3,
|
|
6
|
+
LAST_WEEK = 4,
|
|
7
|
+
MONTH = 5,
|
|
8
|
+
LAST_MONTH = 6,
|
|
9
|
+
QUARTER = 7,
|
|
10
|
+
LAST_QUARTER = 8,
|
|
11
|
+
BEFORE_7_DAY = 9,
|
|
12
|
+
BEFORE_14_DAY = 10,
|
|
13
|
+
BEFORE_30_DAY = 11,
|
|
14
|
+
BEFORE_90_DAY = 12,
|
|
15
|
+
BEFORE_180_DAY = 13,
|
|
16
|
+
BEFORE_365_DAY = 14
|
|
17
|
+
}
|
|
18
|
+
export declare type RadioListType = {
|
|
19
|
+
key: string | number | dateTypeEnum;
|
|
20
|
+
text: string;
|
|
21
|
+
value: [Moment, Moment];
|
|
22
|
+
};
|
|
23
|
+
declare const defaultRadioList: RadioListType[];
|
|
24
|
+
export default defaultRadioList;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
var now = moment();
|
|
3
|
+
export var dateTypeEnum;
|
|
4
|
+
|
|
5
|
+
(function (dateTypeEnum) {
|
|
6
|
+
dateTypeEnum[dateTypeEnum["TODAY"] = 1] = "TODAY";
|
|
7
|
+
dateTypeEnum[dateTypeEnum["YESTERDAY"] = 2] = "YESTERDAY";
|
|
8
|
+
dateTypeEnum[dateTypeEnum["WEEK"] = 3] = "WEEK";
|
|
9
|
+
dateTypeEnum[dateTypeEnum["LAST_WEEK"] = 4] = "LAST_WEEK";
|
|
10
|
+
dateTypeEnum[dateTypeEnum["MONTH"] = 5] = "MONTH";
|
|
11
|
+
dateTypeEnum[dateTypeEnum["LAST_MONTH"] = 6] = "LAST_MONTH";
|
|
12
|
+
dateTypeEnum[dateTypeEnum["QUARTER"] = 7] = "QUARTER";
|
|
13
|
+
dateTypeEnum[dateTypeEnum["LAST_QUARTER"] = 8] = "LAST_QUARTER";
|
|
14
|
+
dateTypeEnum[dateTypeEnum["BEFORE_7_DAY"] = 9] = "BEFORE_7_DAY";
|
|
15
|
+
dateTypeEnum[dateTypeEnum["BEFORE_14_DAY"] = 10] = "BEFORE_14_DAY";
|
|
16
|
+
dateTypeEnum[dateTypeEnum["BEFORE_30_DAY"] = 11] = "BEFORE_30_DAY";
|
|
17
|
+
dateTypeEnum[dateTypeEnum["BEFORE_90_DAY"] = 12] = "BEFORE_90_DAY";
|
|
18
|
+
dateTypeEnum[dateTypeEnum["BEFORE_180_DAY"] = 13] = "BEFORE_180_DAY";
|
|
19
|
+
dateTypeEnum[dateTypeEnum["BEFORE_365_DAY"] = 14] = "BEFORE_365_DAY";
|
|
20
|
+
})(dateTypeEnum || (dateTypeEnum = {}));
|
|
21
|
+
|
|
22
|
+
var defaultRadioList = [{
|
|
23
|
+
key: dateTypeEnum.TODAY,
|
|
24
|
+
text: '今日',
|
|
25
|
+
value: [now.clone().startOf('day'), now.clone().endOf('day')]
|
|
26
|
+
}, {
|
|
27
|
+
key: dateTypeEnum.YESTERDAY,
|
|
28
|
+
text: '昨日',
|
|
29
|
+
value: [now.clone().subtract(1, 'day').startOf('day'), now.clone().subtract(1, 'day').endOf('day')]
|
|
30
|
+
}, {
|
|
31
|
+
key: dateTypeEnum.WEEK,
|
|
32
|
+
text: '本周',
|
|
33
|
+
value: [now.clone().startOf('week'), now.clone().endOf('week')]
|
|
34
|
+
}, {
|
|
35
|
+
key: dateTypeEnum.LAST_WEEK,
|
|
36
|
+
text: '上周',
|
|
37
|
+
value: [now.clone().subtract(1, 'week').startOf('week'), now.clone().subtract(1, 'week').endOf('week')]
|
|
38
|
+
}, {
|
|
39
|
+
key: dateTypeEnum.MONTH,
|
|
40
|
+
text: '本月',
|
|
41
|
+
value: [now.clone().startOf('month'), now.clone().endOf('month')]
|
|
42
|
+
}, {
|
|
43
|
+
key: dateTypeEnum.LAST_MONTH,
|
|
44
|
+
text: '上月',
|
|
45
|
+
value: [now.clone().subtract(1, 'month').startOf('month'), now.clone().subtract(1, 'month').endOf('month')]
|
|
46
|
+
}, {
|
|
47
|
+
key: dateTypeEnum.QUARTER,
|
|
48
|
+
text: '本季度',
|
|
49
|
+
value: [now.clone().startOf('quarter'), now.clone().endOf('quarter')]
|
|
50
|
+
}, {
|
|
51
|
+
key: dateTypeEnum.LAST_QUARTER,
|
|
52
|
+
text: '上季度',
|
|
53
|
+
value: [now.clone().subtract(1, 'quarter').startOf('quarter'), now.clone().subtract(1, 'quarter').endOf('quarter')]
|
|
54
|
+
}, {
|
|
55
|
+
key: dateTypeEnum.BEFORE_7_DAY,
|
|
56
|
+
text: '最近7天',
|
|
57
|
+
value: [now.clone().subtract(6, 'day').startOf('day'), now.endOf('day')]
|
|
58
|
+
}, {
|
|
59
|
+
key: dateTypeEnum.BEFORE_14_DAY,
|
|
60
|
+
text: '最近14天',
|
|
61
|
+
value: [now.clone().subtract(13, 'day').startOf('day'), now.endOf('day')]
|
|
62
|
+
}, {
|
|
63
|
+
key: dateTypeEnum.BEFORE_30_DAY,
|
|
64
|
+
text: '最近30天',
|
|
65
|
+
value: [now.clone().subtract(29, 'day').startOf('day'), now.endOf('day')]
|
|
66
|
+
}, {
|
|
67
|
+
key: dateTypeEnum.BEFORE_90_DAY,
|
|
68
|
+
text: '最近90天',
|
|
69
|
+
value: [now.clone().subtract(89, 'day').startOf('day'), now.endOf('day')]
|
|
70
|
+
}, {
|
|
71
|
+
key: dateTypeEnum.BEFORE_180_DAY,
|
|
72
|
+
text: '最近180天',
|
|
73
|
+
value: [now.clone().subtract(179, 'day').startOf('day'), now.endOf('day')]
|
|
74
|
+
}, {
|
|
75
|
+
key: dateTypeEnum.BEFORE_365_DAY,
|
|
76
|
+
text: '最近365天',
|
|
77
|
+
value: [now.clone().subtract(364, 'day').startOf('day'), now.endOf('day')]
|
|
78
|
+
}];
|
|
79
|
+
export default defaultRadioList;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Moment } from 'moment';
|
|
3
|
+
import type { RangePickerProps } from 'antd/lib/date-picker';
|
|
4
|
+
import type { dateTypeEnum } from './defaultRadioList';
|
|
5
|
+
export declare type RadioListType = {
|
|
6
|
+
key: string | number | dateTypeEnum;
|
|
7
|
+
text: string;
|
|
8
|
+
value: [Moment, Moment];
|
|
9
|
+
};
|
|
10
|
+
export interface CustomizeRangePickerProps extends Omit<RangePickerProps, ''> {
|
|
11
|
+
customizeTimeList?: dateTypeEnum[];
|
|
12
|
+
radioList?: RadioListType[];
|
|
13
|
+
}
|
|
14
|
+
declare const CustomizeRangePicker: React.FC<CustomizeRangePickerProps>;
|
|
15
|
+
export default CustomizeRangePicker;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
|
|
6
|
+
for (var p in s) {
|
|
7
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
var __rest = this && this.__rest || function (s, e) {
|
|
18
|
+
var t = {};
|
|
19
|
+
|
|
20
|
+
for (var p in s) {
|
|
21
|
+
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
25
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
26
|
+
}
|
|
27
|
+
return t;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var __read = this && this.__read || function (o, n) {
|
|
31
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
32
|
+
if (!m) return o;
|
|
33
|
+
var i = m.call(o),
|
|
34
|
+
r,
|
|
35
|
+
ar = [],
|
|
36
|
+
e;
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
|
|
40
|
+
ar.push(r.value);
|
|
41
|
+
}
|
|
42
|
+
} catch (error) {
|
|
43
|
+
e = {
|
|
44
|
+
error: error
|
|
45
|
+
};
|
|
46
|
+
} finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
} finally {
|
|
50
|
+
if (e) throw e.error;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return ar;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
import React, { useState, useEffect } from 'react';
|
|
58
|
+
import { Radio, DatePicker, Checkbox } from 'antd';
|
|
59
|
+
import { useControllableValue } from 'ahooks';
|
|
60
|
+
import defaultRadioList from './defaultRadioList';
|
|
61
|
+
var RangePicker = DatePicker.RangePicker;
|
|
62
|
+
|
|
63
|
+
var CustomizeRangePicker = function CustomizeRangePicker(props) {
|
|
64
|
+
var customizeTimeList = props.customizeTimeList,
|
|
65
|
+
radioList = props.radioList,
|
|
66
|
+
options = __rest(props, ["customizeTimeList", "radioList"]);
|
|
67
|
+
|
|
68
|
+
var _a = __read(useControllableValue(props), 2),
|
|
69
|
+
date = _a[0],
|
|
70
|
+
setDate = _a[1];
|
|
71
|
+
|
|
72
|
+
var _b = __read(useState(false), 2),
|
|
73
|
+
open = _b[0],
|
|
74
|
+
setOpen = _b[1];
|
|
75
|
+
|
|
76
|
+
var _c = __read(useState(false), 2),
|
|
77
|
+
isVisiblePanel = _c[0],
|
|
78
|
+
setIsVisiblePanel = _c[1];
|
|
79
|
+
|
|
80
|
+
var _d = __read(useState(), 2),
|
|
81
|
+
radioKey = _d[0],
|
|
82
|
+
setRadioKey = _d[1];
|
|
83
|
+
|
|
84
|
+
var dataSource = radioList !== null && radioList !== void 0 ? radioList : defaultRadioList;
|
|
85
|
+
useEffect(function () {
|
|
86
|
+
var foundItem = dataSource.find(function (item) {
|
|
87
|
+
if (!date) return false;
|
|
88
|
+
|
|
89
|
+
var _a = __read(item.value, 2),
|
|
90
|
+
startTime = _a[0],
|
|
91
|
+
endTime = _a[1];
|
|
92
|
+
|
|
93
|
+
var _b = __read(date || [], 2),
|
|
94
|
+
defaultStartTime = _b[0],
|
|
95
|
+
defaultEndTime = _b[1];
|
|
96
|
+
|
|
97
|
+
if (startTime.isSame(defaultStartTime, 'day') && endTime.isSame(defaultEndTime, 'day')) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return false;
|
|
102
|
+
});
|
|
103
|
+
var data = foundItem ? foundItem.key : null;
|
|
104
|
+
setRadioKey(data);
|
|
105
|
+
}, [date]);
|
|
106
|
+
|
|
107
|
+
var onDiyTimeChange = function onDiyTimeChange(event) {
|
|
108
|
+
var checked = event.target.checked;
|
|
109
|
+
setIsVisiblePanel(checked);
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
var onRadioChange = function onRadioChange(event) {
|
|
113
|
+
var value = event.target.value;
|
|
114
|
+
setRadioKey(value);
|
|
115
|
+
var selectRadioInfo = dataSource.find(function (item) {
|
|
116
|
+
return item.key === value;
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
if (selectRadioInfo) {
|
|
120
|
+
setDate(selectRadioInfo === null || selectRadioInfo === void 0 ? void 0 : selectRadioInfo.value);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
setOpen(false);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
var onOpenChange = function onOpenChange(nextOpen) {
|
|
127
|
+
setOpen(nextOpen);
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
var list = radioList !== null && radioList !== void 0 ? radioList : defaultRadioList.filter(function (item) {
|
|
131
|
+
return customizeTimeList ? customizeTimeList.includes(item.key) : true;
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
var panelRender = function panelRender(panel) {
|
|
135
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
136
|
+
className: "customize-range-picker-panel"
|
|
137
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
138
|
+
className: "check-wrapper"
|
|
139
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
140
|
+
className: "customize-select"
|
|
141
|
+
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
142
|
+
onChange: onDiyTimeChange
|
|
143
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
144
|
+
className: "customize-select-text"
|
|
145
|
+
}, "\u81EA\u5B9A\u4E49\u65F6\u95F4"))), isVisiblePanel ? /*#__PURE__*/React.createElement("div", {
|
|
146
|
+
className: "panel"
|
|
147
|
+
}, panel) : /*#__PURE__*/React.createElement("div", {
|
|
148
|
+
className: "pick-box"
|
|
149
|
+
}, /*#__PURE__*/React.createElement(Radio.Group, {
|
|
150
|
+
onChange: onRadioChange,
|
|
151
|
+
value: radioKey
|
|
152
|
+
}, list.map(function (_a) {
|
|
153
|
+
var key = _a.key,
|
|
154
|
+
text = _a.text;
|
|
155
|
+
return /*#__PURE__*/React.createElement(Radio, {
|
|
156
|
+
className: "radio",
|
|
157
|
+
key: key,
|
|
158
|
+
value: key
|
|
159
|
+
}, text);
|
|
160
|
+
}))));
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
return /*#__PURE__*/React.createElement(RangePicker, __assign({
|
|
164
|
+
value: date,
|
|
165
|
+
onOpenChange: onOpenChange,
|
|
166
|
+
open: open,
|
|
167
|
+
allowClear: false,
|
|
168
|
+
panelRender: panelRender
|
|
169
|
+
}, options));
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export default CustomizeRangePicker;
|