# calendar
日历组件,用于呈现日历界面。
> **说明:**
>
> 从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 子组件
不支持。
## 属性
支持[通用属性](js-service-widget-common-attributes.md)外,还支持如下属性:
| 名称 | 类型 | 默认值 | 必填 | 描述 |
| -------------- | ------ | ----- | ---- | ---------------------------------------- |
| date | string | 当前日期 | 否 | 当前页面选中的日期,默认是当前日期,格式为年-月-日,如"2019-11-22"。 |
| cardcalendar | bool | false | 否 | 标识当前日历是否为卡片日历。 |
| startdayofweek | int | 6 | 否 | 标识卡片显示的起始天,默认是星期天(取值范围:0-6)。 |
| offdays | string | 5,6 | 否 | 标识卡片显示的休息日,默认是星期六、星期天(取值范围:0-6)。 |
| calendardata | string | - | 是 | 卡片需要显示的月视图数据信息,包括5\*7或者6\*7格的日数据信息,格式为JSON字符串。"data"标签属性信息见**表1** calendardata的日属性。 |
| showholiday | bool | true | 否 | 标识当前是否显示节假日信息。 |
**表1** calendardata的日属性
| 名称 | 类型 | 描述 |
| -------------- | ------ | --------------------------------------- |
| index | int | 数据的索引,表示第几个日期。 |
| day | int | 表示具体哪一天。 |
| month | int | 表示月份。 |
| year | int | 表示年份。 |
| isFirstOfLuanr | bool | 表示是否是农历的第一天,在农历第一天的数据下绘制横线。 |
| hasSchedule | bool | 表示是否有日程,在有日程的日期数据上绘制圆。 |
| markLunarDay | bool | 表示节假日,农历数据会变成蓝色。 |
| lunarDay | string | 农历日期。 |
| lunarMonth | string | 农历月份。 |
| dayMark | string | 表示工作日。
- “work”:工作日。
- “off”:休息日。 |
| dayMarkValue | string | 表示具体需要显示的“班”、“休”信息。 |
calendardata示例:
```
{
"year":2021,
"month":1,
"data": [{
"index": 0,
"lunarMonth": "十一",
"lunarDay": "十三",
"year": 2020,
"month ": 12,
"day": 27,
"dayMark": "work",
"dayMarkValue": "班",
"isFirstOfLunar": true,
"hasSchedule": true,
"markLunarDay": true
}, {
"index": 1,
"lunarMonth": "十一",
"lunarDay": "十四",
"year": 2020,
"month ": 12,
"day": 28,
"dayMark": "work",
"dayMarkValue": "班",
"isFirstOfLunar": true,
"hasSchedule": true,
"markLunarDay": true
}, {
"index": 2,
"lunarMonth": "十一",
"lunarDay": "十五",
"year": 2020,
"month ": 12,
"day": 29,
"dayMark": "work",
"dayMarkValue": "班",
"isFirstOfLunar": true,
"hasSchedule": true,
"markLunarDay": true
},
...
]
}
```
## 样式
| 名称 | 类型 | 默认值 | 必填 | 描述 |
| ---------------- | ------------- | ---- | ---- | ------- |
| background-color | <color> | - | 否 | 设置背景颜色。 |
## 事件
| 名称 | 参数 | 描述 |
| -------------- | ------------ | --------------- |
| selectedchange | changeEvent | 在点击日期和上下月跳转时触发。 |
| requestdata | requestEvent | 请求日期时触发。 |
**表2** changeEvent
| 名称 | 类型 | 描述 |
| ------------ | ------ | ------ |
| $event.day | string | 选择的日期。 |
| $event.month | string | 选择的月份。 |
| $event.year | string | 选择的年份。 |
**表3** requestEvent
| 名称 | 类型 | 描述 |
| ------------------- | ------ | -------- |
| $event.month | string | 请求的月份。 |
| $event.year | string | 请求的年份。 |
| $event.currentYear | string | 当前显示的年份。 |
| $event.currentMonth | string | 当前显示的月份。 |
## 示例
当前数据仅为示例数据,实际使用时请补充完整的日期数据。
```html