2025-05-22 11:42:33 +00:00
|
|
|
|
<script setup>
|
2025-05-23 05:41:29 +00:00
|
|
|
|
import { ref } from 'vue';
|
2025-05-22 11:42:33 +00:00
|
|
|
|
|
2025-05-23 05:41:29 +00:00
|
|
|
|
const form = ref({
|
|
|
|
|
firstName: '',
|
|
|
|
|
lastName: '',
|
|
|
|
|
email: '',
|
|
|
|
|
company: '',
|
|
|
|
|
phone: '',
|
|
|
|
|
alertType: 'all',
|
|
|
|
|
});
|
|
|
|
|
const submitted = ref(false);
|
|
|
|
|
|
|
|
|
|
function handleSubmit(e) {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
submitted.value = true;
|
|
|
|
|
}
|
2025-05-22 11:42:33 +00:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
2025-05-23 05:46:42 +00:00
|
|
|
|
<main class="min-h-60vh flex flex-col items-center justify-center relative px-4 py-8">
|
2025-05-23 05:41:29 +00:00
|
|
|
|
<!-- Card -->
|
|
|
|
|
<div class="w-full max-w-90vw p-4 bg-white/95 rounded-2xl shadow-lg animate-bounce-in">
|
|
|
|
|
<template v-if="!submitted">
|
|
|
|
|
<h2 class="text-xl font-bold text-#8A5AFB mb-2 text-center tracking-wide">E-Mail Alerts</h2>
|
|
|
|
|
<p class="text-xs text-gray-500 mb-4 text-center">* Required Fields</p>
|
|
|
|
|
<form class="flex flex-col gap-3" @submit="handleSubmit">
|
|
|
|
|
<div>
|
|
|
|
|
<label class="block text-gray-700 font-semibold mb-1 text-sm">* First Name</label>
|
2025-05-23 06:16:42 +00:00
|
|
|
|
<input v-model="form.firstName" type="text" class="w-full px-3 py-2 rounded-lg border border-gray-300 outline-none bg-white/90 text-sm" />
|
2025-05-23 05:41:29 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<label class="block text-gray-700 font-semibold mb-1 text-sm">* Last Name</label>
|
2025-05-23 06:16:42 +00:00
|
|
|
|
<input v-model="form.lastName" type="text" class="w-full px-3 py-2 rounded-lg border border-gray-300 outline-none bg-white/90 text-sm" />
|
2025-05-23 05:41:29 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<label class="block text-gray-700 font-semibold mb-1 text-sm">* Email</label>
|
2025-05-23 06:16:42 +00:00
|
|
|
|
<input v-model="form.email" type="email" class="w-full px-3 py-2 rounded-lg border border-gray-300 outline-none bg-white/90 text-sm" />
|
2025-05-23 05:41:29 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<label class="block text-gray-700 font-semibold mb-1 text-sm">* Company</label>
|
2025-05-23 06:16:42 +00:00
|
|
|
|
<input v-model="form.company" type="text" class="w-full px-3 py-2 rounded-lg border border-gray-300 outline-none bg-white/90 text-sm" />
|
2025-05-23 05:41:29 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<label class="block text-gray-700 font-semibold mb-1 text-sm">Phone</label>
|
|
|
|
|
<input v-model="form.phone" type="tel" class="w-full px-3 py-2 rounded-lg border border-gray-300 outline-none bg-white/90 text-sm" />
|
|
|
|
|
</div>
|
|
|
|
|
<button type="submit" class="w-full py-3 rounded-xl bg-#8A5AFB text-white font-bold text-base active:scale-95 transition-all duration-200 animate-bounce-in animate-delay-200 mt-2">
|
|
|
|
|
Submit
|
|
|
|
|
</button>
|
|
|
|
|
</form>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<div class="flex flex-col items-center justify-center min-h-[200px] animate-bounce-in">
|
|
|
|
|
<span class="i-mdi:check-circle-outline text-green-500 text-4xl mb-3"></span>
|
|
|
|
|
<h2 class="text-lg font-bold text-#8A5AFB mb-2">Submitted successfully!</h2>
|
|
|
|
|
<div class="text-gray-700 text-sm mb-3">The information you submitted is as follows:</div>
|
|
|
|
|
<div class="w-full bg-white/90 rounded-xl shadow p-3 space-y-1 text-gray-800 text-sm">
|
|
|
|
|
<div><span class="font-semibold">First Name:</span>{{ form.firstName }}</div>
|
|
|
|
|
<div><span class="font-semibold">Last Name:</span>{{ form.lastName }}</div>
|
|
|
|
|
<div><span class="font-semibold">Email:</span>{{ form.email }}</div>
|
|
|
|
|
<div><span class="font-semibold">Company:</span>{{ form.company }}</div>
|
|
|
|
|
<div><span class="font-semibold">Phone:</span>{{ form.phone || '(Not filled)' }}</div>
|
|
|
|
|
<div><span class="font-semibold">Alert Type:</span>{{ form.alertType === 'all' ? 'All Alerts' : 'Customize Alerts' }}</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
2025-05-22 11:42:33 +00:00
|
|
|
|
</main>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
2025-05-23 05:41:29 +00:00
|
|
|
|
/* Keep mobile background simple */
|
2025-05-22 11:42:33 +00:00
|
|
|
|
</style>
|
|
|
|
|
|