Merge pull request 'amalia/20-jan-26' (#113) from amalia/20-jan-26 into main
Reviewed-on: http://wibugit.wibudev.com/wibu/jenna-mcp/pulls/113
This commit is contained in:
@@ -8,472 +8,377 @@ export const categoryPelayananSurat = [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas di Wilayah Masing-masing"
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas di Wilayah Masing-masing",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
key: "ktp_kk",
|
||||
name: "KTP / KK",
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga"
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
key: "dokumen_beda",
|
||||
name: "Dokumen Pendukung",
|
||||
desc: "Fotokopi dokumen yang terdapat perbedaan biodata (ijazah, sertifikat, dll)"
|
||||
desc: "Fotokopi dokumen yang terdapat perbedaan biodata (ijazah, sertifikat, dll)",
|
||||
required: true
|
||||
}
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama sesuai KTP", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir pemohon", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir pemohon", type: "date" },
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number", required: true },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama sesuai KTP", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir pemohon", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir pemohon", type: "date", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin",
|
||||
desc: "Jenis kelamin pemohon",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat lengkap tempat tinggal", type: "text" },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon", type: "text" },
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat lengkap tempat tinggal", type: "text", required: true },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon", type: "text", required: true },
|
||||
{
|
||||
key: "dokumen",
|
||||
name: "Nama Dokumen",
|
||||
desc: "Jenis dokumen yang mengalami perbedaan biodata (cth : ijazah, sertifikat, dll)",
|
||||
type: "text"
|
||||
desc: "Jenis dokumen yang mengalami perbedaan biodata",
|
||||
type: "text",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
key: "data_dokumen",
|
||||
name: "Data Dokumen",
|
||||
desc: "Data dokumen yg berbeda (cth : nama, tempat lahir, tanggal lahir, jenis kelamin, alamat, pekerjaan)",
|
||||
type: "text"
|
||||
desc: "Data dokumen yg berbeda",
|
||||
type: "text",
|
||||
required: true
|
||||
},
|
||||
{
|
||||
key: "dokumen_a",
|
||||
name: "Data pada Dokumen A",
|
||||
desc: "Data biodata yang tertulis pada dokumen pertama",
|
||||
type: "text"
|
||||
},
|
||||
{
|
||||
key: "dokumen_b",
|
||||
name: "Data pada Dokumen B",
|
||||
desc: "Data biodata yang tertulis pada dokumen kedua",
|
||||
type: "text"
|
||||
}
|
||||
{ key: "dokumen_a", name: "Data pada Dokumen A", desc: "Data biodata pada dokumen pertama", type: "text", required: true },
|
||||
{ key: "dokumen_b", name: "Data pada Dokumen B", desc: "Data biodata pada dokumen kedua", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "skbelumkawin",
|
||||
name: "Surat Keterangan Belum Kawin",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kk",
|
||||
name: "KTP / KK",
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga"
|
||||
},
|
||||
{
|
||||
key: "akta_cerai",
|
||||
name: "Akta Cerai",
|
||||
desc: "Fotokopi akta cerai (jika berstatus janda/duda)"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kk", name: "KTP / KK", desc: "Fotokopi KTP atau Kartu Keluarga", required: true },
|
||||
{ key: "akta_cerai", name: "Akta Cerai", desc: "Fotokopi akta cerai (jika berstatus janda/duda)", required: false }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama sesuai KTP", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir pemohon", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir pemohon", type: "date" },
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number", required: true },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama sesuai KTP", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir pemohon", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir pemohon", type: "date", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin",
|
||||
desc: "Jenis kelamin pemohon",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text" },
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text", required: true },
|
||||
{
|
||||
key: "agama",
|
||||
name: "Agama",
|
||||
desc: "Agama pemohon",
|
||||
type: "enum",
|
||||
options: enumAgama
|
||||
options: enumAgama,
|
||||
required: true
|
||||
},
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon", type: "text" }
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
id: "skdomisiliorganisasi",
|
||||
name: "Surat Keterangan Domisili Organisasi",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "skt_organisasi",
|
||||
name: "SKT Organisasi",
|
||||
desc: "Fotokopi SKT Organisasi atau pengukuhan kelompok"
|
||||
},
|
||||
{
|
||||
key: "susunan_pengurus",
|
||||
name: "Susunan Pengurus",
|
||||
desc: "Susunan pengurus lengkap dengan kop organisasi"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "skt_organisasi", name: "SKT Organisasi", desc: "Fotokopi SKT Organisasi", required: true },
|
||||
{ key: "susunan_pengurus", name: "Susunan Pengurus", desc: "Susunan pengurus organisasi", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nama_organisasi", name: "Nama Organisasi", desc: "Nama resmi organisasi", type: "text" },
|
||||
{ key: "jenis_organisasi", name: "Jenis Organisasi", desc: "Jenis atau bentuk organisasi", type: "text" },
|
||||
{ key: "alamat_organisasi", name: "Alamat Organisasi", desc: "Alamat sekretariat organisasi", type: "text" },
|
||||
{ key: "no_telepon", name: "Nomor Telepon", desc: "Nomor telepon organisasi", type: "text" },
|
||||
{ key: "nama_pimpinan", name: "Nama Pimpinan", desc: "Nama pimpinan organisasi", type: "text" },
|
||||
{ key: "keperluan", name: "Keperluan", desc: "Keperluan pembuatan surat", type: "text" }
|
||||
{ key: "nama_organisasi", name: "Nama Organisasi", desc: "Nama resmi organisasi", type: "text", required: true },
|
||||
{ key: "jenis_organisasi", name: "Jenis Organisasi", desc: "Jenis organisasi", type: "text", required: true },
|
||||
{ key: "alamat_organisasi", name: "Alamat Organisasi", desc: "Alamat sekretariat", type: "text", required: true },
|
||||
{ key: "no_telepon", name: "Nomor Telepon", desc: "Nomor telepon organisasi", type: "text", required: true },
|
||||
{ key: "nama_pimpinan", name: "Nama Pimpinan", desc: "Nama pimpinan", type: "text", required: true },
|
||||
{ key: "keperluan", name: "Keperluan", desc: "Keperluan pembuatan surat", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "skkelahiran",
|
||||
name: "Surat Keterangan Kelahiran",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "surat_lahir",
|
||||
name: "Surat Keterangan Lahir",
|
||||
desc: "Surat keterangan lahir dari bidan/dokter (jika ada)"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "surat_lahir", name: "Surat Keterangan Lahir", desc: "Surat keterangan lahir dari bidan/dokter (jika ada)", required: false }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nama_anak", name: "Nama Anak", desc: "Nama bayi/anak", type: "text" },
|
||||
{ key: "tanggal_lahir_anak", name: "Tanggal Lahir Anak", desc: "Tanggal lahir anak", type: "date" },
|
||||
{ key: "pukul_lahir", name: "Pukul Lahir", desc: "Waktu kelahiran anak", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat kelahiran anak", type: "text" },
|
||||
{ key: "nama_anak", name: "Nama Anak", desc: "Nama bayi/anak", type: "text", required: true },
|
||||
{ key: "tanggal_lahir_anak", name: "Tanggal Lahir Anak", desc: "Tanggal lahir anak", type: "date", required: true },
|
||||
{ key: "pukul_lahir", name: "Pukul Lahir", desc: "Waktu kelahiran", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat kelahiran", type: "text", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin Anak",
|
||||
desc: "Jenis kelamin anak",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{ key: "anak_ke", name: "Anak Ke-", desc: "Urutan kelahiran anak", type: "number" },
|
||||
{ key: "nik_ibu", name: "NIK Ibu", desc: "NIK ibu kandung", type: "number" },
|
||||
{ key: "nama_ibu", name: "Nama Ibu", desc: "Nama lengkap ibu", type: "text" },
|
||||
{ key: "tempat_lahir_ibu", name: "Tempat Lahir Ibu", desc: "Tempat lahir ibu kandung", type: "text" },
|
||||
{ key: "tanggal_lahir_ibu", name: "Tanggal Lahir Ibu", desc: "Tanggal lahir ibu kandung", type: "date" },
|
||||
{ key: "pekerjaan_ibu", name: "Pekerjaan Ibu", desc: "Pekerjaan ibu kandung", type: "text" },
|
||||
{ key: "alamat_ibu", name: "Alamat Ibu", desc: "Alamat ibu kandung", type: "text" },
|
||||
{ key: "nama_ayah", name: "Nama Ayah", desc: "Nama lengkap ayah", type: "text" },
|
||||
{ key: "nik_ayah", name: "NIK Ayah", desc: "NIK ayah kandung", type: "number" },
|
||||
{ key: "tempat_lahir_ayah", name: "Tempat Lahir Ayah", desc: "Tempat lahir ayah kandung", type: "text" },
|
||||
{ key: "tanggal_lahir_ayah", name: "Tanggal Lahir Ayah", desc: "Tanggal lahir ayah kandung", type: "date" },
|
||||
{ key: "pekerjaan_ayah", name: "Pekerjaan Ayah", desc: "Pekerjaan ayah kandung", type: "text" },
|
||||
{ key: "alamat_ayah", name: "Alamat Ayah", desc: "Alamat ayah kandung", type: "text" },
|
||||
{ key: "nama_pelapor", name: "Nama Pelapor", desc: "Nama pihak yang melaporkan", type: "text" },
|
||||
{ key: "hubungan_pelapor", name: "Hubungan Pelapor", desc: "Hubungan pelapor dengan anak", type: "text" },
|
||||
{ key: "alamat_pelapor", name: "Alamat Pelapor", desc: "Alamat pelapor", type: "text" }
|
||||
{ key: "anak_ke", name: "Anak Ke-", desc: "Urutan kelahiran", type: "number", required: true },
|
||||
{ key: "nik_ibu", name: "NIK Ibu", desc: "NIK ibu kandung", type: "number", required: true },
|
||||
{ key: "nama_ibu", name: "Nama Ibu", desc: "Nama ibu kandung", type: "text", required: true },
|
||||
{ key: "tempat_lahir_ibu", name: "Tempat Lahir Ibu", desc: "Tempat lahir ibu", type: "text", required: true },
|
||||
{ key: "tanggal_lahir_ibu", name: "Tanggal Lahir Ibu", desc: "Tanggal lahir ibu", type: "date", required: true },
|
||||
{ key: "pekerjaan_ibu", name: "Pekerjaan Ibu", desc: "Pekerjaan ibu", type: "text", required: true },
|
||||
{ key: "alamat_ibu", name: "Alamat Ibu", desc: "Alamat ibu", type: "text", required: true },
|
||||
{ key: "nama_ayah", name: "Nama Ayah", desc: "Nama ayah kandung", type: "text", required: true },
|
||||
{ key: "nik_ayah", name: "NIK Ayah", desc: "NIK ayah kandung", type: "number", required: true },
|
||||
{ key: "tempat_lahir_ayah", name: "Tempat Lahir Ayah", desc: "Tempat lahir ayah", type: "text", required: true },
|
||||
{ key: "tanggal_lahir_ayah", name: "Tanggal Lahir Ayah", desc: "Tanggal lahir ayah", type: "date", required: true },
|
||||
{ key: "pekerjaan_ayah", name: "Pekerjaan Ayah", desc: "Pekerjaan ayah", type: "text", required: true },
|
||||
{ key: "alamat_ayah", name: "Alamat Ayah", desc: "Alamat ayah", type: "text", required: true },
|
||||
{ key: "nama_pelapor", name: "Nama Pelapor", desc: "Nama pelapor", type: "text", required: true },
|
||||
{ key: "hubungan_pelapor", name: "Hubungan Pelapor", desc: "Hubungan dengan anak", type: "text", required: true },
|
||||
{ key: "alamat_pelapor", name: "Alamat Pelapor", desc: "Alamat pelapor", type: "text", required: true }
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
id: "skkelakuanbaik",
|
||||
name: "Surat Keterangan Kelakuan Baik (Pengantar SKCK)",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kk",
|
||||
name: "KTP / KK",
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kk", name: "KTP / KK", desc: "Fotokopi KTP atau KK", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama sesuai KTP", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date" },
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number", required: true },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama sesuai KTP", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin",
|
||||
desc: "Jenis kelamin pemohon",
|
||||
desc: "Jenis kelamin",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{
|
||||
key: "agama",
|
||||
name: "Agama",
|
||||
desc: "Agama pemohon",
|
||||
desc: "Agama",
|
||||
type: "enum",
|
||||
options: enumAgama
|
||||
options: enumAgama,
|
||||
required: true
|
||||
},
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text" },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon", type: "text" },
|
||||
{ key: "polsek", name: "Polsek Tujuan", desc: "Polsek tujuan pembuatan SKCK", type: "text" }
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text", required: true },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan", type: "text", required: true },
|
||||
{ key: "polsek", name: "Polsek Tujuan", desc: "Polsek tujuan", type: "text", required: true }
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
id: "skkematian",
|
||||
name: "Surat Keterangan Kematian",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kk",
|
||||
name: "KTP / KK",
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga"
|
||||
},
|
||||
{
|
||||
key: "surat_kematian",
|
||||
name: "Surat Keterangan Kematian",
|
||||
desc: "Surat keterangan kematian dari rumah sakit/dokter (jika ada)"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kk", name: "KTP / KK", desc: "Fotokopi KTP atau KK", required: true },
|
||||
{ key: "surat_kematian", name: "Surat Keterangan Kematian", desc: "Surat keterangan kematian dari rumah sakit/dokter (jika ada)", required: false }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik_pelapor", name: "NIK Pelapor", desc: "Nomor Induk Kependudukan pelapor", type: "number" },
|
||||
{ key: "nama_pelapor", name: "Nama Pelapor", desc: "Nama lengkap pelapor", type: "text" },
|
||||
{ key: "pekerjaan_pelapor", name: "Pekerjaan Pelapor", desc: "Pekerjaan pelapor", type: "text" },
|
||||
{ key: "alamat_pelapor", name: "Alamat Pelapor", desc: "Alamat tempat tinggal pelapor", type: "text" },
|
||||
{ key: "hubungan_pelapor", name: "Hubungan dengan Almarhum", desc: "Hubungan pelapor dengan almarhum", type: "text" },
|
||||
{ key: "nama_almarhum", name: "Nama Almarhum", desc: "Nama lengkap almarhum", type: "text" },
|
||||
{ key: "nik_almarhum", name: "NIK Almarhum", desc: "Nomor Induk Kependudukan almarhum", type: "number" },
|
||||
{ key: "tempat_lahir_almarhum", name: "Tempat Lahir Almarhum", desc: "Tempat lahir almarhum", type: "text" },
|
||||
{ key: "tanggal_lahir_almarhum", name: "Tanggal Lahir Almarhum", desc: "Tanggal lahir almarhum", type: "date" },
|
||||
{ key: "alamat_almarhum", name: "Alamat Almarhum", desc: "Alamat terakhir almarhum", type: "text" },
|
||||
{ key: "nik_pelapor", name: "NIK Pelapor", desc: "NIK pelapor", type: "number", required: true },
|
||||
{ key: "nama_pelapor", name: "Nama Pelapor", desc: "Nama pelapor", type: "text", required: true },
|
||||
{ key: "pekerjaan_pelapor", name: "Pekerjaan Pelapor", desc: "Pekerjaan pelapor", type: "text", required: true },
|
||||
{ key: "alamat_pelapor", name: "Alamat Pelapor", desc: "Alamat pelapor", type: "text", required: true },
|
||||
{ key: "hubungan_pelapor", name: "Hubungan Pelapor", desc: "Hubungan dengan almarhum", type: "text", required: true },
|
||||
{ key: "nama_almarhum", name: "Nama Almarhum", desc: "Nama almarhum", type: "text", required: true },
|
||||
{ key: "nik_almarhum", name: "NIK Almarhum", desc: "NIK almarhum", type: "number", required: true },
|
||||
{ key: "tempat_lahir_almarhum", name: "Tempat Lahir", desc: "Tempat lahir almarhum", type: "text", required: true },
|
||||
{ key: "tanggal_lahir_almarhum", name: "Tanggal Lahir", desc: "Tanggal lahir almarhum", type: "date", required: true },
|
||||
{ key: "alamat_almarhum", name: "Alamat", desc: "Alamat terakhir", type: "text", required: true },
|
||||
{
|
||||
key: "agama_almarhum",
|
||||
name: "Agama Almarhum",
|
||||
desc: "Agama almarhum",
|
||||
type: "enum",
|
||||
options: enumAgama
|
||||
options: enumAgama,
|
||||
required: true
|
||||
},
|
||||
{ key: "tanggal_kematian", name: "Tanggal Kematian", desc: "Tanggal meninggal dunia", type: "date" },
|
||||
{ key: "waktu_kematian", name: "Waktu Kematian", desc: "Waktu meninggal dunia", type: "text" },
|
||||
{ key: "tempat_kematian", name: "Tempat Kematian", desc: "Tempat meninggal dunia", type: "text" },
|
||||
{ key: "penyebab_kematian", name: "Penyebab Kematian", desc: "Penyebab meninggal dunia", type: "text" }
|
||||
{ key: "tanggal_kematian", name: "Tanggal Kematian", desc: "Tanggal meninggal dunia", type: "date", required: true },
|
||||
{ key: "waktu_kematian", name: "Waktu Kematian", desc: "Waktu meninggal dunia", type: "text", required: true },
|
||||
{ key: "tempat_kematian", name: "Tempat Kematian", desc: "Tempat meninggal dunia", type: "text", required: true },
|
||||
{ key: "penyebab_kematian", name: "Penyebab Kematian", desc: "Penyebab meninggal dunia", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "skpenghasilan",
|
||||
name: "Surat Keterangan Penghasilan",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_ortu_kk",
|
||||
name: "KTP Orang Tua / KK",
|
||||
desc: "Fotokopi KTP orang tua atau Kartu Keluarga"
|
||||
},
|
||||
{
|
||||
key: "surat_pernyataan",
|
||||
name: "Surat Pernyataan",
|
||||
desc: "Surat pernyataan penghasilan bermaterai"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_ortu_kk", name: "KTP Orang Tua / KK", desc: "Fotokopi KTP orang tua/KK", required: true },
|
||||
{ key: "surat_pernyataan", name: "Surat Pernyataan Penghasilan", desc: "Surat pernyataan penghasilan bermaterai", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama pemohon", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama pemohon", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin",
|
||||
desc: "Jenis kelamin pemohon",
|
||||
desc: "Jenis kelamin",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text" },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon/orang tua", type: "text" },
|
||||
{ key: "penghasilan", name: "Penghasilan", desc: "Jumlah penghasilan per bulan", type: "number" },
|
||||
{ key: "alasan", name: "Alasan Permohonan", desc: "Alasan pengajuan surat penghasilan", type: "text" }
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text", required: true },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemohon", type: "text", required: true },
|
||||
{ key: "penghasilan", name: "Penghasilan", desc: "Jumlah penghasilan per bulan", type: "number", required: true },
|
||||
{ key: "alasan", name: "Alasan Permohonan", desc: "Alasan pengajuan surat penghasilan", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "sktempatusaha",
|
||||
name: "Surat Keterangan Tempat Usaha",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kk",
|
||||
name: "KTP / KK",
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga"
|
||||
},
|
||||
{
|
||||
key: "foto_lokasi",
|
||||
name: "Foto Lokasi Usaha",
|
||||
desc: "Foto lokasi usaha dicetak dan distempel oleh Kelian"
|
||||
},
|
||||
{
|
||||
key: "dokumen_lahan",
|
||||
name: "Dokumen Lahan",
|
||||
desc: "SPPT, Sertifikat, atau surat sewa tempat usaha"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kk", name: "KTP / KK", desc: "Fotokopi KTP/KK", required: true },
|
||||
{ key: "foto_lokasi", name: "Foto Lokasi Usaha", desc: "Foto lokasi usaha", required: true },
|
||||
{ key: "dokumen_lahan", name: "Dokumen Lahan", desc: "SPPT/Sertifikat/surat sewa tempat usaha", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number" },
|
||||
{ key: "nama_pemilik", name: "Nama Pemilik", desc: "Nama pemilik usaha", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date" },
|
||||
{ key: "alamat_pemilik", name: "Alamat Pemilik", desc: "Alamat pemilik usaha", type: "text" },
|
||||
{ key: "nama_usaha", name: "Nama Usaha", desc: "Nama usaha", type: "text" },
|
||||
{ key: "bidang_usaha", name: "Bidang Usaha", desc: "Bidang atau jenis usaha", type: "text" },
|
||||
{ key: "alamat_usaha", name: "Alamat Usaha", desc: "Alamat lokasi usaha", type: "text" },
|
||||
{ key: "status_tempat", name: "Status Tempat Usaha", desc: "Status kepemilikan tempat usaha", type: "enum", options: enumStatusTempatUsaha },
|
||||
{ key: "luas_usaha", name: "Luas Tempat Usaha", desc: "Luas tempat usaha (m²)", type: "number" },
|
||||
{ key: "jumlah_karyawan", name: "Jumlah Karyawan", desc: "Jumlah tenaga kerja", type: "number" },
|
||||
{ key: "tujuan", name: "Tujuan Pembuatan Surat", desc: "Tujuan pembuatan surat keterangan", type: "text" }
|
||||
{ key: "nik", name: "NIK", desc: "NIK pemilik", type: "number", required: true },
|
||||
{ key: "nama_pemilik", name: "Nama Pemilik", desc: "Nama pemilik usaha", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date", required: true },
|
||||
{ key: "alamat_pemilik", name: "Alamat Pemilik", desc: "Alamat pemilik", type: "text", required: true },
|
||||
{ key: "nama_usaha", name: "Nama Usaha", desc: "Nama usaha", type: "text", required: true },
|
||||
{ key: "bidang_usaha", name: "Bidang Usaha", desc: "Bidang usaha", type: "text", required: true },
|
||||
{ key: "alamat_usaha", name: "Alamat Usaha", desc: "Alamat usaha", type: "text", required: true },
|
||||
{
|
||||
key: "status_tempat",
|
||||
name: "Status Tempat Usaha",
|
||||
desc: "Status kepemilikan tempat usaha",
|
||||
type: "enum",
|
||||
options: enumStatusTempatUsaha,
|
||||
required: true
|
||||
},
|
||||
{ key: "luas_usaha", name: "Luas Tempat Usaha", desc: "Luas tempat usaha (m²)", type: "number", required: true },
|
||||
{ key: "jumlah_karyawan", name: "Jumlah Karyawan", desc: "Jumlah karyawan", type: "number", required: true },
|
||||
{ key: "tujuan", name: "Tujuan Pembuatan Surat", desc: "Tujuan pembuatan surat keterangan", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "sktidakmampu",
|
||||
name: "Surat Keterangan Tidak Mampu",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kia_kk",
|
||||
name: "KTP / KIA / KK",
|
||||
desc: "Fotokopi KTP, KIA, atau Kartu Keluarga"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kia_kk", name: "KTP / KIA / KK", desc: "Fotokopi KTP/KIA/KK", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan pemohon", type: "number" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama lengkap pemohon", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir pemohon", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir pemohon", type: "date" },
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal pemohon", type: "text" },
|
||||
{ key: "alasan", name: "Alasan Permohonan", desc: "Alasan pengajuan Surat Keterangan Tidak Mampu", type: "text" }
|
||||
{ key: "nik", name: "NIK", desc: "NIK pemohon", type: "number", required: true },
|
||||
{ key: "nama Lengkap", name: "Nama", desc: "Nama pemohon", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date", required: true },
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat pemohon", type: "text", required: true },
|
||||
{ key: "alasan", name: "Alasan Permohonan", desc: "Alasan permohonan", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "skusaha",
|
||||
name: "Surat Keterangan Usaha",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kk",
|
||||
name: "KTP / KK",
|
||||
desc: "Fotokopi KTP atau Kartu Keluarga"
|
||||
},
|
||||
{
|
||||
key: "foto_lokasi",
|
||||
name: "Foto Lokasi Usaha",
|
||||
desc: "Foto lokasi usaha dicetak dan distempel oleh Kelian"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kk", name: "KTP / KK", desc: "Fotokopi KTP/KK", required: true },
|
||||
{ key: "foto_lokasi", name: "Foto Lokasi Usaha", desc: "Foto lokasi usaha", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama pemilik usaha", type: "text" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama pemilik usaha", type: "text", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin",
|
||||
desc: "Jenis kelamin pemilik usaha",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date" },
|
||||
{ key: "negara", name: "Kewarganegaraan", desc: "Kewarganegaraan pemilik usaha", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date", required: true },
|
||||
{ key: "negara", name: "Kewarganegaraan", desc: "Kewarganegaraan", type: "text", required: true },
|
||||
{
|
||||
key: "agama",
|
||||
name: "Agama",
|
||||
desc: "Agama pemilik usaha",
|
||||
desc: "Agama",
|
||||
type: "enum",
|
||||
options: enumAgama
|
||||
options: enumAgama,
|
||||
required: true
|
||||
},
|
||||
{
|
||||
key: "status_perkawinan",
|
||||
name: "Status Perkawinan",
|
||||
desc: "Status perkawinan",
|
||||
type: "enum",
|
||||
options: enumStatusPerkawinan
|
||||
options: enumStatusPerkawinan,
|
||||
required: true
|
||||
},
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text" },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan pemilik usaha", type: "text" },
|
||||
{ key: "jenis_usaha", name: "Jenis Usaha", desc: "Jenis usaha yang dijalankan", type: "text" },
|
||||
{ key: "alamat_usaha", name: "Alamat Usaha", desc: "Alamat lokasi usaha", type: "text" }
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat", type: "text", required: true },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan", type: "text", required: true },
|
||||
{ key: "jenis_usaha", name: "Jenis Usaha", desc: "Jenis usaha", type: "text", required: true },
|
||||
{ key: "alamat_usaha", name: "Alamat Usaha", desc: "Alamat usaha", type: "text", required: true }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "skyatimpiatu",
|
||||
name: "Surat Keterangan Yatim / Piatu / Yatim Piatu",
|
||||
syaratDokumen: [
|
||||
{
|
||||
key: "pengantar_kelian",
|
||||
name: "Pengantar Kelian",
|
||||
desc: "Surat Pengantar Kelian Banjar Dinas"
|
||||
},
|
||||
{
|
||||
key: "ktp_kia_kk",
|
||||
name: "KTP / KIA / KK",
|
||||
desc: "Fotokopi KTP, KIA, atau Kartu Keluarga"
|
||||
}
|
||||
{ key: "pengantar_kelian", name: "Pengantar Kelian", desc: "Surat Pengantar Kelian Banjar Dinas", required: true },
|
||||
{ key: "ktp_kia_kk", name: "KTP / KIA / KK", desc: "Fotokopi KTP/KIA/KK", required: true }
|
||||
],
|
||||
dataText: [],
|
||||
dataPelengkap: [
|
||||
{ key: "nik", name: "NIK", desc: "Nomor Induk Kependudukan", type: "number" },
|
||||
{ key: "nama", name: "Nama Lengkap", desc: "Nama anak", type: "text" },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir Anak", desc: "Tempat lahir anak", type: "text" },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir Anak", desc: "Tanggal lahir anak", type: "date" },
|
||||
{ key: "nik", name: "NIK", desc: "NIK anak", type: "number", required: true },
|
||||
{ key: "nama", name: "Nama", desc: "Nama anak", type: "text", required: true },
|
||||
{ key: "tempat_lahir", name: "Tempat Lahir", desc: "Tempat lahir", type: "text", required: true },
|
||||
{ key: "tanggal_lahir", name: "Tanggal Lahir", desc: "Tanggal lahir", type: "date", required: true },
|
||||
{
|
||||
key: "jenis_kelamin",
|
||||
name: "Jenis Kelamin",
|
||||
desc: "Jenis kelamin anak",
|
||||
type: "enum",
|
||||
options: enumJenisKelamin
|
||||
options: enumJenisKelamin,
|
||||
required: true
|
||||
},
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat tempat tinggal", type: "text" },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan (jika ada)", type: "text" },
|
||||
|
||||
{ key: "nama_ayah", name: "Nama Ayah", desc: "Nama ayah kandung", type: "text" },
|
||||
{ key: "alamat", name: "Alamat", desc: "Alamat", type: "text", required: true },
|
||||
{ key: "pekerjaan", name: "Pekerjaan", desc: "Pekerjaan (jika ada)", type: "text", required: false },
|
||||
{ key: "nama_ayah", name: "Nama Ayah", desc: "Nama ayah", type: "text", required: true },
|
||||
{
|
||||
key: "status_ayah",
|
||||
name: "Status Ayah",
|
||||
desc: "Status ayah (hidup / meninggal)",
|
||||
desc: "Status ayah",
|
||||
type: "enum",
|
||||
options: enumStatusHidup
|
||||
options: enumStatusHidup,
|
||||
required: true
|
||||
},
|
||||
{ key: "nama_ibu", name: "Nama Ibu", desc: "Nama ibu kandung", type: "text" },
|
||||
{ key: "nama_ibu", name: "Nama Ibu", desc: "Nama ibu", type: "text", required: true },
|
||||
{
|
||||
key: "status_ibu",
|
||||
name: "Status Ibu",
|
||||
desc: "Status ibu (hidup / meninggal)",
|
||||
desc: "Status ibu",
|
||||
type: "enum",
|
||||
options: enumStatusHidup
|
||||
options: enumStatusHidup,
|
||||
required: true
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
];
|
||||
|
||||
@@ -42,6 +42,7 @@ import useSWR from "swr";
|
||||
type DataItem = {
|
||||
key: string;
|
||||
value: string;
|
||||
required: boolean;
|
||||
};
|
||||
|
||||
type FormSurat = {
|
||||
@@ -119,15 +120,17 @@ export default function FormSurat() {
|
||||
nama: "",
|
||||
phone: "",
|
||||
dataPelengkap: (get.data?.dataPelengkap || []).map(
|
||||
(item: { key: string }) => ({
|
||||
(item: { key: string, required: boolean }) => ({
|
||||
key: item.key,
|
||||
value: "",
|
||||
required: item.required
|
||||
}),
|
||||
),
|
||||
syaratDokumen: (get.data?.syaratDokumen || []).map(
|
||||
(item: { key: string }) => ({
|
||||
(item: { key: string, required: boolean }) => ({
|
||||
key: item.key,
|
||||
value: "",
|
||||
required: item.required
|
||||
}),
|
||||
),
|
||||
});
|
||||
@@ -167,10 +170,10 @@ export default function FormSurat() {
|
||||
if (Array.isArray(value)) {
|
||||
return value.some(
|
||||
(item) =>
|
||||
typeof item.value === "string" && item.value.trim() === "",
|
||||
(typeof item.value === "string" && item.value.trim() === "" && item.required) || (typeof item.value === "object" && item.value === null && item.required),
|
||||
);
|
||||
}
|
||||
return typeof value === "string" && value.trim() === "";
|
||||
return typeof value === "string" && value.trim() === "" ;
|
||||
});
|
||||
|
||||
if (isFormKosong) {
|
||||
@@ -276,13 +279,14 @@ export default function FormSurat() {
|
||||
value: any;
|
||||
}) {
|
||||
if (key === "dataPelengkap" || key === "syaratDokumen") {
|
||||
const errorMsg = validateField(value.key, value.value);
|
||||
|
||||
setErrors((prev) => ({
|
||||
...prev,
|
||||
[value.key]: errorMsg,
|
||||
}));
|
||||
if (value.required == true) {
|
||||
const errorMsg = validateField(value.key, value.value);
|
||||
|
||||
setErrors((prev) => ({
|
||||
...prev,
|
||||
[value.key]: errorMsg,
|
||||
}));
|
||||
}
|
||||
setFormSurat((prev) => ({
|
||||
...prev,
|
||||
[key]: updateArrayByKey(prev[key], value.key, value.value),
|
||||
@@ -400,7 +404,7 @@ export default function FormSurat() {
|
||||
<Grid>
|
||||
<Grid.Col span={6}>
|
||||
<TextInput
|
||||
label={<FieldLabel label="Nama" hint="Nama kontak" />}
|
||||
label={<FieldLabel label="Nama" hint="Nama kontak" required />}
|
||||
placeholder="Budi Setiawan"
|
||||
value={formSurat.nama}
|
||||
error={errors.nama_kontak}
|
||||
@@ -414,6 +418,7 @@ export default function FormSurat() {
|
||||
<TextInput
|
||||
label={
|
||||
<FieldLabel
|
||||
required
|
||||
label="Nomor Telephone"
|
||||
hint="Nomor telephone yang dapat dihubungi / terhubung dengan whatsapp"
|
||||
/>
|
||||
@@ -450,6 +455,7 @@ export default function FormSurat() {
|
||||
<FieldLabel
|
||||
label={item.name}
|
||||
hint={item.desc}
|
||||
required={item.required}
|
||||
/>
|
||||
}
|
||||
data={item.options ?? []}
|
||||
@@ -457,7 +463,7 @@ export default function FormSurat() {
|
||||
onChange={(e) => {
|
||||
validationForm({
|
||||
key: "dataPelengkap",
|
||||
value: { key: item.key, value: e },
|
||||
value: { key: item.key, value: e, required: item.required },
|
||||
});
|
||||
}}
|
||||
value={
|
||||
@@ -474,6 +480,7 @@ export default function FormSurat() {
|
||||
<FieldLabel
|
||||
label={item.name}
|
||||
hint={item.desc}
|
||||
required={item.required}
|
||||
/>
|
||||
}
|
||||
placeholder={item.name}
|
||||
@@ -488,6 +495,7 @@ export default function FormSurat() {
|
||||
value: {
|
||||
key: item.key,
|
||||
value: formatted,
|
||||
required: item.required,
|
||||
},
|
||||
});
|
||||
}}
|
||||
@@ -500,6 +508,7 @@ export default function FormSurat() {
|
||||
<FieldLabel
|
||||
label={item.name}
|
||||
hint={item.desc}
|
||||
required={item.required}
|
||||
/>
|
||||
}
|
||||
placeholder={item.name}
|
||||
@@ -509,6 +518,7 @@ export default function FormSurat() {
|
||||
value: {
|
||||
key: item.key,
|
||||
value: e.target.value,
|
||||
required: item.required,
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -545,6 +555,7 @@ export default function FormSurat() {
|
||||
})
|
||||
}
|
||||
name={item.name}
|
||||
required={item.required}
|
||||
/>
|
||||
</Grid.Col>
|
||||
),
|
||||
@@ -569,10 +580,20 @@ export default function FormSurat() {
|
||||
);
|
||||
}
|
||||
|
||||
function FieldLabel({ label, hint }: { label: string; hint?: string }) {
|
||||
function FieldLabel({ label, hint, required = false, }: { label: string; hint?: string; required?: boolean; }) {
|
||||
return (
|
||||
<Group justify="apart" gap="xs" align="center">
|
||||
<Text fw={600}>{label}</Text>
|
||||
<Group gap={4} align="center">
|
||||
<Text fw={600}>
|
||||
{label}
|
||||
{required && (
|
||||
<Text span c="red" ml={4}>
|
||||
*
|
||||
</Text>
|
||||
)}
|
||||
</Text>
|
||||
</Group>
|
||||
|
||||
{hint && (
|
||||
<Tooltip label={hint} withArrow>
|
||||
<ActionIcon size={24} variant="subtle">
|
||||
@@ -584,6 +605,7 @@ function FieldLabel({ label, hint }: { label: string; hint?: string }) {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function FormSection({
|
||||
title,
|
||||
icon,
|
||||
@@ -619,6 +641,7 @@ function FileInputWrapper({
|
||||
preview,
|
||||
name,
|
||||
description,
|
||||
required = false,
|
||||
}: {
|
||||
label: string;
|
||||
placeholder?: string;
|
||||
@@ -627,12 +650,20 @@ function FileInputWrapper({
|
||||
preview?: string | null;
|
||||
name: string;
|
||||
description?: string;
|
||||
required?: boolean;
|
||||
}) {
|
||||
return (
|
||||
<Stack gap="xs">
|
||||
<Flex direction={"column"}>
|
||||
<Group justify="apart" align="center">
|
||||
<Text fw={500}>{label}</Text>
|
||||
<Text fw={500}>
|
||||
{label}
|
||||
{required && (
|
||||
<Text span c="red" ml={4}>
|
||||
*
|
||||
</Text>
|
||||
)}
|
||||
</Text>
|
||||
</Group>
|
||||
{description && (
|
||||
<Text size="sm" c="dimmed" mt={4} style={{ lineHeight: 1.2 }}>
|
||||
@@ -648,6 +679,7 @@ function FileInputWrapper({
|
||||
leftSection={<IconUpload />}
|
||||
aria-label={label}
|
||||
name={name}
|
||||
clearable={true}
|
||||
/>
|
||||
|
||||
{preview ? (
|
||||
|
||||
@@ -50,6 +50,7 @@ type UpdateDataItem = {
|
||||
id: string;
|
||||
key: string;
|
||||
value: any;
|
||||
required: boolean;
|
||||
};
|
||||
|
||||
type FormSurat = {
|
||||
@@ -125,10 +126,20 @@ export default function UpdateDataSurat() {
|
||||
);
|
||||
}
|
||||
|
||||
function FieldLabel({ label, hint }: { label: string; hint?: string }) {
|
||||
function FieldLabel({ label, hint, required = false, }: { label: string; hint?: string; required?: boolean; }) {
|
||||
return (
|
||||
<Group justify="apart" gap="xs" align="center">
|
||||
<Text fw={600}>{label}</Text>
|
||||
<Group gap={4} align="center">
|
||||
<Text fw={600}>
|
||||
{label}
|
||||
{required && (
|
||||
<Text span c="red" ml={4}>
|
||||
*
|
||||
</Text>
|
||||
)}
|
||||
</Text>
|
||||
</Group>
|
||||
|
||||
{hint && (
|
||||
<Tooltip label={hint} withArrow>
|
||||
<ActionIcon size={24} variant="subtle">
|
||||
@@ -139,7 +150,6 @@ function FieldLabel({ label, hint }: { label: string; hint?: string }) {
|
||||
</Group>
|
||||
);
|
||||
}
|
||||
|
||||
function FormSection({
|
||||
title,
|
||||
icon,
|
||||
@@ -185,6 +195,8 @@ function FileInputWrapper({
|
||||
description,
|
||||
linkView,
|
||||
disabled,
|
||||
required = false,
|
||||
|
||||
}: {
|
||||
label: string;
|
||||
placeholder?: string;
|
||||
@@ -195,6 +207,7 @@ function FileInputWrapper({
|
||||
name: string;
|
||||
description?: string;
|
||||
disabled?: boolean;
|
||||
required?: boolean;
|
||||
}) {
|
||||
const [viewImg, setViewImg] = useState("");
|
||||
const [openedPreviewFile, setOpenedPreviewFile] = useState(false);
|
||||
@@ -219,7 +232,14 @@ function FileInputWrapper({
|
||||
<Stack gap="xs">
|
||||
<Flex direction={"column"}>
|
||||
<Group justify="apart" align="center">
|
||||
<Text fw={500}>{label}</Text>
|
||||
<Text fw={500}>
|
||||
{label}
|
||||
{required && (
|
||||
<Text span c="red" ml={4}>
|
||||
*
|
||||
</Text>
|
||||
)}
|
||||
</Text>
|
||||
</Group>
|
||||
{description && (
|
||||
<Text size="sm" c="dimmed" mt={4} style={{ lineHeight: 1.2 }}>
|
||||
@@ -241,6 +261,7 @@ function FileInputWrapper({
|
||||
aria-label={label}
|
||||
name={name}
|
||||
disabled={disabled}
|
||||
clearable={true}
|
||||
/>
|
||||
|
||||
{preview ? (
|
||||
@@ -477,21 +498,33 @@ function DataUpdate({
|
||||
kategori: "dataPelengkap" | "syaratDokumen";
|
||||
value: UpdateDataItem;
|
||||
}) {
|
||||
const errorMsg = validateField(value.key, value.value);
|
||||
if (kategori == "syaratDokumen" && value.value == null) {
|
||||
setFormSurat((prev) => ({
|
||||
...prev,
|
||||
syaratDokumen: prev.syaratDokumen.filter(
|
||||
(item) => item.id !== value.id
|
||||
),
|
||||
}));
|
||||
} else {
|
||||
if (value.required == true) {
|
||||
const errorMsg = validateField(value.key, value.value);
|
||||
setErrors((prev) => ({
|
||||
...prev,
|
||||
[value.id]: errorMsg,
|
||||
}));
|
||||
}
|
||||
|
||||
setErrors((prev) => ({
|
||||
...prev,
|
||||
[value.id]: errorMsg,
|
||||
}));
|
||||
|
||||
setFormSurat((prev) => ({
|
||||
...prev,
|
||||
[kategori]: upsertById(prev[kategori], {
|
||||
id: value.id,
|
||||
key: value.key,
|
||||
value: value.value,
|
||||
}),
|
||||
}));
|
||||
setFormSurat((prev) => ({
|
||||
...prev,
|
||||
[kategori]: upsertById(prev[kategori], {
|
||||
id: value.id,
|
||||
key: value.key,
|
||||
value: value.value,
|
||||
required: value.required,
|
||||
}),
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -528,7 +561,7 @@ function DataUpdate({
|
||||
if (Array.isArray(value)) {
|
||||
return value.some(
|
||||
(item) =>
|
||||
typeof item.value === "string" && item.value.trim() === "",
|
||||
(typeof item.value === "string" && item.value.trim() === "" && item.required) || (typeof item.value === "object" && item.value === null && item.required),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -676,13 +709,13 @@ function DataUpdate({
|
||||
<Select
|
||||
disabled={status != "ditolak" && status != "antrian"}
|
||||
allowDeselect={false}
|
||||
label={<FieldLabel label={item.name} hint={item.desc} />}
|
||||
label={<FieldLabel label={item.name} hint={item.desc} required={item.required} />}
|
||||
data={item.options ?? []}
|
||||
placeholder={item.name}
|
||||
onChange={(e) => {
|
||||
validationForm({
|
||||
kategori: "dataPelengkap",
|
||||
value: { id: item.id, key: item.key, value: e },
|
||||
value: { id: item.id, key: item.key, value: e, required: item.required },
|
||||
});
|
||||
}}
|
||||
value={
|
||||
@@ -697,7 +730,7 @@ function DataUpdate({
|
||||
disabled={status != "ditolak" && status != "antrian"}
|
||||
locale="id"
|
||||
valueFormat="DD MMMM YYYY"
|
||||
label={<FieldLabel label={item.name} hint={item.desc} />}
|
||||
label={<FieldLabel label={item.name} hint={item.desc} required={item.required} />}
|
||||
placeholder={item.name}
|
||||
onChange={(e) => {
|
||||
const formatted = e
|
||||
@@ -709,6 +742,7 @@ function DataUpdate({
|
||||
id: item.id,
|
||||
key: item.key,
|
||||
value: formatted,
|
||||
required: item.required
|
||||
},
|
||||
});
|
||||
}}
|
||||
@@ -727,7 +761,7 @@ function DataUpdate({
|
||||
) : (
|
||||
<TextInput
|
||||
error={errors[item.id]}
|
||||
label={<FieldLabel label={item.name} hint={item.desc} />}
|
||||
label={<FieldLabel label={item.name} hint={item.desc} required={item.required} />}
|
||||
placeholder={item.name}
|
||||
type={item.type}
|
||||
onChange={(e) =>
|
||||
@@ -737,6 +771,7 @@ function DataUpdate({
|
||||
id: item.id,
|
||||
key: item.key,
|
||||
value: e.target.value,
|
||||
required: item.required,
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -762,6 +797,7 @@ function DataUpdate({
|
||||
{dataSyaratDokumen.map((item: any, index: number) => (
|
||||
<Grid.Col span={6} key={index}>
|
||||
<FileInputWrapper
|
||||
required={item.required}
|
||||
label={item.desc}
|
||||
placeholder={"Upload file terbaru untuk mengupdate"}
|
||||
accept="image/*,application/pdf"
|
||||
@@ -769,7 +805,7 @@ function DataUpdate({
|
||||
onChange={(file) =>
|
||||
validationForm({
|
||||
kategori: "syaratDokumen",
|
||||
value: { id: item.id, key: item.key, value: file },
|
||||
value: { id: item.id, key: item.key, value: file, required: item.required },
|
||||
})
|
||||
}
|
||||
name={item.name}
|
||||
|
||||
@@ -685,17 +685,20 @@ const PelayananRoute = new Elysia({
|
||||
name: string;
|
||||
desc: string;
|
||||
key: string;
|
||||
required: boolean;
|
||||
}[];
|
||||
|
||||
const dataSyaratFix = dataSyarat.map((item) => {
|
||||
const desc = syaratDokumen.find((v) => v.key == item.jenis)?.desc
|
||||
const name = syaratDokumen.find((v) => v.key == item.jenis)?.name
|
||||
const required = syaratDokumen.find((v) => v.key == item.jenis)?.required
|
||||
return {
|
||||
id: item.id,
|
||||
key: item.jenis,
|
||||
value: item.value,
|
||||
name: name ?? '',
|
||||
desc: desc ?? ''
|
||||
desc: desc ?? '',
|
||||
required: required ?? true
|
||||
}
|
||||
})
|
||||
|
||||
@@ -708,6 +711,7 @@ const PelayananRoute = new Elysia({
|
||||
name: string;
|
||||
desc: string;
|
||||
key: string;
|
||||
required: boolean;
|
||||
}[];
|
||||
|
||||
const refMap = new Map(
|
||||
@@ -730,6 +734,7 @@ const PelayananRoute = new Elysia({
|
||||
type: ref?.type ?? "",
|
||||
options: ref?.options ?? [],
|
||||
order: ref?.order ?? Infinity,
|
||||
required: ref?.required ?? true
|
||||
};
|
||||
})
|
||||
.sort((a, b) => a.order - b.order)
|
||||
|
||||
Reference in New Issue
Block a user