ant-design/components/calendar/demo/notice-calendar.md

125 lines
2.4 KiB
Markdown
Raw Normal View History

2016-03-31 09:40:55 +08:00
---
order: 2
title:
zh-CN: 通知事项日历演示
en-US: A demo of Notice Calendar
2016-03-31 09:40:55 +08:00
---
2015-11-13 22:34:49 +08:00
## zh-CN
一个复杂的应用示例。
2016-08-15 11:23:19 +08:00
## en-US
A complex application.
2015-11-13 22:34:49 +08:00
````jsx
import { Calendar } from 'antd';
function getListData(value) {
let listData;
2015-11-13 22:34:49 +08:00
switch (value.getDayOfMonth()) {
case 8:
listData = [
2016-03-28 14:38:25 +08:00
{ type: 'warning', content: '这里是警告事项.' },
2016-05-11 09:32:33 +08:00
{ type: 'normal', content: '这里是普通事项.' },
]; break;
case 10:
listData = [
2016-03-28 14:38:25 +08:00
{ type: 'warning', content: '这里是警告事项.' },
{ type: 'normal', content: '这里是普通事项.' },
2016-05-11 09:32:33 +08:00
{ type: 'error', content: '这里是错误事项.' },
]; break;
case 15:
listData = [
2016-03-28 14:38:25 +08:00
{ type: 'warning', content: '这里是警告事项.' },
{ type: 'normal', content: '这里是普通事项好长啊。。....' },
{ type: 'error', content: '这里是错误事项.' },
{ type: 'error', content: '这里是错误事项.' },
{ type: 'error', content: '这里是错误事项.' },
2016-05-11 09:32:33 +08:00
{ type: 'error', content: '这里是错误事项.' },
]; break;
default:
2015-11-13 22:34:49 +08:00
}
return listData || [];
}
function dateCellRender(value) {
2016-07-21 18:05:15 +08:00
const listData = getListData(value);
return (
<ul className="events">
{
listData.map((item, index) =>
<li key={index}>
<span className={`event-${item.type}`}></span>
{item.content}
</li>
)
}
</ul>
);
2015-11-13 22:34:49 +08:00
}
function getMonthData(value) {
if (value.getMonth() === 8) {
return 1394;
}
}
function monthCellRender(value) {
2016-08-28 17:47:06 +08:00
const num = getMonthData(value);
2015-11-13 22:34:49 +08:00
return num ? <div className="notes-month">
<section>{num}</section>
<span>待办事项数</span>
</div> : null;
}
ReactDOM.render(
<Calendar dateCellRender={dateCellRender} monthCellRender={monthCellRender} />
, mountNode);
2015-11-13 22:34:49 +08:00
````
````css
.events {
line-height: 24px;
list-style: none;
margin: 0;
padding: 0;
}
.events li {
color: #999;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.events li span {
vertical-align: middle;
}
.events li span:first-child {
font-size: 9px;
margin-right: 4px;
}
2016-03-28 14:38:25 +08:00
.event-warning {
2015-11-13 22:34:49 +08:00
color: #fac450;
}
.event-normal {
color: #2db7f5;
}
.event-error {
2016-03-28 14:38:25 +08:00
color: #f50;
2015-11-13 22:34:49 +08:00
}
.notes-month {
text-align: center;
}
.notes-month section {
font-size: 28px;
}
````