Calendar

Calendar 日历

代码示例

import { BfCalendar } from '@bud-fe/react-taro-ui';
import { IDateConfigObj } from '@bud-fe/react-taro-ui/es/_components/calendar/types/calendar';
import { View } from '@tarojs/components';
import React, { useState } from 'react';
export default () => {
const [dateConfig, setDateConfig] = useState<IDateConfigObj>({
'2023-09-29': { dateType: 1 }, // 休息日
'2023-09-30': { dateType: 1 },
'2023-10-01': { dateType: 2, remark: '2023.09.26' }, // 补班日
// '2023-10-02': { dateType: 1, badgeText: '自', badgeBgColor: 'blue' },
'2023-10-02': { dateType: 1 },
'2023-10-03': { dateType: 2, remark: '09.27' },
'2023-10-04': { dateType: 3 }, // 工作日
'2023-10-05': { dateType: 1 },
'2023-10-06': { dateType: 1 },
'2023-10-07': { dateType: 2, remark: '09.29' },
'2023-10-08': { dateType: 2, remark: '2024.09.23' },
// '2023-10-09': { dateType: 3 },
'2023-10-09': { dateType: 2, remark: '2023.09.30' },
});
return (
<>
<View className="group-title">基础用法</View>
<BfCalendar
currentDate="2023/10/28"
requestDateConfig={async () => {
return Promise.resolve({
'2023-11-14': {
date: '2023-11-14',
dateType: 2,
remark: '2023.11.14',
},
});
}}
/>
{/* // `data_type` int(1) DEFAULT NULL COMMENT '数据类型 1-休息日 2-补班日 3-工作日' */}
<BfCalendar
currentDate={{ start: '2023/10/28', end: '2023/10/29' }}
minDate="2023-07-12"
isMultiSelect
dateConfig={dateConfig}
onClickNextMonth={() => {
setDateConfig((pre) => ({
...pre,
...{
'2023-10-01': { dateType: 1 },
'2023-10-02': { dateType: 1, badgeText: '休', badgeBgColor: 'purple' },
},
}));
}}
/>
<View className="group-title"> minDate="2018/3/21" maxDate="2018-5-12"</View>
<BfCalendar currentDate="2018/4/11" minDate={1521561600000} maxDate="2018-5-12" />
<View className="group-title"> maxDate="2018-5-12"</View>
<BfCalendar currentDate="2018/4/11" maxDate={new Date('2018-5-12')} />
<View className="group-title"> minDate="2018/3/21"</View>
<BfCalendar currentDate="2018/4/11" minDate="2018/3/21" />
<View className="group-title"> minDate="2018/3/21"</View>
<BfCalendar currentDate="2018/4/11" enablePicker={false} />
<BfCalendar marks={[{ value: '2018/11/11' }]} />
</>
);
};

API

BfCalendarProps

属性名描述类型默认值
enablePicker是否启用标题 picker 的点击booleantrue
onDateTitleClick日期标题点击事件() => void--
requestDateConfig获取日历数据的 promise, 如果 dateConfig 与 requestDateConfig 都存在的时候,优先用 dateConfig() => Promise<IDateConfigObj>--
isMultiSelect是否范围选择boolean--
currentDate当前的时间DateArg | SelectedDate--
format日期格式string--
validDates需要标记的有效时间ValidDate[]--
minDate最小的可选时间DateArg--
maxDate最大的可选时间DateArg--
isSwiper是否可以滑动boolean--
marks需要标记的时间Mark[]--
monthFormat月份格式string--
hideArrow是否隐藏箭头boolean--
isVertical是否垂直滑动boolean--
className类名classNameType--
onClickPreMonth点击箭头去上一个月的时候触发() => void--
onClickNextMonth点击箭头去下一个月的时候触发() => void--
onSelectDate选中日期时候触发(item: { value: SelectedDate; }) => void--
onDayClick点击日期时候触发(item: { value: string; }) => void--
onDayLongClick长按日期时触发(item: { value: string; }) => void--
onMonthChange月份改变时触发(value: string) => void--
dateConfig日期配置 IDateConfigObj=> { [YYYY-MM-DD]: IDateConfigObjDetail } 如果 dateConfig 与 requestDateConfig 都存在的时候,优先用 dateConfigIDateConfigObj--

IDateConfigObjDetail

属性名描述类型默认值
dateType日期类型:1:休息日 2:补班日 3:工作日number--
remark补班文字string--
badgeText角标文字string--
badgeBgColor角标颜色string--
dumi10:24