From b8549fbe7e2b5f00e0ef1c12eb219e41bbc4efb6 Mon Sep 17 00:00:00 2001 From: timotiabbauftech Date: Mon, 13 Oct 2025 10:52:07 +0700 Subject: [PATCH 1/2] Update undangan-pernikahan-premium.vue --- .../form/undangan-pernikahan-premium.vue | 550 ++++++++++++------ 1 file changed, 382 insertions(+), 168 deletions(-) diff --git a/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue b/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue index bc1b6ab..80449e9 100644 --- a/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue +++ b/proyek-frontend/app/pages/form/undangan-pernikahan-premium.vue @@ -12,12 +12,26 @@

📋 Data Pemesan

- - - + + +
@@ -29,20 +43,41 @@

Mempelai Pria

- - - - - - - + + + + + + +
@@ -50,45 +85,205 @@

Mempelai Wanita

- - - - - - - + + + + + + +
+ +
+

📅 Detail Acara

+
+ +
+

Akad

+
+ + + + +
+
+ +
+

Resepsi

+
+ + + + +
+
+ +
+

Syukuran

+
+ + + + +
+
+ +
+

Hitung Mundur

+ +
+
+
+

💌 Cerita Kita

- + +
+ + +
+

💬 Say Something

+

💳 Rekening & Musik

- - - + + +
- + +
@@ -107,7 +302,7 @@ />
- - - + + const removeFile = (index) => { + form.value.foto.splice(index, 1) + previews.value.splice(index, 1) + } + + const konfirmasi = async () => { + try { + // Basic client-side validation + if (!form.value.nama_pemesan || !form.value.email) { + alert('Harap isi semua kolom wajib (Nama Pemesan, Email)!') + return + } + + const data = new FormData() + data.append('nama_pemesan', form.value.nama_pemesan) + data.append('email', form.value.email) + data.append('no_tlpn', form.value.no_tlpn) + data.append('template_slug', 'undangan-pernikahan-premium') + + // Append form fields individually to ensure Laravel receives them as an array + for (const [key, value] of Object.entries(form.value.form)) { + data.append(`form[${key}]`, value) + } + + form.value.foto.forEach((file, index) => { + data.append(`foto[${index}]`, file) + }) + + console.log([...data]) // untuk debugging + + const res = await fetch('http://localhost:8000/api/pelanggans', { + method: 'POST', + body: data + }) + + const result = await res.json() + + if (!res.ok) { + if (res.status === 422) { + const errors = result.errors || {} + const errorMessages = Object.values(errors).flat().join('\n') + throw new Error(errorMessages || result.message || 'Validasi gagal') + } + if (res.status === 404) { + throw new Error(result.message || 'Template tidak ditemukan') + } + throw new Error(result.message || 'Gagal mengirim data') + } + + alert(result.message || 'Data berhasil disimpan!') + router.push('/') + } catch (err) { + console.error(err) + alert('Terjadi kesalahan: ' + err.message) + } + } + + const batal = () => router.back() + \ No newline at end of file From 15481060d0f17b71002e8c0ca24d921b7a0c7827 Mon Sep 17 00:00:00 2001 From: MuzakkiABBAUF Date: Mon, 13 Oct 2025 11:10:17 +0700 Subject: [PATCH 2/2] khitan form --- .../pages/form/undangan-khitan-premium.vue | 313 ++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 proyek-frontend/app/pages/form/undangan-khitan-premium.vue diff --git a/proyek-frontend/app/pages/form/undangan-khitan-premium.vue b/proyek-frontend/app/pages/form/undangan-khitan-premium.vue new file mode 100644 index 0000000..91551db --- /dev/null +++ b/proyek-frontend/app/pages/form/undangan-khitan-premium.vue @@ -0,0 +1,313 @@ + + +