feat: 表单过期

This commit is contained in:
2026-01-26 13:26:46 +08:00
parent dc469add22
commit 564e179082
5 changed files with 84 additions and 12 deletions

View File

@@ -7,16 +7,16 @@
<div class="title poppins-medium">Application Form</div>
<div
class="form-header"
v-if="!isCompleted"
v-if="!isCompleted && !isExpired"
>
<div class="form-title poppins-bold">Email Verification</div>
<div class="desc">AiDA Users Only</div>
</div>
</div>
<Success v-if="isCompleted" />
<Success :isExpired="isExpired" v-if="isCompleted || isExpired" />
<div
class="form-container"
v-if="!isCompleted"
v-if="!isCompleted && !isExpired"
>
<div class="form-content">
<a-form
@@ -154,6 +154,7 @@
class="full-row"
name="pdfPath"
required
:validate-trigger="[]"
label="How will you use AiDA in your design process?"
>
<div
@@ -205,6 +206,7 @@
class="full-row"
name="videoPath"
required
:validate-trigger="[]"
label="How will you use AiDA in your design process?"
>
<div
@@ -348,6 +350,13 @@
import UploadStatus from './components/UploadStatus.vue'
import Success from './components/Success.vue'
// 是否晚于2026年7月22日
const isExpired = computed(() => {
const now = new Date()
const targetDate = new Date('2026-03-15')
return now > targetDate
})
const route = useRoute()
const isCompleted = ref(false)
const hasValidEmail = ref(false)
@@ -432,6 +441,36 @@
],
lastName: [
{ required: true, message: 'Please input your last name', trigger: 'blur' }
],
gender: [
{ required: true, message: 'Please select your gender', trigger: 'blur' }
],
occupation: [
{ required: true, message: 'Please input your occupation', trigger: 'blur' }
],
age: [{ required: true, message: 'Please input your age', trigger: 'blur' }],
countryRegionCity: [
{
required: true,
message: 'Please input your country/region and city',
trigger: 'blur'
}
],
phoneNumber: [{ required: true, validator: validatePhone, trigger: 'blur' }],
designTitle: [
{ required: true, message: 'Please input your design title', trigger: 'blur' }
],
designDescription: [
{
required: true,
message: 'Please input your design description',
trigger: 'blur'
}
],
pdfPath: [{ required: true, message: 'Please upload your PDF', trigger: 'null' }],
videoPath: [
{ required: true, message: 'Please upload your video', trigger: 'null' }
]
}
@@ -962,8 +1001,9 @@
height: 1rem;
}
.apply-container {
min-height: calc(100% -18rem);
min-height: calc(100% - 18rem);
background-color: #f5f5f5;
box-sizing: border-box;
}
.banner {