feat: 添加日期验证功能,确保发行日期不早于当前日期,申购截止日期不早于发行日期
This commit is contained in:
@@ -34,10 +34,23 @@ const schema = toTypedSchema(yup.object({
|
||||
editions: yup.array().of(
|
||||
yup.object({
|
||||
editionName: yup.string().required(t("asset.issue.apply.validation.editionNameRequired")),
|
||||
launchDate: yup.string().required(t("asset.issue.apply.validation.launchDateRequired")),
|
||||
launchDate: yup.string()
|
||||
.required(t("asset.issue.apply.validation.launchDateRequired"))
|
||||
.test("not-past", t("asset.issue.apply.validation.launchDateNotPast"), (value) => {
|
||||
if (!value)
|
||||
return true;
|
||||
return new Date(value) >= new Date(now.value.toDateString());
|
||||
}),
|
||||
perUserLimit: yup.string().required(t("asset.issue.apply.validation.perUserLimitRequired")),
|
||||
totalSupply: yup.string().required(t("asset.issue.apply.validation.totalSupplyRequired")),
|
||||
subscriptionDeadline: yup.string().required(t("asset.issue.apply.validation.subscriptionDeadlineRequired")),
|
||||
subscriptionDeadline: yup.string()
|
||||
.required(t("asset.issue.apply.validation.subscriptionDeadlineRequired"))
|
||||
.test("after-launch", t("asset.issue.apply.validation.deadlineAfterLaunch"), function (value) {
|
||||
const { launchDate } = this.parent;
|
||||
if (!value || !launchDate)
|
||||
return true;
|
||||
return new Date(value) >= new Date(launchDate);
|
||||
}),
|
||||
unitPrice: yup.string().required(t("asset.issue.apply.validation.unitPriceRequired")),
|
||||
dividendRate: yup.string().required(t("asset.issue.apply.validation.dividendRateRequired")),
|
||||
}),
|
||||
@@ -47,11 +60,6 @@ const schema = toTypedSchema(yup.object({
|
||||
function handleSubmit(values: GenericObject) {
|
||||
emit("submit", values.editions);
|
||||
}
|
||||
function handleChange(event: Event) {
|
||||
debugger;
|
||||
const input = event.target as HTMLInputElement;
|
||||
return new Date(input.value);
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -70,18 +78,6 @@ function handleChange(event: Event) {
|
||||
</Field>
|
||||
<ErrorMessage :name="`editions[${idx}].editionName`" />
|
||||
</div>
|
||||
<div>
|
||||
<Field :name="`editions[${idx}].launchDate`">
|
||||
<template #default="{ field }">
|
||||
<ui-datetime
|
||||
v-bind="field"
|
||||
:label="t('asset.issue.apply.launchDate')"
|
||||
:formatter-value="(val) => new Date(val).toISOString()"
|
||||
/>
|
||||
</template>
|
||||
</Field>
|
||||
<ErrorMessage :name="`editions[${idx}].launchDate`" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Field :name="`editions[${idx}].perUserLimit`" type="text">
|
||||
@@ -115,15 +111,41 @@ function handleChange(event: Event) {
|
||||
|
||||
<div>
|
||||
<Field :name="`editions[${idx}].subscriptionDeadline`">
|
||||
<template #default="{ field }">
|
||||
<ui-datetime
|
||||
v-bind="field"
|
||||
:label="t('asset.issue.apply.subscriptionDeadline')"
|
||||
:formatter-value="(val) => new Date(val).toISOString()"
|
||||
/>
|
||||
<template #default="{ setValue }">
|
||||
<Field :name="`editions[${idx}].launchDate`">
|
||||
<template #default="{ field }">
|
||||
<ui-datetime
|
||||
datetime="launchDate"
|
||||
v-bind="field"
|
||||
:label="t('asset.issue.apply.launchDate')"
|
||||
:min="now.toISOString()"
|
||||
@update:value="(val) => {
|
||||
setValue(val);
|
||||
}"
|
||||
/>
|
||||
</template>
|
||||
</Field>
|
||||
<ErrorMessage :name="`editions[${idx}].launchDate`" />
|
||||
</template>
|
||||
</Field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<Field :name="`editions[${idx}].launchDate`">
|
||||
<template #default="{ value: launchDate }">
|
||||
<Field :name="`editions[${idx}].subscriptionDeadline`">
|
||||
<template #default="{ field }">
|
||||
<ui-datetime
|
||||
datetime="subscriptionDeadline"
|
||||
v-bind="field"
|
||||
:label="t('asset.issue.apply.subscriptionDeadline')"
|
||||
:min="launchDate ? new Date(launchDate).toISOString() : now.toISOString()"
|
||||
/>
|
||||
</template>
|
||||
</Field>
|
||||
<ErrorMessage :name="`editions[${idx}].subscriptionDeadline`" />
|
||||
</template>
|
||||
</Field>
|
||||
<ErrorMessage :name="`editions[${idx}].subscriptionDeadline`" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user