feat[data-picker]: improve format types and docs (#6371)
Co-authored-by: xiamingming1 <xiamingming@jd.com>pull/6375/head
parent
0a610d818f
commit
e5e20cca5b
|
@ -34,6 +34,11 @@ function commonProps<DateType = any>() {
|
||||||
defaultOpen: { type: Boolean, default: undefined },
|
defaultOpen: { type: Boolean, default: undefined },
|
||||||
/** Make input readOnly to avoid popup keyboard in mobile */
|
/** Make input readOnly to avoid popup keyboard in mobile */
|
||||||
inputReadOnly: { type: Boolean, default: undefined },
|
inputReadOnly: { type: Boolean, default: undefined },
|
||||||
|
format: {
|
||||||
|
type: [String, Function, Array] as PropType<
|
||||||
|
string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[]
|
||||||
|
>,
|
||||||
|
},
|
||||||
// Value
|
// Value
|
||||||
// format: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];
|
// format: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];
|
||||||
// Render
|
// Render
|
||||||
|
@ -107,6 +112,7 @@ export interface CommonProps<DateType> {
|
||||||
open?: boolean;
|
open?: boolean;
|
||||||
defaultOpen?: boolean;
|
defaultOpen?: boolean;
|
||||||
inputReadOnly?: boolean;
|
inputReadOnly?: boolean;
|
||||||
|
format?: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];
|
||||||
suffixIcon?: VueNode;
|
suffixIcon?: VueNode;
|
||||||
clearIcon?: VueNode;
|
clearIcon?: VueNode;
|
||||||
prevIcon?: VueNode;
|
prevIcon?: VueNode;
|
||||||
|
@ -151,11 +157,6 @@ function datePickerProps<DateType = any>() {
|
||||||
defaultValue: { type: [String, Object] as PropType<DateType | string> },
|
defaultValue: { type: [String, Object] as PropType<DateType | string> },
|
||||||
value: { type: [String, Object] as PropType<DateType | string> },
|
value: { type: [String, Object] as PropType<DateType | string> },
|
||||||
disabledTime: { type: Function as PropType<DisabledTime<DateType>> },
|
disabledTime: { type: Function as PropType<DisabledTime<DateType>> },
|
||||||
format: {
|
|
||||||
type: [String, Function, Array] as PropType<
|
|
||||||
string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[]
|
|
||||||
>,
|
|
||||||
},
|
|
||||||
renderExtraFooter: { type: Function as PropType<(mode: PanelMode) => VueNode> },
|
renderExtraFooter: { type: Function as PropType<(mode: PanelMode) => VueNode> },
|
||||||
showNow: { type: Boolean, default: undefined },
|
showNow: { type: Boolean, default: undefined },
|
||||||
monthCellRender: { type: Function as PropType<MonthCellRender<DateType>> },
|
monthCellRender: { type: Function as PropType<MonthCellRender<DateType>> },
|
||||||
|
@ -169,7 +170,6 @@ export interface DatePickerProps<DateType> {
|
||||||
defaultValue?: DateType | string;
|
defaultValue?: DateType | string;
|
||||||
value?: DateType | string;
|
value?: DateType | string;
|
||||||
disabledTime?: DisabledTime<DateType>;
|
disabledTime?: DisabledTime<DateType>;
|
||||||
format?: string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];
|
|
||||||
renderExtraFooter?: (mode: PanelMode) => VueNode;
|
renderExtraFooter?: (mode: PanelMode) => VueNode;
|
||||||
showNow?: boolean;
|
showNow?: boolean;
|
||||||
monthCellRender?: MonthCellRender<DateType>;
|
monthCellRender?: MonthCellRender<DateType>;
|
||||||
|
@ -190,7 +190,6 @@ function rangePickerProps<DateType>() {
|
||||||
type: Function as PropType<(date: EventValue<DateType>, type: RangeType) => DisabledTimes>,
|
type: Function as PropType<(date: EventValue<DateType>, type: RangeType) => DisabledTimes>,
|
||||||
},
|
},
|
||||||
disabled: { type: [Boolean, Array] as unknown as PropType<boolean | [boolean, boolean]> },
|
disabled: { type: [Boolean, Array] as unknown as PropType<boolean | [boolean, boolean]> },
|
||||||
format: String,
|
|
||||||
renderExtraFooter: { type: Function as PropType<() => VueNode> },
|
renderExtraFooter: { type: Function as PropType<() => VueNode> },
|
||||||
separator: { type: String },
|
separator: { type: String },
|
||||||
ranges: {
|
ranges: {
|
||||||
|
@ -242,7 +241,6 @@ export interface RangePickerProps<DateType> {
|
||||||
value?: RangeValue<DateType> | RangeValue<string>;
|
value?: RangeValue<DateType> | RangeValue<string>;
|
||||||
disabledTime?: (date: EventValue<DateType>, type: RangeType) => DisabledTimes;
|
disabledTime?: (date: EventValue<DateType>, type: RangeType) => DisabledTimes;
|
||||||
disabled?: [boolean, boolean];
|
disabled?: [boolean, boolean];
|
||||||
format?: string;
|
|
||||||
renderExtraFooter?: () => VueNode;
|
renderExtraFooter?: () => VueNode;
|
||||||
separator?: string;
|
separator?: string;
|
||||||
ranges?: Record<
|
ranges?: Record<
|
||||||
|
|
|
@ -83,6 +83,7 @@ The following APIs are shared by DatePicker, RangePicker.
|
||||||
| dateRender | Custom rendering function for date cells | v-slot:dateRender="{current, today}" | - | |
|
| dateRender | Custom rendering function for date cells | v-slot:dateRender="{current, today}" | - | |
|
||||||
| disabled | Determine whether the DatePicker is disabled | boolean | false | |
|
| disabled | Determine whether the DatePicker is disabled | boolean | false | |
|
||||||
| disabledDate | Specify the date that cannot be selected | (currentDate: dayjs) => boolean | - | |
|
| disabledDate | Specify the date that cannot be selected | (currentDate: dayjs) => boolean | - | |
|
||||||
|
| format | To set the date format, refer to [dayjs](https://day.js.org/). When an array is provided, all values are used for parsing and first value is used for formatting, support [Custom Format](#components-date-picker-demo-format) | [formatType](#formatType) | `YYYY-MM-DD` | |
|
||||||
| dropdownClassName | To customize the className of the popup calendar | string | - | |
|
| dropdownClassName | To customize the className of the popup calendar | string | - | |
|
||||||
| getPopupContainer | To set the container of the floating layer, while the default is to create a `div` element in `body` | function(trigger) | - | |
|
| getPopupContainer | To set the container of the floating layer, while the default is to create a `div` element in `body` | function(trigger) | - | |
|
||||||
| inputReadOnly | Set the `readonly` attribute of the input tag (avoids virtual keyboard on touch devices) | boolean | false | |
|
| inputReadOnly | Set the `readonly` attribute of the input tag (avoids virtual keyboard on touch devices) | boolean | false | |
|
||||||
|
@ -120,7 +121,7 @@ The following APIs are shared by DatePicker, RangePicker.
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| defaultPickerValue | To set default picker date | [dayjs](https://day.js.org/) | - | |
|
| defaultPickerValue | To set default picker date | [dayjs](https://day.js.org/) | - | |
|
||||||
| disabledTime | To specify the time that cannot be selected | function(date) | - | |
|
| disabledTime | To specify the time that cannot be selected | function(date) | - | |
|
||||||
| format | To set the date format, refer to [dayjs](https://day.js.org/). When an array is provided, all values are used for parsing and first value is used for formatting, support [Custom Format](#components-date-picker-demo-format) | string \| (value: dayjs) => string \| (string \| (value: dayjs) => string)\[] | `YYYY-MM-DD` | |
|
| format | To set the date format, refer to [dayjs](https://day.js.org/) | [formatType](#formatType) | `YYYY-MM-DD` | |
|
||||||
| renderExtraFooter | Render extra footer in panel | v-slot:renderExtraFooter="mode" | - | |
|
| renderExtraFooter | Render extra footer in panel | v-slot:renderExtraFooter="mode" | - | |
|
||||||
| showNow | Whether to show 'Now' button on panel when `showTime` is set | boolean | - | |
|
| showNow | Whether to show 'Now' button on panel when `showTime` is set | boolean | - | |
|
||||||
| showTime | To provide an additional time selection | object \| boolean | [TimePicker Options](/components/time-picker/#API) | |
|
| showTime | To provide an additional time selection | object \| boolean | [TimePicker Options](/components/time-picker/#API) | |
|
||||||
|
@ -139,26 +140,26 @@ The following APIs are shared by DatePicker, RangePicker.
|
||||||
|
|
||||||
| Property | Description | Type | Default | Version |
|
| Property | Description | Type | Default | Version |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | To set the date format, refer to [dayjs](https://day.js.org/) | string | `YYYY` | |
|
| format | To set the date format, refer to [dayjs](https://day.js.org/) | [formatType](#formatType) | `YYYY` | |
|
||||||
|
|
||||||
### DatePicker\[picker=quarter]
|
### DatePicker\[picker=quarter]
|
||||||
|
|
||||||
| Property | Description | Type | Default | Version |
|
| Property | Description | Type | Default | Version |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | To set the date format, refer to [dayjs](https://day.js.org/) | string | `YYYY-\QQ` | |
|
| format | To set the date format, refer to [dayjs](https://day.js.org/) | [formatType](#formatType) | `YYYY-\QQ` | |
|
||||||
|
|
||||||
### DatePicker\[picker=month]
|
### DatePicker\[picker=month]
|
||||||
|
|
||||||
| Property | Description | Type | Default | Version |
|
| Property | Description | Type | Default | Version |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | To set the date format, refer to [dayjs](https://day.js.org/) | string | `YYYY-MM` | |
|
| format | To set the date format, refer to [dayjs](https://day.js.org/) | [formatType](#formatType) | `YYYY-MM` | |
|
||||||
| monthCellRender | Custom month cell content render method | v-slot:monthCellRender="{current, locale}" | - | |
|
| monthCellRender | Custom month cell content render method | v-slot:monthCellRender="{current, locale}" | - | |
|
||||||
|
|
||||||
### DatePicker\[picker=week]
|
### DatePicker\[picker=week]
|
||||||
|
|
||||||
| Property | Description | Type | Default | Version |
|
| Property | Description | Type | Default | Version |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | To set the date format, refer to [dayjs](https://day.js.org/) | string | `YYYY-wo` | |
|
| format | To set the date format, refer to [dayjs](https://day.js.org/) | [formatType](#formatType) | `YYYY-wo` | |
|
||||||
|
|
||||||
### RangePicker
|
### RangePicker
|
||||||
|
|
||||||
|
@ -169,7 +170,7 @@ The following APIs are shared by DatePicker, RangePicker.
|
||||||
| defaultPickerValue | To set default picker date | \[[dayjs](https://day.js.org/), [dayjs](https://day.js.org/)] | - | |
|
| defaultPickerValue | To set default picker date | \[[dayjs](https://day.js.org/), [dayjs](https://day.js.org/)] | - | |
|
||||||
| disabled | If disable start or end | \[boolean, boolean] | - | |
|
| disabled | If disable start or end | \[boolean, boolean] | - | |
|
||||||
| disabledTime | To specify the time that cannot be selected | function(date: dayjs, partial: `start` \| `end`) | - | |
|
| disabledTime | To specify the time that cannot be selected | function(date: dayjs, partial: `start` \| `end`) | - | |
|
||||||
| format | To set the date format, refer to [dayjs](https://day.js.org/). When an array is provided, all values are used for parsing and first value is used for formatting | string \| string\[] | `YYYY-MM-DD HH:mm:ss` | |
|
| format | To set the date format, refer to [dayjs](https://day.js.org/) | [formatType](#formatType) | `YYYY-MM-DD HH:mm:ss` | |
|
||||||
| ranges | The preseted ranges for quick selection | { \[range: string]: [dayjs](https://day.js.org/)\[] } \| { \[range: string]: () => [dayjs](https://day.js.org/)\[] } | - | |
|
| ranges | The preseted ranges for quick selection | { \[range: string]: [dayjs](https://day.js.org/)\[] } \| { \[range: string]: () => [dayjs](https://day.js.org/)\[] } | - | |
|
||||||
| renderExtraFooter | Render extra footer in panel | v-slot:renderExtraFooter="mode" | - | |
|
| renderExtraFooter | Render extra footer in panel | v-slot:renderExtraFooter="mode" | - | |
|
||||||
| separator | Set separator between inputs | string \| v-slot:separator | `<SwapRightOutlined />` | |
|
| separator | Set separator between inputs | string \| v-slot:separator | `<SwapRightOutlined />` | |
|
||||||
|
@ -185,6 +186,17 @@ The following APIs are shared by DatePicker, RangePicker.
|
||||||
| change | a callback function, can be executed when the selected time is changing | function(dates: \[dayjs, dayjs] \| \[string, string], dateStrings: \[string, string]) | | |
|
| change | a callback function, can be executed when the selected time is changing | function(dates: \[dayjs, dayjs] \| \[string, string], dateStrings: \[string, string]) | | |
|
||||||
| ok | callback when click ok button | function(dates: \[dayjs, dayjs] \| \[string, string]) | | |
|
| ok | callback when click ok button | function(dates: \[dayjs, dayjs] \| \[string, string]) | | |
|
||||||
|
|
||||||
|
#### formatType
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import type { Dayjs } from 'dayjs';
|
||||||
|
|
||||||
|
type Generic = string;
|
||||||
|
type GenericFn = (value: Dayjs) => string;
|
||||||
|
|
||||||
|
export type FormatType = Generic | GenericFn | Array<Generic | GenericFn>;
|
||||||
|
```
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
### How to use DatePicker with customize date library(like moment.js \| dayjs \| date-fns)?
|
### How to use DatePicker with customize date library(like moment.js \| dayjs \| date-fns)?
|
||||||
|
|
|
@ -84,6 +84,7 @@ cover: https://gw.alipayobjects.com/zos/alicdn/RT_USzA48/DatePicker.svg
|
||||||
| dateRender | 自定义日期单元格的内容 | v-slot:dateRender="{current, today}" | - | |
|
| dateRender | 自定义日期单元格的内容 | v-slot:dateRender="{current, today}" | - | |
|
||||||
| disabled | 禁用 | boolean | false | |
|
| disabled | 禁用 | boolean | false | |
|
||||||
| disabledDate | 不可选择的日期 | (currentDate: dayjs) => boolean | - | |
|
| disabledDate | 不可选择的日期 | (currentDate: dayjs) => boolean | - | |
|
||||||
|
| format | 设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format),支持[自定义格式](#components-date-picker-demo-format) | [formatType](#formatType) | `YYYY-MM-DD` | |
|
||||||
| dropdownClassName | 额外的弹出日历 className | string | - | |
|
| dropdownClassName | 额外的弹出日历 className | string | - | |
|
||||||
| getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
|
| getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
|
||||||
| inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
|
| inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
|
||||||
|
@ -121,7 +122,7 @@ cover: https://gw.alipayobjects.com/zos/alicdn/RT_USzA48/DatePicker.svg
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| defaultPickerValue | 默认面板日期 | [dayjs](https://day.js.org/) | - | |
|
| defaultPickerValue | 默认面板日期 | [dayjs](https://day.js.org/) | - | |
|
||||||
| disabledTime | 不可选择的时间 | function(date) | - | |
|
| disabledTime | 不可选择的时间 | function(date) | - | |
|
||||||
| format | 设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format),支持[自定义格式](#components-date-picker-demo-format) | string \| (value: dayjs) => string \| (string \| (value: dayjs) => string)\[] | `YYYY-MM-DD` | |
|
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | [formatType](#formatType) | `YYYY-MM-DD` | |
|
||||||
| renderExtraFooter | 在面板中添加额外的页脚 | v-slot:renderExtraFooter="mode" | - | |
|
| renderExtraFooter | 在面板中添加额外的页脚 | v-slot:renderExtraFooter="mode" | - | |
|
||||||
| showNow | 当设定了 `showTime` 的时候,面板是否显示“此刻”按钮 | boolean | - | |
|
| showNow | 当设定了 `showTime` 的时候,面板是否显示“此刻”按钮 | boolean | - | |
|
||||||
| showTime | 增加时间选择功能 | Object \| boolean | [TimePicker Options](/components/time-picker/#API) | |
|
| showTime | 增加时间选择功能 | Object \| boolean | [TimePicker Options](/components/time-picker/#API) | |
|
||||||
|
@ -140,26 +141,26 @@ cover: https://gw.alipayobjects.com/zos/alicdn/RT_USzA48/DatePicker.svg
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | string | `YYYY` | |
|
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | [formatType](#formatType) | `YYYY` | |
|
||||||
|
|
||||||
### DatePicker\[picker=quarter]
|
### DatePicker\[picker=quarter]
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | string | `YYYY-\QQ` | |
|
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | [formatType](#formatType) | `YYYY-\QQ` | |
|
||||||
|
|
||||||
### DatePicker\[picker=month]
|
### DatePicker\[picker=month]
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | string | `YYYY-MM` | |
|
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | [formatType](#formatType) | `YYYY-MM` | |
|
||||||
| monthCellRender | 自定义的月份内容渲染方法 | v-slot:monthCellRender="{current, locale}" | - | |
|
| monthCellRender | 自定义的月份内容渲染方法 | v-slot:monthCellRender="{current, locale}" | - | |
|
||||||
|
|
||||||
### DatePicker\[picker=week]
|
### DatePicker\[picker=week]
|
||||||
|
|
||||||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | string | `YYYY-wo` | |
|
| format | 展示的日期格式,配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) | [formatType](#formatType) | `YYYY-wo` | |
|
||||||
|
|
||||||
### RangePicker
|
### RangePicker
|
||||||
|
|
||||||
|
@ -170,7 +171,7 @@ cover: https://gw.alipayobjects.com/zos/alicdn/RT_USzA48/DatePicker.svg
|
||||||
| defaultPickerValue | 默认面板日期 | [dayjs](https://day.js.org/)\[] | - | |
|
| defaultPickerValue | 默认面板日期 | [dayjs](https://day.js.org/)\[] | - | |
|
||||||
| disabled | 禁用起始项 | \[boolean, boolean] | - | |
|
| disabled | 禁用起始项 | \[boolean, boolean] | - | |
|
||||||
| disabledTime | 不可选择的时间 | function(date: dayjs, partial: `start` \| `end`) | - | |
|
| disabledTime | 不可选择的时间 | function(date: dayjs, partial: `start` \| `end`) | - | |
|
||||||
| format | 展示的日期格式 | string | `YYYY-MM-DD HH:mm:ss` | |
|
| format | 展示的日期格式 | [formatType](#formatType) | `YYYY-MM-DD HH:mm:ss` | |
|
||||||
| ranges | 预设时间范围快捷选择 | { \[range: string]: [dayjs](https://day.js.org/)\[] } \| { \[range: string]: () => [dayjs](https://day.js.org/)\[] } | - | |
|
| ranges | 预设时间范围快捷选择 | { \[range: string]: [dayjs](https://day.js.org/)\[] } \| { \[range: string]: () => [dayjs](https://day.js.org/)\[] } | - | |
|
||||||
| renderExtraFooter | 在面板中添加额外的页脚 | v-slot:renderExtraFooter="mode" | - | |
|
| renderExtraFooter | 在面板中添加额外的页脚 | v-slot:renderExtraFooter="mode" | - | |
|
||||||
| separator | 设置分隔符 | string \| v-slot:separator | `<SwapRightOutlined />` | |
|
| separator | 设置分隔符 | string \| v-slot:separator | `<SwapRightOutlined />` | |
|
||||||
|
@ -186,6 +187,17 @@ cover: https://gw.alipayobjects.com/zos/alicdn/RT_USzA48/DatePicker.svg
|
||||||
| change | 日期范围发生变化的回调 | function(dates: \[dayjs, dayjs] \| \[string, string], dateStrings: \[string, string]) |
|
| change | 日期范围发生变化的回调 | function(dates: \[dayjs, dayjs] \| \[string, string], dateStrings: \[string, string]) |
|
||||||
| ok | 点击确定按钮的回调 | function(dates: \[dayjs, dayjs] \| \[string, string]) |
|
| ok | 点击确定按钮的回调 | function(dates: \[dayjs, dayjs] \| \[string, string]) |
|
||||||
|
|
||||||
|
#### formatType
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import type { Dayjs } from 'dayjs';
|
||||||
|
|
||||||
|
type Generic = string;
|
||||||
|
type GenericFn = (value: Dayjs) => string;
|
||||||
|
|
||||||
|
export type FormatType = Generic | GenericFn | Array<Generic | GenericFn>;
|
||||||
|
```
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
### 如何在 DatePicker 中使用自定义日期库(如 moment.js \| dayjs \| date-fns)?
|
### 如何在 DatePicker 中使用自定义日期库(如 moment.js \| dayjs \| date-fns)?
|
||||||
|
|
Loading…
Reference in New Issue