feat(utils): 优化validatorEndTime和validatorTimeGTCurrentDay
parent
10b0876324
commit
c4260661fb
|
|
@ -345,14 +345,14 @@ export function processTreeDataForOnlyLastLevel(
|
|||
/**
|
||||
* 验证结束时间是否大于开始时间
|
||||
*/
|
||||
export function validatorEndTime(timeStart: string, message?: string): {
|
||||
export function validatorEndTime(options: { timeStart: string; message?: string; type?: "date" | "datetime" }): {
|
||||
validator: (_: any, value: any) => Promise<void | string>;
|
||||
};
|
||||
|
||||
/**
|
||||
* 验证时间是否大于等于当前时间
|
||||
*/
|
||||
export function validatorTimeGTCurrentDay(message?: string): {
|
||||
export function validatorTimeGTCurrentDay(options?: { message?: string; type?: "date" | "datetime" }): {
|
||||
validator: (_: any, value: any) => Promise<void | string>;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -486,10 +486,26 @@ export function processTreeDataForOnlyLastLevel(options) {
|
|||
/**
|
||||
* 验证结束时间是否大于开始时间
|
||||
*/
|
||||
export function validatorEndTime(timeStart, message = "结束时间不能早于开始时间") {
|
||||
export function validatorEndTime(options) {
|
||||
let { timeStart, message = "结束时间不能早于开始时间", type = "" } = options;
|
||||
|
||||
return {
|
||||
validator: (_, value) => {
|
||||
if (value && timeStart && value < timeStart)
|
||||
if (!value || !timeStart)
|
||||
return Promise.resolve();
|
||||
|
||||
const dateOnlyRegex = /^\d{4}-\d{2}-\d{2}$/;
|
||||
const dateTimeRegex = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/;
|
||||
if (!type) {
|
||||
if (dateOnlyRegex.test(timeStart))
|
||||
type = "date";
|
||||
else if (dateTimeRegex.test(timeStart))
|
||||
type = "datetime";
|
||||
}
|
||||
|
||||
const selectedDate = dayjs.isDayjs(value) ? value : dayjs(value);
|
||||
|
||||
if (selectedDate.isBefore(dayjs(timeStart), type === "date" ? "day" : "seconds"))
|
||||
return Promise.reject(message);
|
||||
else
|
||||
return Promise.resolve();
|
||||
|
|
@ -500,10 +516,15 @@ export function validatorEndTime(timeStart, message = "结束时间不能早于
|
|||
/**
|
||||
* 验证时间是否大于等于当前时间
|
||||
*/
|
||||
export function validatorTimeGTCurrentDay(message = "需要大于当前时间") {
|
||||
export function validatorTimeGTCurrentDay(options) {
|
||||
const { message = "需要大于当前时间", type = "date" } = options;
|
||||
return {
|
||||
validator: (_, value) => {
|
||||
if (value && value <= dayjs().format("YYYY-MM-DD HH:mm:ss"))
|
||||
if (!value)
|
||||
return Promise.resolve();
|
||||
|
||||
const selectedDate = dayjs.isDayjs(value) ? value : dayjs(value);
|
||||
if (selectedDate.isBefore(dayjs(), type === "date" ? "day" : "seconds"))
|
||||
return Promise.reject(message);
|
||||
else
|
||||
return Promise.resolve();
|
||||
|
|
|
|||
Loading…
Reference in New Issue