新版本开始,接到一个UI需求,要调整日期组件。问题是项目中一直使用antd日期组件,并不是公司自研的。
需求同步
这个需求描述:样式上,把企业自己的时间组件,修改成为三个内容的有表。左上由业务时间。例如:今天,昨天,明天角成。左下是一个可以自己选择的时间输入框。右侧整体是一个日期筛选。功能上,要求一部分修改后,其他两个部分跟着联动。
需求拆解
交互上,右侧是一个日期组件。再加项目上已经在使用antd组件库。这里可以选择的有两个,DatePicker日期输入组件和Calendar日期组件。由于交互上与DatePicker组件一致,如果使用Calendar组件,就要补齐更多功能,可预见的就是联动很不好做,所以这里不选择日历组件。
经过上面分析,确定这个需求使用DatePicker组件实现右侧日期。但是紧接着问题来了,DatePicker组件并不是单纯的日历,而是输入框+日历。所以就需要去掉输入框部分。
DetaPicker源码分析
在gitHub仓库中,ant-design/components/date-picker/generatePicker/generateSinglePicker.tsx目录下,可以看到渲染的内容是<RCPicker<DateType>>