Skip to content

Commit 68db579

Browse files
committed
feat: 新增 公历节日
1 parent a67ad46 commit 68db579

File tree

7 files changed

+43
-12
lines changed

7 files changed

+43
-12
lines changed

src/components/date-picker/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- [x] 年选择器
66
- [x] 年月选择器
77
- [x] 自定义日期格式
8-
- [ ] 公历节日
8+
- [x] 公历节日
99
- [ ] 自定义重要日子
1010
- [ ] 限制可选日期
1111
- [ ] 限制日期前后几天

src/components/date-picker/src/content/date-table.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,19 @@
2727
}"
2828
@click="emitChange(date.day, date.month)"
2929
>
30-
{{ date.day }}
30+
<span
31+
:class="{
32+
'laydate-day-mark': festival && date.festival
33+
}"
34+
>{{ festival && date.festival || date.day }}</span>
3135
</td>
3236
</tr>
3337
</tbody>
3438
</table>
3539
</div>
3640
</template>
3741
<script>
38-
import { getDay, getDaysInMonth, getPrevDaysInMonth } from '../utils';
42+
import { getDay, getDaysInMonth, getPrevDaysInMonth, getFestival } from '../utils';
3943
4044
export default {
4145
name: 'DateContent',
@@ -51,7 +55,8 @@ export default {
5155
day: {
5256
type: Number,
5357
required: true
54-
}
58+
},
59+
festival: Boolean
5560
},
5661
data () {
5762
return {
@@ -119,7 +124,8 @@ export default {
119124
year: _year,
120125
month: _month,
121126
day: _day,
122-
key: `${_year}/${_month + 1}/${_day}`
127+
key: `${_year}/${_month + 1}/${_day}`,
128+
festival: this.festival ? getFestival(_month, _day) : ''
123129
});
124130
125131
}

src/components/date-picker/src/date-picker.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ export default {
5555
type: Number,
5656
default: 0
5757
},
58-
number: Boolean
58+
number: Boolean,
59+
festival: Boolean
5960
},
6061
destroyed () {
6162
this.handleHide();
@@ -74,6 +75,7 @@ export default {
7475
this.main = new Vue(Main);
7576
this.main.$props.type = this.type;
7677
this.main.$props.format = this.format;
78+
this.main.$props.festival = this.festival;
7779
this.main.$mount();
7880
this.main.$on('change', this.emitChange);
7981
this.main.$on('close', () => {

src/components/date-picker/src/main/index.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
:year="selectedYear"
1616
:month="selectedMonth"
1717
:day="selectedDay"
18+
:festival="festival"
1819
@change="handerDateTableChange"
1920
/>
2021
<month-table
@@ -84,7 +85,8 @@ export default {
8485
format: {
8586
type: String,
8687
default: ''
87-
}
88+
},
89+
festival: Boolean
8890
},
8991
data () {
9092
return {

src/components/date-picker/src/utils/index.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
1+
const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
2+
const FESTIVAL = {
3+
'1-1': '元旦',
4+
'2-14': '情人节',
5+
'3-8': '妇女',
6+
'3-12': '植树',
7+
'9-18': '国耻',
8+
'10-1': '国庆',
9+
'12-25': '圣诞'
10+
};
11+
112
// 是否闰年
213
export const isLeapYear = (year) => {
314
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
415
};
5-
const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
616

717
// 获得某月的第一天是周几
818
export const getDay = (year, month) => {
@@ -17,6 +27,7 @@ export const getDaysInMonth = (year, month) => {
1727

1828
return DAYS_IN_MONTH[month];
1929
};
30+
2031
// 获得上个月总天数
2132
export const getPrevDaysInMonth = (year, month) => {
2233
if (month == 0) {
@@ -28,3 +39,8 @@ export const getPrevDaysInMonth = (year, month) => {
2839

2940
return getDaysInMonth(year, month);
3041
};
42+
43+
// 获得公历节日
44+
export const getFestival = (month, day, festival = FESTIVAL) => {
45+
return festival[`${month + 1}-${day}`];
46+
};

src/components/slider/src/slider-btn.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ export default {
4242
type: Array,
4343
default: () => []
4444
},
45-
vertical: {
46-
type: Boolean
47-
},
45+
vertical: Boolean,
4846
theme: {
4947
type: String,
5048
default: ''

src/views/DatePicker.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
placeholder="选择格式化">
2323
</lay-date-picker>
2424

25+
<lay-date-picker
26+
festival
27+
v-model="value5"
28+
format="YYYY年MM月DD日"
29+
placeholder="节日">
30+
</lay-date-picker>
2531

2632
<script>
2733
export default {
@@ -31,7 +37,8 @@ export default {
3137
value1: '',
3238
value2: '',
3339
value3: '',
34-
value4: ''
40+
value4: '',
41+
value5: ''
3542
}
3643
}
3744
};

0 commit comments

Comments
 (0)