@wangxinowo/vue-datepicker-next 1.0.1 → 1.0.3
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/dist/vue-datepicker-next.min.css +168 -5
- package/dist/vue-datepicker-next.min.js +1 -1
- package/package.json +1 -1
- package/src/components/calendar/locale/zh_CN.js +2 -0
- package/src/components/date-picker/style/MonthPanel.less +15 -0
- package/src/components/date-picker/style/RangePicker.less +185 -5
- package/src/components/date-picker/style/YearPanel.less +15 -0
- package/src/components/date-picker/wrapPicker.js +2 -2
- package/src/components/locale/default.js +35 -34
- package/src/components/time-picker/index.jsx +2 -2
- package/src/components/vc-calendar/src/Calendar.jsx +2 -2
- package/src/components/vc-calendar/src/FullCalendar.jsx +2 -2
- package/src/components/vc-calendar/src/MonthCalendar.jsx +2 -2
- package/src/components/vc-calendar/src/RangeCalendar.jsx +2 -2
- package/src/components/vc-calendar/src/calendar/CalendarHeader.jsx +4 -1
- package/src/components/vc-calendar/src/month/MonthPanel.jsx +2 -1
- package/src/components/vc-calendar/src/month/MonthTable.jsx +79 -3
- package/src/components/vc-calendar/src/range-calendar/CalendarPart.jsx +4 -1
- package/src/components/vc-calendar/src/year/YearPanel.jsx +47 -3
- package/src/components/vc-pagination/locale/zh_CN.js +15 -0
|
@@ -22,13 +22,31 @@ function chooseYear(year) {
|
|
|
22
22
|
this.__emit('select', value);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
// 判断是否为范围选择模式
|
|
26
|
+
function isRangeMode(selectedValue) {
|
|
27
|
+
return Array.isArray(selectedValue);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// 获取范围开始年份
|
|
31
|
+
function getRangeStartYear(selectedValue) {
|
|
32
|
+
if (!isRangeMode(selectedValue)) return null;
|
|
33
|
+
return selectedValue[0] ? selectedValue[0].year() : null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 获取范围结束年份
|
|
37
|
+
function getRangeEndYear(selectedValue) {
|
|
38
|
+
if (!isRangeMode(selectedValue)) return null;
|
|
39
|
+
return selectedValue[1] ? selectedValue[1].year() : null;
|
|
40
|
+
}
|
|
41
|
+
|
|
25
42
|
export default {
|
|
26
43
|
mixins: [BaseMixin],
|
|
27
44
|
props: {
|
|
28
45
|
rootPrefixCls: PropTypes.string,
|
|
29
46
|
value: PropTypes.object,
|
|
30
47
|
defaultValue: PropTypes.object,
|
|
31
|
-
|
|
48
|
+
// 支持单个值或数组(范围选择)
|
|
49
|
+
selectedValue: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
|
|
32
50
|
locale: PropTypes.object,
|
|
33
51
|
renderFooter: PropTypes.func,
|
|
34
52
|
disabledDate: PropTypes.func,
|
|
@@ -76,8 +94,15 @@ export default {
|
|
|
76
94
|
const decadePanelShow = getListeners(this).decadePanelShow || noop;
|
|
77
95
|
const years = this.years();
|
|
78
96
|
const currentYear = value.year();
|
|
79
|
-
|
|
80
|
-
|
|
97
|
+
|
|
98
|
+
// 判断是范围模式还是单值模式
|
|
99
|
+
const rangeMode = isRangeMode(selectedValue);
|
|
100
|
+
const rangeStartYear = getRangeStartYear(selectedValue);
|
|
101
|
+
const rangeEndYear = getRangeEndYear(selectedValue);
|
|
102
|
+
|
|
103
|
+
// 单值模式:只有当 selectedValue 存在时才显示选中状态
|
|
104
|
+
const selectedYear = !rangeMode && selectedValue ? selectedValue.year() : null;
|
|
105
|
+
|
|
81
106
|
const startYear = parseInt(currentYear / 10, 10) * 10;
|
|
82
107
|
const endYear = startYear + 9;
|
|
83
108
|
const prefixCls = `${this.rootPrefixCls}-year-panel`;
|
|
@@ -91,10 +116,29 @@ export default {
|
|
|
91
116
|
testValue.year(yearData.year);
|
|
92
117
|
disabled = disabledDate(testValue);
|
|
93
118
|
}
|
|
119
|
+
|
|
120
|
+
// 判断年份是否在当前十年范围内(不是上一十年或下一十年的预览)
|
|
121
|
+
const isInCurrentDecade = yearData.year >= startYear && yearData.year <= endYear;
|
|
122
|
+
|
|
123
|
+
// 判断是否为范围起始/结束/中间,只在当前十年范围内应用
|
|
124
|
+
const isRangeStart = rangeMode && rangeStartYear !== null && yearData.year === rangeStartYear && isInCurrentDecade;
|
|
125
|
+
const isRangeEnd = rangeMode && rangeEndYear !== null && yearData.year === rangeEndYear && isInCurrentDecade;
|
|
126
|
+
const isInRange = rangeMode &&
|
|
127
|
+
rangeStartYear !== null &&
|
|
128
|
+
rangeEndYear !== null &&
|
|
129
|
+
yearData.year > rangeStartYear &&
|
|
130
|
+
yearData.year < rangeEndYear &&
|
|
131
|
+
isInCurrentDecade;
|
|
132
|
+
|
|
94
133
|
const classNameMap = {
|
|
95
134
|
[`${prefixCls}-cell`]: 1,
|
|
96
135
|
[`${prefixCls}-cell-disabled`]: disabled,
|
|
136
|
+
// 单值模式的选中状态
|
|
97
137
|
[`${prefixCls}-selected-cell`]: selectedYear !== null && yearData.year === selectedYear,
|
|
138
|
+
// 范围模式的选中状态
|
|
139
|
+
[`${prefixCls}-selected-start-cell`]: isRangeStart,
|
|
140
|
+
[`${prefixCls}-selected-end-cell`]: isRangeEnd,
|
|
141
|
+
[`${this.rootPrefixCls}-in-range-cell`]: isInRange || isRangeStart || isRangeEnd,
|
|
98
142
|
[`${prefixCls}-last-decade-cell`]: yearData.year < startYear,
|
|
99
143
|
[`${prefixCls}-next-decade-cell`]: yearData.year > endYear,
|
|
100
144
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
// Options.jsx
|
|
3
|
+
items_per_page: '条/页',
|
|
4
|
+
jump_to: '跳至',
|
|
5
|
+
jump_to_confirm: '确定',
|
|
6
|
+
page: '页',
|
|
7
|
+
|
|
8
|
+
// Pagination.jsx
|
|
9
|
+
prev_page: '上一页',
|
|
10
|
+
next_page: '下一页',
|
|
11
|
+
prev_5: '向前 5 页',
|
|
12
|
+
next_5: '向后 5 页',
|
|
13
|
+
prev_3: '向前 3 页',
|
|
14
|
+
next_3: '向后 3 页',
|
|
15
|
+
};
|