Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,7 @@ const DatePickerExample = () => {
<Flex vertical gap={16}>
<DatePickerToday name="basicToday" label="基础日期范围" />
<DatePickerToday name="requiredToday" label="必选范围" rule="REQ" />
<DatePickerToday name="weekPicker" label="周选择" picker="week" />
<DatePickerToday name="monthPicker" label="月份选择" picker="month" />
<DatePickerToday name="yearPicker" label="年份选择" picker="year" />
<DatePickerToday
Expand Down
1 change: 1 addition & 0 deletions doc/date-picker.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ const DatePickerExample = () => {
<Flex vertical gap={16}>
<DatePickerToday name="basicToday" label="基础日期范围" />
<DatePickerToday name="requiredToday" label="必选范围" rule="REQ" />
<DatePickerToday name="weekPicker" label="周选择" picker="week" />
<DatePickerToday name="monthPicker" label="月份选择" picker="month" />
<DatePickerToday name="yearPicker" label="年份选择" picker="year" />
<DatePickerToday
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@kne/react-form-antd",
"version": "4.1.1",
"version": "4.1.2",
"syntax": {
"esmodules": true
},
Expand Down Expand Up @@ -60,7 +60,7 @@
"react": ">=18.x"
},
"dependencies": {
"@kne/react-form": "^3.1.6",
"@kne/react-form": "^3.1.8",
"@kne/react-form-helper": "^3.0.2",
"@kne/react-intl": "^0.1.12",
"@kne/use-control-value": "^0.1.1",
Expand Down
32 changes: 25 additions & 7 deletions src/fields/DatePickerToday.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,17 @@ const PickerTodayInner = ({soFarText, soFarValue = 'soFar', picker = 'date', ...

const soFarLabel = soFarText || formatMessage({id: 'SoFar'});

// 根据 picker 类型获取格式化字符串
const formatPattern = useMemo(() => {
const patterns = {
date: 'YYYY-MM-DD',
week: 'YYYY-wo',
month: 'YYYY-MM',
year: 'YYYY'
};
return patterns[picker] || 'YYYY-MM-DD';
}, [picker]);

// 判断是否有值
const hasValue = useMemo(() => {
const [start, end] = data || [];
Expand All @@ -45,16 +56,16 @@ const PickerTodayInner = ({soFarText, soFarValue = 'soFar', picker = 'date', ...
const displayText = useMemo(() => {
// 开始时间:有临时值时显示临时值
const startText = tempStart
? tempStart.format('YYYY-MM-DD')
: (parsedValue.start ? parsedValue.start.format('YYYY-MM-DD') : '');
? tempStart.format(formatPattern)
: (parsedValue.start ? parsedValue.start.format(formatPattern) : '');

// 结束时间:有临时值时显示临时值
const endText = tempEnd
? tempEnd.format('YYYY-MM-DD')
: (isSoFar ? soFarLabel : (parsedValue.end ? parsedValue.end.format('YYYY-MM-DD') : ''));
? tempEnd.format(formatPattern)
: (isSoFar ? soFarLabel : (parsedValue.end ? parsedValue.end.format(formatPattern) : ''));

return {start: startText, end: endText};
}, [parsedValue, isSoFar, soFarLabel, tempStart, tempEnd]);
}, [parsedValue, isSoFar, soFarLabel, tempStart, tempEnd, formatPattern]);

// 点击整个Input框时,先弹出开始时间选择
const handleInputClick = useCallback(() => {
Expand Down Expand Up @@ -151,8 +162,15 @@ const PickerTodayInner = ({soFarText, soFarValue = 'soFar', picker = 'date', ...
// 结束时间的可选日期(不能早于开始时间)
const endDisabledDate = useCallback((current) => {
if (!tempStart) return false;
return current && current < tempStart.startOf('day');
}, [tempStart]);
const startOfMap = {
date: 'day',
week: 'week',
month: 'month',
year: 'year'
};
const unit = startOfMap[picker] || 'day';
return current && current < tempStart.startOf(unit);
}, [tempStart, picker]);

return (<div className="date-picker-today-container" ref={containerRef}>
<div
Expand Down
Loading