From 45b10ef109229ca72835dc5f3f8eb540e11d8c9e Mon Sep 17 00:00:00 2001 From: panwei <1184734081@qq.com> Date: Mon, 17 Feb 2020 15:40:34 +0800 Subject: [PATCH 1/2] feat(custom month title) --- examples/basic.tsx | 16 ++++++++++++++++ package.json | 16 ++++++++-------- src/Calendar.tsx | 3 ++- src/CalendarProps.ts | 2 ++ src/DatePicker.tsx | 2 ++ src/DatePickerProps.ts | 1 + src/date/SingleMonth.tsx | 6 ++++-- 7 files changed, 35 insertions(+), 11 deletions(-) diff --git a/examples/basic.tsx b/examples/basic.tsx index 3347239..9050a00 100644 --- a/examples/basic.tsx +++ b/examples/basic.tsx @@ -64,6 +64,21 @@ class BasicDemo extends React.Component<{}, { ; } + renderMonthTitle = (date:Date) => { + const style = {color:'rgba(25,124,217,1)',fontWeight:600,fontSize:14,lineHeight:22} + return
+ {`${date.getFullYear()}年`} + {`${date.getMonth()}月`} +
+ } + + render() { return (
@@ -120,6 +135,7 @@ class BasicDemo extends React.Component<{}, { }} minDate={new Date(+new Date - 62 * 24 * 3600 * 1000)} maxDate={new Date(+new Date + 365 * 24 * 3600 * 1000)} + renderMonthTitle={this.renderMonthTitle} />
); diff --git a/package.json b/package.json index 8171c70..a9d9855 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "main": "./lib/index", "module": "./es/index", "config": { - "port": 8021 + "port": 8899 }, "scripts": { "watch-tsc": "rc-tools run watch-tsc", @@ -66,19 +66,19 @@ "rmc-date-picker": "~6.0.0-alpha.10" }, "devDependencies": { - "@types/jest": "^21.1.2", - "jest": "^21.2.1", "@types/enzyme": "^2.8.11", - "enzyme": "^3.1.0", "@types/enzyme-to-json": "^1.5.0", - "enzyme-to-json": "^3.1.2", - "enzyme-adapter-react-15": "^1.0.1", - "coveralls": "^3.0.0", + "@types/jest": "^21.1.2", "@types/react": "^16.0.10", "@types/react-dom": "^16.0.1", + "coveralls": "^3.0.0", + "enzyme": "^3.1.0", + "enzyme-adapter-react-15": "^1.0.1", + "enzyme-to-json": "^3.1.2", + "jest": "^21.2.1", "pre-commit": "1.x", "rc-test": "^6.0.8", - "rc-tools": "^7.0.0", + "rc-tools": "^9.5.3", "react": "^15.x", "react-dom": "^15.x", "react-test-renderer": "^15.x", diff --git a/src/Calendar.tsx b/src/Calendar.tsx index e263a2d..1bc71d0 100644 --- a/src/Calendar.tsx +++ b/src/Calendar.tsx @@ -191,7 +191,7 @@ export default class Calendar extends React.PureComponent type, locale = {} as Models.Locale, prefixCls, visible, pickTime, showShortcut, renderHeader, infiniteOpt, initalMonths, defaultDate, minDate, maxDate, getDateExtra, rowSize, defaultTimeValue, renderShortcut, enterDirection, timePickerPrefixCls, timePickerPickerPrefixCls, - style, + style,renderMonthTitle } = this.props; const { showTimePicker, timePickerTitle, @@ -233,6 +233,7 @@ export default class Calendar extends React.PureComponent startDate={startDate} endDate={endDate} rowSize={rowSize} + renderMonthTitle={renderMonthTitle} /> { showTimePicker && diff --git a/src/CalendarProps.ts b/src/CalendarProps.ts index ad773ee..8ff0598 100644 --- a/src/CalendarProps.ts +++ b/src/CalendarProps.ts @@ -59,4 +59,6 @@ export default interface PropsType { defaultTimeValue?: Date; timePickerPrefixCls?: string; timePickerPickerPrefixCls?: string; + /** 自定义月的标题 */ + renderMonthTitle?:(date:Date) => React.ReactNode } diff --git a/src/DatePicker.tsx b/src/DatePicker.tsx index 1161366..04db9a5 100644 --- a/src/DatePicker.tsx +++ b/src/DatePicker.tsx @@ -14,12 +14,14 @@ export default class DatePicker extends Component { genMonthComponent = (data?: Models.MonthData) => { if (!data) return; + const { renderMonthTitle } = this.props return renderMonthTitle(data.firstDate) : undefined} ref={(dom) => { // FIXME?: sometimes will callback twice, and the second is null, when use preact. data.componentRef = dom || data.componentRef || undefined; diff --git a/src/DatePickerProps.ts b/src/DatePickerProps.ts index c63e385..ade709c 100644 --- a/src/DatePickerProps.ts +++ b/src/DatePickerProps.ts @@ -30,4 +30,5 @@ export default interface PropsType { rowSize?: 'normal' | 'xl'; /** 选择类型,default: range,one: 单日,range: 日期区间 */ type?: 'one' | 'range'; + renderMonthTitle?:(date:Date) => React.ReactNode } diff --git a/src/date/SingleMonth.tsx b/src/date/SingleMonth.tsx index d0bfac8..8ccdeba 100644 --- a/src/date/SingleMonth.tsx +++ b/src/date/SingleMonth.tsx @@ -7,6 +7,7 @@ export interface PropsType { rowSize?: 'normal' | 'xl'; getDateExtra?: (date: Date) => Models.ExtraData; onCellClick?: (data: Models.CellData, monthData: Models.MonthData) => void; + renderMonthTitle?:(date:Date) => React.ReactNode } export default class SingleMonth extends React.PureComponent
- {title} + {renderMonthTitle ? renderMonthTitle(firstDate): title}
{weekComponents} From 87cdd36d6404fe967bf6059fbf87e21aa9e9fa73 Mon Sep 17 00:00:00 2001 From: panwei <1184734081@qq.com> Date: Mon, 17 Feb 2020 15:41:37 +0800 Subject: [PATCH 2/2] feat(custom month title) --- examples/basic.tsx | 22 +++++++++++----------- src/Calendar.tsx | 2 +- src/CalendarProps.ts | 2 +- src/DatePicker.base.tsx | 2 +- src/DatePicker.tsx | 2 +- src/DatePickerProps.ts | 2 +- src/date/SingleMonth.tsx | 8 ++++---- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/examples/basic.tsx b/examples/basic.tsx index 9050a00..5fddcde 100644 --- a/examples/basic.tsx +++ b/examples/basic.tsx @@ -64,18 +64,18 @@ class BasicDemo extends React.Component<{}, {
; } - renderMonthTitle = (date:Date) => { - const style = {color:'rgba(25,124,217,1)',fontWeight:600,fontSize:14,lineHeight:22} + renderMonthTitle = (date: Date) => { + const style = { color: 'rgba(25,124,217,1)', fontWeight: 600, fontSize: 14, lineHeight: 22 }; return
- {`${date.getFullYear()}年`} - {`${date.getMonth()}月`} -
+ display: 'flex', + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + height: 40, + background: 'rgba(255,255,255,1) rgba(29,43,61,0.03)'}}> + {`${date.getFullYear()}年`} + {`${date.getMonth()}月`} + ; } diff --git a/src/Calendar.tsx b/src/Calendar.tsx index 1bc71d0..0a12b30 100644 --- a/src/Calendar.tsx +++ b/src/Calendar.tsx @@ -191,7 +191,7 @@ export default class Calendar extends React.PureComponent type, locale = {} as Models.Locale, prefixCls, visible, pickTime, showShortcut, renderHeader, infiniteOpt, initalMonths, defaultDate, minDate, maxDate, getDateExtra, rowSize, defaultTimeValue, renderShortcut, enterDirection, timePickerPrefixCls, timePickerPickerPrefixCls, - style,renderMonthTitle + style, renderMonthTitle } = this.props; const { showTimePicker, timePickerTitle, diff --git a/src/CalendarProps.ts b/src/CalendarProps.ts index 8ff0598..720bc38 100644 --- a/src/CalendarProps.ts +++ b/src/CalendarProps.ts @@ -60,5 +60,5 @@ export default interface PropsType { timePickerPrefixCls?: string; timePickerPickerPrefixCls?: string; /** 自定义月的标题 */ - renderMonthTitle?:(date:Date) => React.ReactNode + renderMonthTitle?: (date: Date) => React.ReactNode; } diff --git a/src/DatePicker.base.tsx b/src/DatePicker.base.tsx index 523593a..0a7e57e 100644 --- a/src/DatePicker.base.tsx +++ b/src/DatePicker.base.tsx @@ -213,7 +213,7 @@ export default abstract class DatePicker extends React.Component 0) { if (onSelectHasDisableDate) { diff --git a/src/DatePicker.tsx b/src/DatePicker.tsx index 04db9a5..0a2d7b9 100644 --- a/src/DatePicker.tsx +++ b/src/DatePicker.tsx @@ -14,7 +14,7 @@ export default class DatePicker extends Component { genMonthComponent = (data?: Models.MonthData) => { if (!data) return; - const { renderMonthTitle } = this.props + const { renderMonthTitle } = this.props; return React.ReactNode + renderMonthTitle?: (date: Date) => React.ReactNode; } diff --git a/src/date/SingleMonth.tsx b/src/date/SingleMonth.tsx index 8ccdeba..e2374ce 100644 --- a/src/date/SingleMonth.tsx +++ b/src/date/SingleMonth.tsx @@ -7,7 +7,7 @@ export interface PropsType { rowSize?: 'normal' | 'xl'; getDateExtra?: (date: Date) => Models.ExtraData; onCellClick?: (data: Models.CellData, monthData: Models.MonthData) => void; - renderMonthTitle?:(date:Date) => React.ReactNode + renderMonthTitle?: (date: Date) => React.ReactNode; } export default class SingleMonth extends React.PureComponent
- {renderMonthTitle ? renderMonthTitle(firstDate): title} + {renderMonthTitle ? renderMonthTitle(firstDate) : title}
{weekComponents}