# HolidayPicker 节假日设置
# 安装
$ npm i @hui-pro/holiday-picker -D
# 或者
$ yarn add @hui-pro/holiday-picker --dev
# 引入
// main.js
import holidayPicker from '@hui-pro/holiday-picker';
import '@hui-pro/holiday-picker/theme/index.scss';
Vue.use(holidayPicker);
# 基础用法
星期日 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 |
---|---|---|---|---|---|---|
初四
29
|
初五
30
|
初六
31
|
初七
1
元旦
|
初八
2
腊八节
|
初九
3
|
初十
4
|
十一
5
小寒
|
十二
6
休
|
十三
7
|
十四
8
|
十五
9
|
十六
10
|
十七
11
|
十八
12
|
十九
13
|
二十
14
|
廿一
15
|
廿二
16
|
廿三
17
小年
|
廿四
18
|
廿五
19
|
廿六
20
大寒
|
廿七
21
|
廿八
22
|
廿九
23
|
三十
24
除夕
|
正月初一
25
春节
|
初二
26
|
初三
27
|
初四
28
|
初五
29
|
初六
30
|
初七
31
|
初八
1
|
初九
2
|
初十
3
|
十一
4
立春
|
十二
5
|
十三
6
|
十四
7
|
十五
8
元宵节
|
<h-holiday-picker
:holidayList.sync="currentHolidayList"
@dateClick="dateClickHandler"
@dateChange="dateChangeHandler"
></h-holiday-picker>
<script>
export default {
name: 'holiday-picker-page',
data() {
return {
currentHolidayList: ['2019-03-05']
};
},
methods: {
dateClickHandler({ dateItem, holidayList }) {
console.log(dateItem);
console.log(holidayList);
},
currentDateChangeHandler(holidayList) {
console.log(holidayList);
}
}
};
</script>
# 自定义内容
星期日 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 |
---|---|---|---|---|---|---|
自定义内容 阴历:初四 阳历:29 自定义未选中 |
自定义内容 阴历:初五 阳历:30 自定义未选中 |
自定义内容 阴历:初六 阳历:31 自定义未选中 |
自定义内容 阴历:初七 阳历:1
元旦
自定义未选中 |
自定义内容 阴历:初八 阳历:2
腊八节
自定义未选中 |
自定义内容 阴历:初九 阳历:3 自定义未选中 |
自定义内容 阴历:初十 阳历:4 自定义未选中 |
自定义内容 阴历:十一 阳历:5
小寒
自定义未选中 |
自定义内容 阴历:十二 阳历:6 自定义未选中 |
自定义内容 阴历:十三 阳历:7 自定义未选中 |
自定义内容 阴历:十四 阳历:8 自定义未选中 |
自定义内容 阴历:十五 阳历:9 自定义未选中 |
自定义内容 阴历:十六 阳历:10 自定义未选中 |
自定义内容 阴历:十七 阳历:11 自定义未选中 |
自定义内容 阴历:十八 阳历:12 自定义未选中 |
自定义内容 阴历:十九 阳历:13 自定义未选中 |
自定义内容 阴历:二十 阳历:14 自定义未选中 |
自定义内容 阴历:廿一 阳历:15 自定义未选中 |
自定义内容 阴历:廿二 阳历:16 自定义未选中 |
自定义内容 阴历:廿三 阳历:17
小年
自定义未选中 |
自定义内容 阴历:廿四 阳历:18 自定义未选中 |
自定义内容 阴历:廿五 阳历:19 自定义未选中 |
自定义内容 阴历:廿六 阳历:20
大寒
自定义未选中 |
自定义内容 阴历:廿七 阳历:21 自定义未选中 |
自定义内容 阴历:廿八 阳历:22 自定义未选中 |
自定义内容 阴历:廿九 阳历:23 自定义未选中 |
自定义内容 阴历:三十 阳历:24
除夕
自定义未选中 |
自定义内容 阴历:正月初一 阳历:25
春节
自定义未选中 |
自定义内容 阴历:初二 阳历:26 自定义未选中 |
自定义内容 阴历:初三 阳历:27 自定义未选中 |
自定义内容 阴历:初四 阳历:28 自定义未选中 |
自定义内容 阴历:初五 阳历:29 自定义未选中 |
自定义内容 阴历:初六 阳历:30 自定义未选中 |
自定义内容 阴历:初七 阳历:31 自定义未选中 |
自定义内容 阴历:初八 阳历:1 自定义未选中 |
自定义内容 阴历:初九 阳历:2 自定义未选中 |
自定义内容 阴历:初十 阳历:3 自定义未选中 |
自定义内容 阴历:十一 阳历:4
立春
自定义未选中 |
自定义内容 阴历:十二 阳历:5 自定义未选中 |
自定义内容 阴历:十三 阳历:6 自定义未选中 |
自定义内容 阴历:十四 阳历:7 自定义未选中 |
自定义内容 阴历:十五 阳历:8
元宵节
自定义未选中 |
<h-holiday-picker :holidayList.sync="currentHolidayList2">
<template slot-scope="scope">
<div class="date-info">
<!-- 日期信息 -->
<span class="custom-date">
自定义内容
<br />
阴历:{{ scope.item && scope.item.lunarDate.fmtStr }}
<br />
阳历:{{ scope.item && scope.item.date.getDate() }}
</span>
</div>
<div class="festival-info">
<!-- 节假日信息 -->
<span class="festival">
{{ scope.item && (scope.item.lunarDate.festival ||
scope.item.lunarDate.Term) }}
</span>
</div>
<div class="status">
<!-- 当前状态信息 -->
<span v-if="scope.item.isHoliday">自定义已选中</span>
<span v-else>自定义未选中</span>
</div>
</template>
</h-holiday-picker>
<script>
export default {
name: 'holiday-picker-page',
data() {
return {
currentHolidayList2: []
};
}
};
</script>
# API
# Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
holiday-list | 传入节假日列表,可用.sync 实现双向绑定 | Array<YYYY-MM-DD> | - | [] |
first-day-of-week | 周起始日 | Number | 1-7(周一~周日) | 7 |
text | 日历选中时显示的文本 | String | - | '休'(注意,如果使用了 slot 自定义内容,此属性无效。) |
readonly | 是否只读模式(只读模式不能选中日期) | Boolean | true/false | false |
cell-height | 日历单元格高度 | Number | 单位是 px | 111(这里建议最小就是 80,再小会影响样式了) |
# events
事件名 | 说明 | 参数 |
---|---|---|
dateClick | 当某一天被点击时抛出该事件 | ({dateItem, holidayList}),被点击的日期的信息和当前选中的节假日列表 |
dateChange | 当拖动多选时,每次选中日期发生变化都会抛出该事件 | (holidayList),当前状态下,选中的节假日列表 |
calendarChange | 当日期控件切换日期时,会抛出该事件 | (currentYear, currentMonth),当前日期对应的年、月 |
# dateItem 属性
属性名 | 说明 | 类型 |
---|---|---|
date | 被点击日期 0 点的标准时间对象 | Date |
isCurrentMonth | 被点击日期是否在当前月份 | Boolean |
isFirstLunarDate | 被点击日期是否阴历第一天 | Boolean |
isHoliday | 被点击日期是否被设置为节假日 | Boolean |
isNextMonth | 被点击日期是否在下个月(阳历) | Boolean |
isPrevMonth | 被点击日期是否在上个月(阳历) | Boolean |
isToday | 被点击日期是否是当日 | Boolean |
lunarDate | 被点击日期的阴历日期对象,详细属性见下表 | Object |
solarDateStr | 被点击日期的格式化显示(YYYY-MM-D),注意,这里的日不是双位的 | String |
# lunarDate 属性
属性名 | 说明 | 类型 |
---|---|---|
Animal | 当前阴历年的生肖 | String |
IDayCn | 当前阴历日的写法 | String |
IMonthCn | 当前阴历月的写法 | String |
Term | 当前节气 | String |
festival | 当前节日 | String |
# slots
插槽名称 | 类型 | 说明 |
---|---|---|
default 1.5.1+ | slot-scope | 可以通过 slot-scope="scope"默认插槽自定义日历中每个单元格的内容,同时可以获取当前 item 的各项属性值,数据结构与 dateItem 属性一致,属性访问方式举例:scope.item.date。详细用法查看自定义内容的 demo。 |
提示
1.4.1 ~ 1.5.0 之间的版本,插槽只能自定义选中状态部分;1.5.1 之后修改为插槽自定义整个日期单元格内的内容。