zartui 2.1.6 → 2.1.8
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/action-sheet/index.js +15 -26
- package/es/area/index.js +5 -41
- package/es/avatar/index.js +3 -16
- package/es/back-top/index.js +4 -19
- package/es/badge/index.js +4 -12
- package/es/button/index.js +20 -40
- package/es/calendar/components/Header.js +3 -12
- package/es/calendar/components/Month.js +12 -65
- package/es/calendar/index.js +23 -94
- package/es/calendar/types.js +9 -15
- package/es/calendar/utils.js +5 -16
- package/es/cascader/index.js +4 -37
- package/es/cell/index.js +19 -37
- package/es/cell-group/index.js +5 -8
- package/es/checkbox/index.js +4 -11
- package/es/checkbox-group/index.js +4 -9
- package/es/col/index.js +6 -11
- package/es/collapse/index.js +2 -5
- package/es/collapse-item/index.js +19 -35
- package/es/count-down/index.js +2 -15
- package/es/count-down/utils.js +3 -10
- package/es/datetime-picker/DatePicker.js +12 -70
- package/es/datetime-picker/TimePicker.js +10 -23
- package/es/datetime-picker/index.js +2 -26
- package/es/datetime-picker/shared.js +5 -21
- package/es/datetime-picker/utils.js +0 -5
- package/es/dialog/Dialog.js +6 -21
- package/es/dialog/index.js +0 -16
- package/es/divider/index.js +5 -6
- package/es/dropdown-item/index.js +13 -39
- package/es/dropdown-menu/index.js +4 -9
- package/es/empty/images/Developing.js +0 -3
- package/es/empty/images/EmptyInterface.js +0 -3
- package/es/empty/images/EmptyResult.js +0 -3
- package/es/empty/images/FindNull.js +0 -3
- package/es/empty/images/NetworkError.js +0 -3
- package/es/empty/images/NotFound.js +0 -3
- package/es/empty/images/ReportSuccess.js +0 -3
- package/es/empty/images/Restricted.js +0 -3
- package/es/empty/images/ServerError.js +0 -3
- package/es/empty/index.js +3 -11
- package/es/field/index.js +21 -86
- package/es/fold-dialog/index.js +5 -20
- package/es/form/index.js +2 -18
- package/es/grid/index.js +2 -6
- package/es/grid-item/index.js +18 -30
- package/es/hierarchy-select/breadcrumb.js +2 -6
- package/es/hierarchy-select/index.js +4 -14
- package/es/hierarchy-select/markList.js +5 -30
- package/es/hierarchy-select/svg/SubIcon.js +0 -1
- package/es/icon/index.js +9 -13
- package/es/image/index.js +3 -19
- package/es/image-preview/ImagePreview.js +4 -8
- package/es/image-preview/ImagePreviewItem.js +14 -30
- package/es/image-preview/index.js +0 -12
- package/es/image-preview/shared.js +2 -4
- package/es/index-anchor/index.js +2 -6
- package/es/index-bar/IndexIndicate.js +0 -1
- package/es/index-bar/index.js +7 -28
- package/es/index.js +1 -4
- package/es/info/index.js +6 -8
- package/es/list/index.js +11 -27
- package/es/loading/index.js +7 -15
- package/es/locale/index.js +0 -2
- package/es/media-picker/index.js +35 -128
- package/es/media-picker/media-util.js +2 -5
- package/es/media-picker/type.js +9 -14
- package/es/media-picker/wx-util.js +0 -1
- package/es/media-player/index.js +7 -19
- package/es/mixins/bind-event.js +0 -3
- package/es/mixins/checkbox.js +5 -11
- package/es/mixins/click-outside.js +0 -2
- package/es/mixins/close-on-popstate.js +0 -1
- package/es/mixins/field.js +0 -2
- package/es/mixins/popup/index.js +12 -28
- package/es/mixins/popup/overlay.js +1 -11
- package/es/mixins/portal.js +2 -8
- package/es/mixins/relation.js +0 -8
- package/es/mixins/slots.js +1 -4
- package/es/mixins/touch.js +4 -9
- package/es/multiple-picker/MultiplePickerOptions.js +3 -20
- package/es/multiple-picker/index.js +5 -17
- package/es/nav-bar/index.js +4 -12
- package/es/notice-bar/index.js +10 -28
- package/es/number-keyboard/Key.js +2 -10
- package/es/number-keyboard/index.js +4 -19
- package/es/overlay/index.js +5 -8
- package/es/password-input/index.js +10 -16
- package/es/picker/PickerColumn.js +21 -56
- package/es/picker/index.js +12 -45
- package/es/popover/index.js +65 -90
- package/es/popup/index.js +5 -21
- package/es/pull-refresh/index.js +10 -29
- package/es/radio/index.js +2 -4
- package/es/radio-group/index.js +2 -4
- package/es/rate/index.js +12 -26
- package/es/row/index.js +3 -9
- package/es/search/index.js +9 -15
- package/es/signature/bezier.js +13 -20
- package/es/signature/force-landscape.js +0 -5
- package/es/signature/index.js +5 -24
- package/es/signature/point.js +1 -6
- package/es/signature/throttle.js +1 -10
- package/es/skeleton/index.js +5 -15
- package/es/slider/index.js +19 -55
- package/es/step/index.js +5 -12
- package/es/stepper/index.js +11 -39
- package/es/steps/index.js +2 -4
- package/es/sticky/index.js +8 -50
- package/es/swipe/index.js +19 -62
- package/es/swipe-cell/index.js +7 -23
- package/es/swipe-item/index.js +10 -19
- package/es/switch/index.js +8 -10
- package/es/switch/shared.js +1 -0
- package/es/switch-cell/index.js +7 -7
- package/es/tab/index.js +4 -15
- package/es/tabbar/index.js +4 -14
- package/es/tabbar-item/index.js +7 -15
- package/es/table/index.js +5 -28
- package/es/table/type.js +3 -4
- package/es/tabs/Content.js +5 -9
- package/es/tabs/Title.js +11 -20
- package/es/tabs/index.js +16 -51
- package/es/tabs/utils.js +0 -8
- package/es/tag/index.js +13 -17
- package/es/text-ellipsis/index.js +25 -42
- package/es/timeline/index.js +2 -25
- package/es/toast/Toast.js +11 -23
- package/es/toast/index.js +6 -33
- package/es/toast/lock-click.js +0 -2
- package/es/uploader/index.js +11 -62
- package/es/uploader/utils.js +0 -10
- package/es/utils/constant.js +2 -1
- package/es/utils/create/bem.js +1 -5
- package/es/utils/create/component.js +4 -8
- package/es/utils/create/i18n.js +0 -2
- package/es/utils/deep-assign.js +0 -4
- package/es/utils/deep-clone.js +0 -3
- package/es/utils/dom/event.js +2 -5
- package/es/utils/dom/node.js +0 -1
- package/es/utils/dom/raf.js +7 -6
- package/es/utils/dom/reset-scroll.js +2 -1
- package/es/utils/dom/scroll.js +8 -17
- package/es/utils/dom/style.js +3 -2
- package/es/utils/easings.js +2 -4
- package/es/utils/format/date-util.js +54 -122
- package/es/utils/format/number.js +2 -11
- package/es/utils/format/string.js +0 -3
- package/es/utils/format/unit.js +2 -12
- package/es/utils/functional.js +6 -9
- package/es/utils/getScroll.js +0 -5
- package/es/utils/index.js +3 -5
- package/es/utils/interceptor.js +2 -4
- package/es/utils/media/image-util.js +7 -19
- package/es/utils/raf.js +4 -12
- package/es/utils/router.js +7 -6
- package/es/utils/scrollTo.js +10 -15
- package/es/utils/validate/number.js +2 -2
- package/es/utils/vnodes.js +2 -8
- package/lib/action-sheet/index.js +12 -37
- package/lib/area/index.js +7 -48
- package/lib/avatar/index.js +5 -21
- package/lib/back-top/index.js +6 -28
- package/lib/badge/index.js +6 -18
- package/lib/button/index.js +20 -52
- package/lib/calendar/FastForwardImg.js +2 -3
- package/lib/calendar/SlowForwardImg.js +2 -3
- package/lib/calendar/components/Header.js +5 -21
- package/lib/calendar/components/Month.js +14 -74
- package/lib/calendar/index.js +23 -109
- package/lib/calendar/types.js +11 -22
- package/lib/calendar/utils.js +18 -46
- package/lib/cascader/index.js +6 -49
- package/lib/cell/index.js +19 -50
- package/lib/cell/shared.js +2 -3
- package/lib/cell-group/index.js +6 -17
- package/lib/checkbox/index.js +6 -17
- package/lib/checkbox-group/index.js +6 -16
- package/lib/col/index.js +8 -17
- package/lib/collapse/index.js +4 -11
- package/lib/collapse-item/index.js +20 -46
- package/lib/count-down/index.js +4 -22
- package/lib/count-down/utils.js +5 -17
- package/lib/datetime-picker/DatePicker.js +14 -84
- package/lib/datetime-picker/TimePicker.js +12 -33
- package/lib/datetime-picker/index.js +7 -41
- package/lib/datetime-picker/shared.js +9 -35
- package/lib/datetime-picker/utils.js +2 -11
- package/lib/dialog/Dialog.js +8 -31
- package/lib/dialog/index.js +1 -24
- package/lib/divider/index.js +6 -14
- package/lib/dropdown-item/index.js +14 -52
- package/lib/dropdown-menu/index.js +6 -18
- package/lib/empty/context.js +2 -3
- package/lib/empty/images/Developing.js +2 -9
- package/lib/empty/images/EmptyInterface.js +2 -9
- package/lib/empty/images/EmptyResult.js +2 -9
- package/lib/empty/images/FindNull.js +2 -9
- package/lib/empty/images/NetworkError.js +2 -9
- package/lib/empty/images/NotFound.js +2 -9
- package/lib/empty/images/ReportSuccess.js +2 -9
- package/lib/empty/images/Restricted.js +2 -9
- package/lib/empty/images/ServerError.js +2 -9
- package/lib/empty/index.js +5 -26
- package/lib/field/ClearIcon.js +2 -3
- package/lib/field/SearchIcon.js +2 -3
- package/lib/field/index.js +22 -99
- package/lib/fold-dialog/index.js +7 -25
- package/lib/form/index.js +4 -24
- package/lib/grid/index.js +4 -13
- package/lib/grid-item/index.js +19 -40
- package/lib/hierarchy-select/breadcrumb.js +5 -13
- package/lib/hierarchy-select/index.js +7 -25
- package/lib/hierarchy-select/markList.js +8 -39
- package/lib/hierarchy-select/svg/SubIcon.js +2 -4
- package/lib/icon/index.js +9 -21
- package/lib/image/index.js +4 -25
- package/lib/image-preview/ImagePreview.js +2 -19
- package/lib/image-preview/ImagePreviewItem.js +15 -39
- package/lib/image-preview/index.js +1 -18
- package/lib/image-preview/shared.js +3 -8
- package/lib/index-anchor/index.js +4 -14
- package/lib/index-bar/IndexIndicate.js +2 -4
- package/lib/index-bar/index.js +9 -40
- package/lib/index.js +5 -164
- package/lib/info/index.js +7 -16
- package/lib/lazyload/index.js +1 -5
- package/lib/list/index.js +12 -36
- package/lib/loading/index.js +8 -23
- package/lib/locale/index.js +2 -10
- package/lib/locale/lang/de-DE-formal.js +2 -3
- package/lib/locale/lang/de-DE.js +2 -3
- package/lib/locale/lang/en-US.js +2 -3
- package/lib/locale/lang/es-ES.js +2 -3
- package/lib/locale/lang/fr-FR.js +2 -3
- package/lib/locale/lang/ja-JP.js +2 -3
- package/lib/locale/lang/nb-NO.js +2 -3
- package/lib/locale/lang/ro-RO.js +2 -3
- package/lib/locale/lang/th-TH.js +2 -3
- package/lib/locale/lang/tr-TR.js +2 -3
- package/lib/locale/lang/zh-CN.js +2 -3
- package/lib/locale/lang/zh-HK.js +2 -3
- package/lib/locale/lang/zh-TW.js +2 -3
- package/lib/media-picker/image/DefaultAudioIcon.js +2 -3
- package/lib/media-picker/image/DefaultDocIcon.js +2 -3
- package/lib/media-picker/image/DefaultExcelIcon.js +2 -3
- package/lib/media-picker/image/DefaultFileIcon.js +2 -3
- package/lib/media-picker/image/DefaultPdfIcon.js +2 -3
- package/lib/media-picker/image/DefaultPptIcon.js +2 -3
- package/lib/media-picker/image/DefaultTextIcon.js +2 -3
- package/lib/media-picker/image/DefaultVideoIcon.js +2 -3
- package/lib/media-picker/image/DeleteIcon.js +2 -3
- package/lib/media-picker/image/Img64.js +4 -7
- package/lib/media-picker/image/PickFileIcon.js +2 -3
- package/lib/media-picker/image/PickPhotoIcon.js +2 -3
- package/lib/media-picker/image/ReUpload.js +2 -3
- package/lib/media-picker/image/TakeAudioIcon.js +2 -3
- package/lib/media-picker/image/TakePhotoIcon.js +2 -3
- package/lib/media-picker/image/TakeVideoIcon.js +2 -3
- package/lib/media-picker/index.js +33 -172
- package/lib/media-picker/media-util.js +9 -22
- package/lib/media-picker/type.js +10 -18
- package/lib/media-picker/wx-util.js +4 -15
- package/lib/media-player/index.js +8 -27
- package/lib/mixins/bind-event.js +1 -6
- package/lib/mixins/checkbox.js +8 -21
- package/lib/mixins/click-outside.js +3 -8
- package/lib/mixins/close-on-popstate.js +2 -7
- package/lib/mixins/field.js +2 -5
- package/lib/mixins/popup/context.js +2 -3
- package/lib/mixins/popup/index.js +12 -38
- package/lib/mixins/popup/overlay.js +3 -25
- package/lib/mixins/portal.js +2 -9
- package/lib/mixins/relation.js +0 -11
- package/lib/mixins/slots.js +3 -8
- package/lib/mixins/touch.js +6 -14
- package/lib/multiple-picker/MultiplePickerOptions.js +4 -26
- package/lib/multiple-picker/index.js +7 -29
- package/lib/multiple-picker/shared.js +3 -5
- package/lib/nav-bar/index.js +6 -19
- package/lib/notice-bar/CloseIcon.js +2 -3
- package/lib/notice-bar/MenuIcon.js +2 -3
- package/lib/notice-bar/NoticeIcon.js +2 -3
- package/lib/notice-bar/OpenIcon.js +2 -3
- package/lib/notice-bar/TipIcon.js +2 -3
- package/lib/notice-bar/WarningIcon.js +2 -3
- package/lib/notice-bar/index.js +12 -43
- package/lib/number-keyboard/CollapseIcon.js +2 -3
- package/lib/number-keyboard/DeleteIcon.js +2 -3
- package/lib/number-keyboard/Key.js +4 -20
- package/lib/number-keyboard/index.js +6 -29
- package/lib/overlay/index.js +6 -18
- package/lib/password-input/index.js +11 -25
- package/lib/picker/PickerColumn.js +24 -71
- package/lib/picker/index.js +14 -59
- package/lib/picker/shared.js +3 -5
- package/lib/popover/index.js +65 -104
- package/lib/popup/index.js +7 -30
- package/lib/pull-refresh/index.js +11 -38
- package/lib/radio/index.js +4 -10
- package/lib/radio-group/index.js +4 -11
- package/lib/rate/index.js +13 -34
- package/lib/row/index.js +5 -15
- package/lib/search/index.js +8 -23
- package/lib/signature/bezier.js +14 -25
- package/lib/signature/force-landscape.js +5 -19
- package/lib/signature/index.js +8 -34
- package/lib/signature/point.js +2 -11
- package/lib/signature/throttle.js +1 -11
- package/lib/skeleton/index.js +6 -23
- package/lib/slider/index.js +21 -66
- package/lib/step/index.js +7 -21
- package/lib/stepper/index.js +12 -49
- package/lib/steps/index.js +4 -10
- package/lib/sticky/index.js +10 -62
- package/lib/swipe/index.js +21 -73
- package/lib/swipe-cell/index.js +9 -32
- package/lib/swipe-item/index.js +12 -27
- package/lib/switch/index.js +9 -17
- package/lib/switch/shared.js +3 -4
- package/lib/switch-cell/index.js +7 -18
- package/lib/tab/index.js +6 -24
- package/lib/tabbar/index.js +6 -22
- package/lib/tabbar-item/index.js +7 -24
- package/lib/table/index.js +7 -38
- package/lib/table/type.js +3 -5
- package/lib/tabs/Content.js +7 -18
- package/lib/tabs/Title.js +13 -27
- package/lib/tabs/index.js +17 -68
- package/lib/tabs/utils.js +0 -13
- package/lib/tag/index.js +13 -25
- package/lib/text-ellipsis/index.js +27 -49
- package/lib/timeline/index.js +4 -35
- package/lib/timeline/svg/current.js +2 -3
- package/lib/timeline/svg/pass.js +2 -3
- package/lib/toast/Toast.js +12 -33
- package/lib/toast/index.js +7 -40
- package/lib/toast/lock-click.js +0 -3
- package/lib/toast/svg/SuccessIcon.js +2 -3
- package/lib/toast/svg/WarnIcon.js +2 -3
- package/lib/uploader/index.js +12 -75
- package/lib/uploader/utils.js +4 -21
- package/lib/utils/constant.js +12 -21
- package/lib/utils/create/bem.js +1 -6
- package/lib/utils/create/component.js +6 -17
- package/lib/utils/create/i18n.js +0 -8
- package/lib/utils/create/index.js +0 -4
- package/lib/utils/deep-assign.js +0 -6
- package/lib/utils/deep-clone.js +0 -5
- package/lib/utils/device.js +1 -3
- package/lib/utils/dom/event.js +5 -14
- package/lib/utils/dom/node.js +0 -2
- package/lib/utils/dom/raf.js +9 -13
- package/lib/utils/dom/reset-scroll.js +2 -4
- package/lib/utils/dom/scroll.js +16 -37
- package/lib/utils/dom/style.js +3 -3
- package/lib/utils/easings.js +2 -5
- package/lib/utils/format/date-util.js +88 -203
- package/lib/utils/format/number.js +4 -15
- package/lib/utils/format/string.js +0 -5
- package/lib/utils/format/unit.js +2 -16
- package/lib/utils/functional.js +7 -15
- package/lib/utils/getScroll.js +1 -8
- package/lib/utils/index.js +10 -26
- package/lib/utils/interceptor.js +2 -6
- package/lib/utils/media/image-util.js +10 -28
- package/lib/utils/raf.js +4 -13
- package/lib/utils/router.js +10 -13
- package/lib/utils/scrollTo.js +12 -24
- package/lib/utils/validate/date.js +0 -2
- package/lib/utils/validate/email.js +0 -1
- package/lib/utils/validate/mobile.js +0 -1
- package/lib/utils/validate/number.js +3 -5
- package/lib/utils/validate/system.js +0 -3
- package/lib/utils/vnodes.js +2 -9
- package/lib/zart.js +2325 -4752
- package/lib/zart.min.js +7 -1
- package/package.json +1 -1
package/lib/calendar/index.js
CHANGED
|
@@ -1,33 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
exports.__esModule = true;
|
|
6
5
|
exports.default = void 0;
|
|
7
|
-
|
|
8
6
|
var _raf = require("../utils/dom/raf");
|
|
9
|
-
|
|
10
7
|
var _date = require("../utils/validate/date");
|
|
11
|
-
|
|
12
8
|
var _scroll = require("../utils/dom/scroll");
|
|
13
|
-
|
|
14
9
|
var _utils = require("./utils");
|
|
15
|
-
|
|
16
10
|
var _types = require("./types");
|
|
17
|
-
|
|
18
11
|
var _popup = _interopRequireDefault(require("../popup"));
|
|
19
|
-
|
|
20
12
|
var _button = _interopRequireDefault(require("../button"));
|
|
21
|
-
|
|
22
13
|
var _toast = _interopRequireDefault(require("../toast"));
|
|
23
|
-
|
|
24
14
|
var _Month = _interopRequireDefault(require("./components/Month"));
|
|
25
|
-
|
|
26
15
|
var _Header = _interopRequireDefault(require("./components/Header"));
|
|
27
|
-
|
|
28
16
|
// Utils
|
|
29
17
|
// Components
|
|
30
|
-
var _default = (0, _utils.createComponent)({
|
|
18
|
+
var _default = exports.default = (0, _utils.createComponent)({
|
|
31
19
|
props: {
|
|
32
20
|
showType: {
|
|
33
21
|
type: String,
|
|
@@ -130,41 +118,34 @@ var _default = (0, _utils.createComponent)({
|
|
|
130
118
|
},
|
|
131
119
|
months: function months() {
|
|
132
120
|
var months = [];
|
|
133
|
-
|
|
134
121
|
if (this.showType !== _types.CalendarShowType.INLINE && this.lastMinDate && this.lastMaxDate) {
|
|
135
122
|
var cursor = new Date(this.lastMinDate);
|
|
136
123
|
cursor.setDate(1);
|
|
137
|
-
|
|
138
124
|
do {
|
|
139
125
|
months.push(new Date(cursor));
|
|
140
126
|
cursor.setMonth(cursor.getMonth() + 1);
|
|
141
127
|
} while ((0, _utils.compareMonth)(cursor, this.lastMaxDate) !== 1);
|
|
142
128
|
} else if (this.showType === _types.CalendarShowType.INLINE) {
|
|
143
129
|
var showDate = this.titleTargetDate;
|
|
144
|
-
|
|
145
130
|
if (!Array.isArray(showDate)) {
|
|
146
131
|
months.push((0, _utils.getFirstDate)(showDate));
|
|
147
132
|
} else {
|
|
148
133
|
months.push((0, _utils.getFirstDate)(showDate[0]));
|
|
149
134
|
}
|
|
150
135
|
}
|
|
151
|
-
|
|
152
136
|
return months;
|
|
153
137
|
},
|
|
154
138
|
buttonDisabled: function buttonDisabled() {
|
|
155
139
|
var type = this.type,
|
|
156
|
-
|
|
157
|
-
|
|
140
|
+
currentDate = this.currentDate;
|
|
158
141
|
if (currentDate) {
|
|
159
142
|
if (type === 'range') {
|
|
160
143
|
return !currentDate[0] || !currentDate[1];
|
|
161
144
|
}
|
|
162
|
-
|
|
163
145
|
if (type === 'multiple') {
|
|
164
146
|
return !currentDate.length;
|
|
165
147
|
}
|
|
166
148
|
}
|
|
167
|
-
|
|
168
149
|
return !currentDate;
|
|
169
150
|
},
|
|
170
151
|
dayOffset: function dayOffset() {
|
|
@@ -178,7 +159,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
178
159
|
if (!this.lastMinDate) {
|
|
179
160
|
return true;
|
|
180
161
|
}
|
|
181
|
-
|
|
182
162
|
return this.titleTargetDate.getFullYear() > this.lastMinDate.getFullYear();
|
|
183
163
|
},
|
|
184
164
|
// 判断前一个月是否可点击
|
|
@@ -186,7 +166,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
186
166
|
if (!this.lastMinDate) {
|
|
187
167
|
return true;
|
|
188
168
|
}
|
|
189
|
-
|
|
190
169
|
var targetYearMonth = (0, _utils.getFirstDate)(this.titleTargetDate);
|
|
191
170
|
var minDateYearMonth = (0, _utils.getFirstDate)(this.lastMinDate);
|
|
192
171
|
return (0, _utils.compareDay)(targetYearMonth, minDateYearMonth) === 1;
|
|
@@ -196,7 +175,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
196
175
|
if (!this.lastMaxDate) {
|
|
197
176
|
return true;
|
|
198
177
|
}
|
|
199
|
-
|
|
200
178
|
return this.titleTargetDate.getFullYear() < this.lastMaxDate.getFullYear();
|
|
201
179
|
},
|
|
202
180
|
// 判断后一个月是否可点击
|
|
@@ -204,7 +182,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
204
182
|
if (!this.lastMaxDate) {
|
|
205
183
|
return true;
|
|
206
184
|
}
|
|
207
|
-
|
|
208
185
|
var targetYearMonth = (0, _utils.getFirstDate)(this.titleTargetDate);
|
|
209
186
|
var maxDateYearMonth = (0, _utils.getFirstDate)(this.lastMaxDate);
|
|
210
187
|
return (0, _utils.compareDay)(maxDateYearMonth, targetYearMonth) === 1;
|
|
@@ -228,9 +205,7 @@ var _default = (0, _utils.createComponent)({
|
|
|
228
205
|
mounted: function mounted() {
|
|
229
206
|
this.init();
|
|
230
207
|
},
|
|
231
|
-
|
|
232
|
-
/* istanbul ignore next */
|
|
233
|
-
activated: function activated() {
|
|
208
|
+
/* istanbul ignore next */activated: function activated() {
|
|
234
209
|
this.init();
|
|
235
210
|
},
|
|
236
211
|
methods: {
|
|
@@ -239,7 +214,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
239
214
|
if (date === void 0) {
|
|
240
215
|
date = this.getInitialDate();
|
|
241
216
|
}
|
|
242
|
-
|
|
243
217
|
this.currentDate = date;
|
|
244
218
|
this.titleDate = this.getInitialTitleDate();
|
|
245
219
|
this.scrollIntoView();
|
|
@@ -250,52 +224,43 @@ var _default = (0, _utils.createComponent)({
|
|
|
250
224
|
},
|
|
251
225
|
init: function init() {
|
|
252
226
|
var _this = this;
|
|
253
|
-
|
|
254
227
|
if (this.poppable && !this.value) {
|
|
255
228
|
return;
|
|
256
229
|
}
|
|
257
|
-
|
|
258
230
|
this.$nextTick(function () {
|
|
259
231
|
// add Math.floor to avoid decimal height issues
|
|
260
232
|
// https://github.com/youzan/vant/issues/5640
|
|
261
233
|
_this.bodyHeight = Math.floor(_this.$refs.body.getBoundingClientRect().height);
|
|
262
|
-
|
|
263
234
|
_this.onScroll();
|
|
264
|
-
|
|
265
235
|
_this.scrollIntoView();
|
|
266
236
|
});
|
|
267
237
|
},
|
|
268
238
|
// @exposed-api
|
|
269
239
|
scrollToDate: function scrollToDate(targetDate) {
|
|
270
240
|
var _this2 = this;
|
|
271
|
-
|
|
272
241
|
(0, _raf.raf)(function () {
|
|
273
242
|
var displayed = _this2.value || !_this2.poppable;
|
|
274
|
-
/* istanbul ignore if */
|
|
275
243
|
|
|
244
|
+
/* istanbul ignore if */
|
|
276
245
|
if (!targetDate || !displayed) {
|
|
277
246
|
return;
|
|
278
247
|
}
|
|
279
|
-
|
|
280
248
|
_this2.months.some(function (month, index) {
|
|
281
249
|
if ((0, _utils.compareMonth)(month, targetDate) === 0) {
|
|
282
250
|
var _this2$$refs = _this2.$refs,
|
|
283
|
-
|
|
284
|
-
|
|
251
|
+
body = _this2$$refs.body,
|
|
252
|
+
months = _this2$$refs.months;
|
|
285
253
|
months[index].scrollIntoView(body);
|
|
286
254
|
return true;
|
|
287
255
|
}
|
|
288
|
-
|
|
289
256
|
return false;
|
|
290
257
|
});
|
|
291
|
-
|
|
292
258
|
_this2.onScroll();
|
|
293
259
|
});
|
|
294
260
|
},
|
|
295
261
|
// scroll to current month
|
|
296
262
|
scrollIntoView: function scrollIntoView() {
|
|
297
263
|
var currentDate = this.currentDate;
|
|
298
|
-
|
|
299
264
|
if (currentDate) {
|
|
300
265
|
var targetDate = this.type === 'single' ? currentDate : currentDate[0];
|
|
301
266
|
this.scrollToDate(targetDate);
|
|
@@ -303,53 +268,42 @@ var _default = (0, _utils.createComponent)({
|
|
|
303
268
|
},
|
|
304
269
|
getInitialDate: function getInitialDate() {
|
|
305
270
|
var type = this.type,
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
271
|
+
lastMinDate = this.lastMinDate,
|
|
272
|
+
lastMaxDate = this.lastMaxDate,
|
|
273
|
+
defaultDate = this.defaultDate;
|
|
310
274
|
if (defaultDate === null) {
|
|
311
275
|
return defaultDate;
|
|
312
276
|
}
|
|
313
|
-
|
|
314
277
|
var defaultVal = new Date();
|
|
315
|
-
|
|
316
278
|
if (lastMinDate && (0, _utils.compareDay)(defaultVal, lastMinDate) === -1) {
|
|
317
279
|
defaultVal = lastMinDate;
|
|
318
280
|
} else if (lastMaxDate && (0, _utils.compareDay)(defaultVal, lastMaxDate) === 1) {
|
|
319
281
|
defaultVal = lastMaxDate;
|
|
320
282
|
}
|
|
321
|
-
|
|
322
283
|
if (type === 'range') {
|
|
323
284
|
var _ref = defaultDate || [],
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
285
|
+
startDay = _ref[0],
|
|
286
|
+
endDay = _ref[1];
|
|
327
287
|
return [startDay || defaultVal, endDay || (0, _utils.getNextDay)(defaultVal)];
|
|
328
288
|
}
|
|
329
|
-
|
|
330
289
|
if (type === 'multiple') {
|
|
331
290
|
return defaultDate || [defaultVal];
|
|
332
291
|
}
|
|
333
|
-
|
|
334
292
|
return defaultDate || defaultVal;
|
|
335
293
|
},
|
|
336
294
|
limitDateRange: function limitDateRange(date, minDate, maxDate) {
|
|
337
295
|
if (minDate === void 0) {
|
|
338
296
|
minDate = this.lastMinDate;
|
|
339
297
|
}
|
|
340
|
-
|
|
341
298
|
if (maxDate === void 0) {
|
|
342
299
|
maxDate = this.lastMaxDate;
|
|
343
300
|
}
|
|
344
|
-
|
|
345
301
|
if (minDate && (0, _utils.compareDay)(date, minDate) === -1) {
|
|
346
302
|
return minDate;
|
|
347
303
|
}
|
|
348
|
-
|
|
349
304
|
if (maxDate && (0, _utils.compareDay)(date, maxDate) === 1) {
|
|
350
305
|
return maxDate;
|
|
351
306
|
}
|
|
352
|
-
|
|
353
307
|
return date;
|
|
354
308
|
},
|
|
355
309
|
getInitialTitleDate: function getInitialTitleDate() {
|
|
@@ -360,8 +314,8 @@ var _default = (0, _utils.createComponent)({
|
|
|
360
314
|
// and find the elements that needs to be rendered
|
|
361
315
|
onScroll: function onScroll() {
|
|
362
316
|
var _this$$refs = this.$refs,
|
|
363
|
-
|
|
364
|
-
|
|
317
|
+
body = _this$$refs.body,
|
|
318
|
+
months = _this$$refs.months;
|
|
365
319
|
var top = (0, _scroll.getScrollTop)(body);
|
|
366
320
|
var bottom = top + this.bodyHeight;
|
|
367
321
|
var heights = months.map(function (item) {
|
|
@@ -369,27 +323,23 @@ var _default = (0, _utils.createComponent)({
|
|
|
369
323
|
});
|
|
370
324
|
var heightSum = heights.reduce(function (a, b) {
|
|
371
325
|
return a + b;
|
|
372
|
-
}, 0);
|
|
326
|
+
}, 0);
|
|
373
327
|
|
|
328
|
+
// iOS scroll bounce may exceed the range
|
|
374
329
|
if (bottom > heightSum && top > 0) {
|
|
375
330
|
return;
|
|
376
331
|
}
|
|
377
|
-
|
|
378
332
|
var height = 0;
|
|
379
333
|
var currentMonth;
|
|
380
334
|
var visibleRange = [-1, -1];
|
|
381
|
-
|
|
382
335
|
for (var i = 0; i < months.length; i++) {
|
|
383
336
|
var visible = height <= bottom && height + heights[i] >= top;
|
|
384
|
-
|
|
385
337
|
if (visible) {
|
|
386
338
|
visibleRange[1] = i;
|
|
387
|
-
|
|
388
339
|
if (!currentMonth) {
|
|
389
340
|
currentMonth = months[i];
|
|
390
341
|
visibleRange[0] = i;
|
|
391
342
|
}
|
|
392
|
-
|
|
393
343
|
if (!months[i].showed) {
|
|
394
344
|
months[i].showed = true;
|
|
395
345
|
this.$emit('month-show', {
|
|
@@ -398,15 +348,13 @@ var _default = (0, _utils.createComponent)({
|
|
|
398
348
|
});
|
|
399
349
|
}
|
|
400
350
|
}
|
|
401
|
-
|
|
402
351
|
height += heights[i];
|
|
403
352
|
}
|
|
404
|
-
|
|
405
353
|
months.forEach(function (month, index) {
|
|
406
354
|
month.visible = index >= visibleRange[0] - 1 && index <= visibleRange[1] + 1;
|
|
407
355
|
});
|
|
408
|
-
/* istanbul ignore else */
|
|
409
356
|
|
|
357
|
+
/* istanbul ignore else */
|
|
410
358
|
if (currentMonth) {
|
|
411
359
|
this.subtitle = currentMonth.getMonthTitle();
|
|
412
360
|
}
|
|
@@ -415,27 +363,21 @@ var _default = (0, _utils.createComponent)({
|
|
|
415
363
|
if (this.readonly) {
|
|
416
364
|
return;
|
|
417
365
|
}
|
|
418
|
-
|
|
419
366
|
var date = item.date;
|
|
420
367
|
var type = this.type,
|
|
421
|
-
|
|
422
|
-
|
|
368
|
+
currentDate = this.currentDate;
|
|
423
369
|
if (item.type === _types.CalendarDayType.PREVIEW) {
|
|
424
370
|
this.titleDate = date;
|
|
425
371
|
}
|
|
426
|
-
|
|
427
372
|
if (type === 'range') {
|
|
428
373
|
if (!currentDate) {
|
|
429
374
|
this.select([date, null]);
|
|
430
375
|
return;
|
|
431
376
|
}
|
|
432
|
-
|
|
433
377
|
var startDay = currentDate[0],
|
|
434
|
-
|
|
435
|
-
|
|
378
|
+
endDay = currentDate[1];
|
|
436
379
|
if (startDay && !endDay) {
|
|
437
380
|
var compareToStart = (0, _utils.compareDay)(date, startDay);
|
|
438
|
-
|
|
439
381
|
if (compareToStart === 1) {
|
|
440
382
|
this.select([startDay, date], true);
|
|
441
383
|
} else if (compareToStart === -1) {
|
|
@@ -451,22 +393,17 @@ var _default = (0, _utils.createComponent)({
|
|
|
451
393
|
this.select([date]);
|
|
452
394
|
return;
|
|
453
395
|
}
|
|
454
|
-
|
|
455
396
|
var selectedIndex;
|
|
456
397
|
var selected = this.currentDate.some(function (dateItem, index) {
|
|
457
398
|
var equal = (0, _utils.compareDay)(dateItem, date) === 0;
|
|
458
|
-
|
|
459
399
|
if (equal) {
|
|
460
400
|
selectedIndex = index;
|
|
461
401
|
}
|
|
462
|
-
|
|
463
402
|
return equal;
|
|
464
403
|
});
|
|
465
|
-
|
|
466
404
|
if (selected) {
|
|
467
405
|
var _currentDate$splice = currentDate.splice(selectedIndex, 1),
|
|
468
|
-
|
|
469
|
-
|
|
406
|
+
unselectedDate = _currentDate$splice[0];
|
|
470
407
|
this.$emit('unselect', (0, _utils.copyDate)(unselectedDate));
|
|
471
408
|
} else if (this.maxRange && currentDate.length >= this.maxRange) {
|
|
472
409
|
(0, _toast.default)(this.rangePrompt || (0, _utils.t)('rangePrompt', this.maxRange));
|
|
@@ -482,16 +419,12 @@ var _default = (0, _utils.createComponent)({
|
|
|
482
419
|
},
|
|
483
420
|
select: function select(date, complete) {
|
|
484
421
|
var _this3 = this;
|
|
485
|
-
|
|
486
422
|
var emit = function emit(date) {
|
|
487
423
|
_this3.currentDate = date;
|
|
488
|
-
|
|
489
424
|
_this3.$emit('select', (0, _utils.copyDates)(_this3.currentDate));
|
|
490
425
|
};
|
|
491
|
-
|
|
492
426
|
if (complete && this.type === 'range') {
|
|
493
427
|
var valid = this.checkRange(date);
|
|
494
|
-
|
|
495
428
|
if (!valid) {
|
|
496
429
|
// auto selected to max range if showConfirm
|
|
497
430
|
if (this.showConfirm) {
|
|
@@ -499,26 +432,21 @@ var _default = (0, _utils.createComponent)({
|
|
|
499
432
|
} else {
|
|
500
433
|
emit(date);
|
|
501
434
|
}
|
|
502
|
-
|
|
503
435
|
return;
|
|
504
436
|
}
|
|
505
437
|
}
|
|
506
|
-
|
|
507
438
|
emit(date);
|
|
508
|
-
|
|
509
439
|
if (complete && !this.showConfirm) {
|
|
510
440
|
this.onConfirm();
|
|
511
441
|
}
|
|
512
442
|
},
|
|
513
443
|
checkRange: function checkRange(date) {
|
|
514
444
|
var maxRange = this.maxRange,
|
|
515
|
-
|
|
516
|
-
|
|
445
|
+
rangePrompt = this.rangePrompt;
|
|
517
446
|
if (maxRange && (0, _utils.calcDateNum)(date) > maxRange) {
|
|
518
447
|
(0, _toast.default)(rangePrompt || (0, _utils.t)('rangePrompt', maxRange));
|
|
519
448
|
return false;
|
|
520
449
|
}
|
|
521
|
-
|
|
522
450
|
return true;
|
|
523
451
|
},
|
|
524
452
|
onConfirm: function onConfirm() {
|
|
@@ -526,26 +454,21 @@ var _default = (0, _utils.createComponent)({
|
|
|
526
454
|
},
|
|
527
455
|
onClickTitleIcon: function onClickTitleIcon(isPreFlag, isMonth, isYear) {
|
|
528
456
|
var curTitleDate = this.titleTargetDate;
|
|
529
|
-
|
|
530
457
|
if (curTitleDate) {
|
|
531
458
|
var targetDate = isPreFlag ? (0, _utils.getPrevDate)(curTitleDate, isMonth, isYear) : (0, _utils.getNextDate)(curTitleDate, isMonth, isYear);
|
|
532
|
-
|
|
533
459
|
if (!(0, _date.isDate)(targetDate)) {
|
|
534
460
|
return;
|
|
535
461
|
}
|
|
536
|
-
|
|
537
462
|
var hasCompared = false;
|
|
538
463
|
var compareDate = isPreFlag ? this.lastMinDate : this.lastMaxDate;
|
|
539
|
-
var compareValue = isPreFlag ? 1 : -1;
|
|
540
|
-
|
|
464
|
+
var compareValue = isPreFlag ? 1 : -1;
|
|
465
|
+
// 超最小值则取最小值
|
|
541
466
|
if (compareDate && (0, _utils.compareDay)(compareDate, targetDate) === compareValue && (0, _utils.compareMonth)(compareDate, targetDate) === 0) {
|
|
542
467
|
targetDate = compareDate;
|
|
543
468
|
hasCompared = true;
|
|
544
469
|
}
|
|
545
|
-
|
|
546
470
|
if (hasCompared || !compareDate || compareDate && (0, _utils.compareDay)(compareDate, targetDate) !== compareValue) {
|
|
547
471
|
this.scrollToDate(targetDate);
|
|
548
|
-
|
|
549
472
|
if (this.type === 'single') {
|
|
550
473
|
this.currentDate = targetDate;
|
|
551
474
|
this.titleDate = targetDate;
|
|
@@ -599,11 +522,9 @@ var _default = (0, _utils.createComponent)({
|
|
|
599
522
|
genFooterContent: function genFooterContent() {
|
|
600
523
|
var h = this.$createElement;
|
|
601
524
|
var slot = this.slots('footer');
|
|
602
|
-
|
|
603
525
|
if (slot) {
|
|
604
526
|
return slot;
|
|
605
527
|
}
|
|
606
|
-
|
|
607
528
|
if (this.showConfirm) {
|
|
608
529
|
var text = this.buttonDisabled ? this.confirmDisabledText : this.confirmText;
|
|
609
530
|
return [h(_button.default, {
|
|
@@ -649,7 +570,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
649
570
|
},
|
|
650
571
|
genCalendar: function genCalendar() {
|
|
651
572
|
var _this4 = this;
|
|
652
|
-
|
|
653
573
|
var h = this.$createElement;
|
|
654
574
|
return h("div", {
|
|
655
575
|
"class": (0, _utils.bem)()
|
|
@@ -687,16 +607,13 @@ var _default = (0, _utils.createComponent)({
|
|
|
687
607
|
},
|
|
688
608
|
render: function render() {
|
|
689
609
|
var _this5 = this;
|
|
690
|
-
|
|
691
610
|
var h = arguments[0];
|
|
692
|
-
|
|
693
611
|
if (this.poppable) {
|
|
694
612
|
var createListener = function createListener(name) {
|
|
695
613
|
return function () {
|
|
696
614
|
return _this5.$emit(name);
|
|
697
615
|
};
|
|
698
616
|
};
|
|
699
|
-
|
|
700
617
|
return h(_popup.default, {
|
|
701
618
|
"class": (0, _utils.bem)('popup'),
|
|
702
619
|
"attrs": {
|
|
@@ -717,9 +634,6 @@ var _default = (0, _utils.createComponent)({
|
|
|
717
634
|
}
|
|
718
635
|
}, [this.genCalendar()]);
|
|
719
636
|
}
|
|
720
|
-
|
|
721
637
|
return this.genCalendar();
|
|
722
638
|
}
|
|
723
|
-
});
|
|
724
|
-
|
|
725
|
-
exports.default = _default;
|
|
639
|
+
});
|
package/lib/calendar/types.js
CHANGED
|
@@ -1,31 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
5
|
-
var CalendarShowType
|
|
6
|
-
exports.CalendarShowType = CalendarShowType;
|
|
7
|
-
|
|
8
|
-
(function (CalendarShowType) {
|
|
4
|
+
exports.CalendarType = exports.CalendarTotalDay = exports.CalendarShowType = exports.CalendarDayType = void 0;
|
|
5
|
+
var CalendarShowType = exports.CalendarShowType = /*#__PURE__*/function (CalendarShowType) {
|
|
9
6
|
CalendarShowType["INLINE"] = "inline";
|
|
10
7
|
CalendarShowType["SCROLL"] = "scroll";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var CalendarType
|
|
14
|
-
exports.CalendarType = CalendarType;
|
|
15
|
-
|
|
16
|
-
(function (CalendarType) {
|
|
8
|
+
return CalendarShowType;
|
|
9
|
+
}({});
|
|
10
|
+
var CalendarType = exports.CalendarType = /*#__PURE__*/function (CalendarType) {
|
|
17
11
|
CalendarType["SINGLE"] = "single";
|
|
18
12
|
CalendarType["RANGE"] = "range";
|
|
19
13
|
CalendarType["MULTIPLE"] = "multiple";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var CalendarDayType
|
|
23
|
-
exports.CalendarDayType = CalendarDayType;
|
|
24
|
-
|
|
25
|
-
(function (CalendarDayType) {
|
|
14
|
+
return CalendarType;
|
|
15
|
+
}({});
|
|
16
|
+
var CalendarDayType = exports.CalendarDayType = /*#__PURE__*/function (CalendarDayType) {
|
|
26
17
|
CalendarDayType["PREVIEW"] = "preview";
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var CalendarTotalDay = 42; // 日历总天数
|
|
30
|
-
|
|
31
|
-
exports.CalendarTotalDay = CalendarTotalDay;
|
|
18
|
+
return CalendarDayType;
|
|
19
|
+
}({});
|
|
20
|
+
var CalendarTotalDay = exports.CalendarTotalDay = 42; // 日历总天数
|
package/lib/calendar/utils.js
CHANGED
|
@@ -1,125 +1,97 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
5
|
-
exports.compareMonth = compareMonth;
|
|
6
|
-
exports.compareDay = compareDay;
|
|
7
|
-
exports.getDayByOffset = getDayByOffset;
|
|
8
|
-
exports.getPrevDay = getPrevDay;
|
|
9
|
-
exports.getNextDay = getNextDay;
|
|
4
|
+
exports.bem = void 0;
|
|
10
5
|
exports.calcDateNum = calcDateNum;
|
|
6
|
+
exports.compareDay = compareDay;
|
|
7
|
+
exports.compareMonth = compareMonth;
|
|
11
8
|
exports.copyDate = copyDate;
|
|
12
9
|
exports.copyDates = copyDates;
|
|
10
|
+
exports.createComponent = void 0;
|
|
11
|
+
exports.formatMonthTitle = formatMonthTitle;
|
|
12
|
+
exports.getDayByOffset = getDayByOffset;
|
|
13
13
|
exports.getFirstDate = getFirstDate;
|
|
14
|
-
exports.getNextDate =
|
|
15
|
-
|
|
14
|
+
exports.getNextDate = void 0;
|
|
15
|
+
exports.getNextDay = getNextDay;
|
|
16
|
+
exports.getPrevDate = void 0;
|
|
17
|
+
exports.getPrevDay = getPrevDay;
|
|
18
|
+
exports.t = void 0;
|
|
16
19
|
var _utils = require("../utils");
|
|
17
|
-
|
|
18
20
|
var MonthsOfYear = 12;
|
|
19
|
-
|
|
20
21
|
var _createNamespace = (0, _utils.createNamespace)('calendar'),
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
exports.t = t;
|
|
26
|
-
exports.bem = bem;
|
|
27
|
-
exports.createComponent = createComponent;
|
|
28
|
-
|
|
22
|
+
createComponent = exports.createComponent = _createNamespace[0],
|
|
23
|
+
bem = exports.bem = _createNamespace[1],
|
|
24
|
+
t = exports.t = _createNamespace[2];
|
|
29
25
|
function formatMonthTitle(date) {
|
|
30
26
|
return t('monthTitle', date.getFullYear(), date.getMonth() + 1);
|
|
31
27
|
}
|
|
32
|
-
|
|
33
28
|
function compareMonth(date1, date2) {
|
|
34
29
|
var year1 = date1.getFullYear();
|
|
35
30
|
var year2 = date2.getFullYear();
|
|
36
31
|
var month1 = date1.getMonth();
|
|
37
32
|
var month2 = date2.getMonth();
|
|
38
|
-
|
|
39
33
|
if (year1 === year2) {
|
|
40
34
|
return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
|
|
41
35
|
}
|
|
42
|
-
|
|
43
36
|
return year1 > year2 ? 1 : -1;
|
|
44
37
|
}
|
|
45
|
-
|
|
46
38
|
function compareDay(day1, day2) {
|
|
47
39
|
var compareMonthResult = compareMonth(day1, day2);
|
|
48
|
-
|
|
49
40
|
if (compareMonthResult === 0) {
|
|
50
41
|
var date1 = day1.getDate();
|
|
51
42
|
var date2 = day2.getDate();
|
|
52
43
|
return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;
|
|
53
44
|
}
|
|
54
|
-
|
|
55
45
|
return compareMonthResult;
|
|
56
46
|
}
|
|
57
|
-
|
|
58
47
|
function getDayByOffset(date, offset, isMonth, isYear) {
|
|
59
48
|
var newDate = new Date(date);
|
|
60
|
-
|
|
61
49
|
if (isYear) {
|
|
62
50
|
newDate.setFullYear(newDate.getFullYear() + offset);
|
|
63
51
|
} else if (isMonth) {
|
|
64
|
-
newDate.setMonth(newDate.getMonth() + offset);
|
|
65
|
-
|
|
52
|
+
newDate.setMonth(newDate.getMonth() + offset);
|
|
53
|
+
// 避免每月天数不一样导致的跨月问题,例如1.31 跨月至 3.2日
|
|
66
54
|
var multiplier = newDate.getFullYear() - date.getFullYear();
|
|
67
55
|
var setLastDate = date.getMonth() + offset !== newDate.getMonth() + multiplier * MonthsOfYear;
|
|
68
|
-
|
|
69
56
|
if (setLastDate) {
|
|
70
57
|
newDate.setDate(0);
|
|
71
58
|
}
|
|
72
59
|
} else {
|
|
73
60
|
newDate.setDate(newDate.getDate() + offset);
|
|
74
61
|
}
|
|
75
|
-
|
|
76
62
|
return newDate;
|
|
77
63
|
}
|
|
78
|
-
|
|
79
64
|
function getPrevDay(date) {
|
|
80
65
|
return getDayByOffset(date, -1);
|
|
81
66
|
}
|
|
82
|
-
|
|
83
67
|
function getNextDay(date) {
|
|
84
68
|
return getDayByOffset(date, 1);
|
|
85
69
|
}
|
|
86
|
-
|
|
87
|
-
var getPrevDate = function getPrevDate(date, isMonth, isYear) {
|
|
70
|
+
var getPrevDate = exports.getPrevDate = function getPrevDate(date, isMonth, isYear) {
|
|
88
71
|
return getDayByOffset(date, -1, isMonth, isYear);
|
|
89
72
|
};
|
|
90
|
-
|
|
91
|
-
exports.getPrevDate = getPrevDate;
|
|
92
|
-
|
|
93
|
-
var getNextDate = function getNextDate(date, isMonth, isYear) {
|
|
73
|
+
var getNextDate = exports.getNextDate = function getNextDate(date, isMonth, isYear) {
|
|
94
74
|
return getDayByOffset(date, 1, isMonth, isYear);
|
|
95
75
|
};
|
|
96
|
-
|
|
97
|
-
exports.getNextDate = getNextDate;
|
|
98
|
-
|
|
99
76
|
function calcDateNum(date) {
|
|
100
77
|
var day1 = date[0].getTime();
|
|
101
78
|
var day2 = date[1].getTime();
|
|
102
79
|
return (day2 - day1) / (1000 * 60 * 60 * 24) + 1;
|
|
103
80
|
}
|
|
104
|
-
|
|
105
81
|
function copyDate(dates) {
|
|
106
82
|
return new Date(dates);
|
|
107
83
|
}
|
|
108
|
-
|
|
109
84
|
function copyDates(dates) {
|
|
110
85
|
if (Array.isArray(dates)) {
|
|
111
86
|
return dates.map(function (date) {
|
|
112
87
|
if (date === null) {
|
|
113
88
|
return date;
|
|
114
89
|
}
|
|
115
|
-
|
|
116
90
|
return copyDate(date);
|
|
117
91
|
});
|
|
118
92
|
}
|
|
119
|
-
|
|
120
93
|
return copyDate(dates);
|
|
121
94
|
}
|
|
122
|
-
|
|
123
95
|
function getFirstDate(date) {
|
|
124
96
|
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
125
97
|
}
|