-
Create Account
+
+
+ {{ isLoading ? 'Memproses...' : 'Create Account' }}
+
+
+ Kembali ke Login
+
diff --git a/src/views/pages/VerifyCode.vue b/src/views/pages/VerifyCode.vue
new file mode 100644
index 00000000..97c35c51
--- /dev/null
+++ b/src/views/pages/VerifyCode.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+ Verifikasi Kode
+ Masukkan target verifikasi dan kode OTP
+
+
+ {{ errorMessage }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ isLoading ? 'Memverifikasi...' : 'Verifikasi' }}
+
+
+
+ Kirim Ulang Kode
+
+
+
+ Kembali ke Login
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/profile/Profile.vue b/src/views/profile/Profile.vue
new file mode 100644
index 00000000..d74d7dbb
--- /dev/null
+++ b/src/views/profile/Profile.vue
@@ -0,0 +1,505 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ profile.name?.charAt(0)?.toUpperCase() || 'U' }}
+
+
+
+
+
+
+
Ganti foto profil
+
+ Tarik gambar ke sini atau pilih dari perangkat
+
+
+
+
+ Pilih Gambar
+
+
+ Batal
+
+
+
+
+ {{ selectedPhoto.name }}
+
+
+
+
+ JPG, PNG, WebP, atau GIF. Maksimal 5 MB.
+
+ {{ profile.name }}
+ {{ profile.email }}
+ {{ accessLevelLabel }}
+
+
+
+
+
Status
+
{{ profile.status }}
+
Tenant
+
+
+ {{ membership.tenant?.tenant_name || `Tenant #${membership.tenant_id}` }}
+
+
+
-
+
+
Menu Group
+
+
+ {{ assignment.menu_group?.name || `Group #${assignment.menu_group_id}` }}
+
+
+
-
+
+
+
+
+
+
+
+
+ Informasi Akun
+
+
+
+ Nama
+
+
+
+ Username
+
+
+
+ Email
+
+
+
+ Nomor WhatsApp
+
+
+
+
+
+
+
+ Data Profile
+
+
+
+ NIK
+
+
+
+ Alamat
+
+
+
+ Provinsi
+
+
+
+
+
+
+ Kabupaten
+
+
+
+
+
+
+ Kecamatan
+
+
+
+
+
+
+ Desa
+
+
+
+
+
+
+
+
+
+
+ Ubah Password
+
+ Kosongkan jika tidak ingin mengubah password.
+
+
+ Password Saat Ini
+
+
+
+ Password Baru
+
+
+
+ Konfirmasi Password
+
+
+
+
+
+
+
+
+ {{ saving ? 'Menyimpan...' : 'Simpan Perubahan' }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/tenants/Tenants.vue b/src/views/tenants/Tenants.vue
new file mode 100644
index 00000000..539360cc
--- /dev/null
+++ b/src/views/tenants/Tenants.vue
@@ -0,0 +1,369 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ isEdit ? 'Edit Tenant' : 'Tambah Tenant' }}
+
+
+
+
+ Tenant Code
+
+
+
+ Tenant Name
+
+
+
+ Phone
+
+
+
+ Email
+
+
+
+ Address
+
+
+
+ Status
+
+
+
+
+
+
+
+
+ Batal
+
+ Menyimpan...
+ Simpan
+
+
+
+
+
+
+ Detail Tenant
+
+
+
+
+
+ ID
+ {{ detailItem.id }}
+
+
+ Tenant Code
+ {{ detailItem.tenant_code }}
+
+
+ Tenant Name
+ {{ detailItem.tenant_name }}
+
+
+ Phone
+ {{ detailItem.phone }}
+
+
+ Email
+ {{ detailItem.email }}
+
+
+ Address
+ {{ detailItem.address }}
+
+
+ Status
+
+
+ {{ detailItem.status === 'active' ? 'Aktif' : 'Nonaktif' }}
+
+
+
+
+ Created At
+ {{ formatTanggal(detailItem.created_at) }}
+
+
+ Updated At
+ {{ formatTanggal(detailItem.updated_at) }}
+
+
+
+
+
+ Tutup
+
+
+
+
diff --git a/src/views/users/Users.vue b/src/views/users/Users.vue
new file mode 100644
index 00000000..c46161f0
--- /dev/null
+++ b/src/views/users/Users.vue
@@ -0,0 +1,564 @@
+
+
+
+
+
+
+
+
+
+
+ {{ isEdit ? 'Edit User' : 'Tambah User' }}
+
+ Memuat form...
+
+
+ Informasi Akun
+
+
+ Nama
+ Username
+ Email
+ WhatsApp
+
+ Level Akses
+
+
+
+
+
+ Status
+
+
+
+
+ Password {{ isEdit ? '(opsional)' : '' }}
+
+
+
+
+
+ Profil dan Wilayah
+
+
+ NIK
+ Alamat
+ Provinsi
+ Kabupaten
+ Kecamatan
+ Desa
+
+
+
+
+
+
+
+ Tenant User+ Tenant
+
+ Belum ada tenant.
+
+
+
+ Hapus
+
+
+
+
+
+
+ Group Menu+ Group
+
+ Belum ada group menu.
+
+
+
+ Hapus
+
+
+
+
+
+
+
+
+ Batal
+ {{ saving ? 'Menyimpan...' : 'Simpan User' }}
+
+
+
+
+ Detail User
+
+ Memuat detail...
+
+
+ Nama
{{ detailItem.name }}
+ Username
{{ detailItem.username || '-' }}
+ Email
{{ detailItem.email }}
+ WhatsApp
{{ detailItem.whatsapp_number || '-' }}
+ Level Akses
{{ detailItem.access_level }}
+ Status
{{ detailItem.status }}
+ NIK
{{ detailItem.user_profile?.nik || '-' }}
+ Alamat
{{ detailItem.user_profile?.address || '-' }}
+ Wilayah
{{ detailAddress || '-' }}
+
+ Tenant
+ {{ row.tenant?.tenant_name || `Tenant #${row.tenant_id}` }}{{ row.is_default ? ' (Default)' : '' }}-
+ Group Menu
+ {{ row.menu_group?.name || groupName(row.menu_group_id) }} — {{ row.tenant?.tenant_name || (row.tenant_id ? `Tenant #${row.tenant_id}` : 'Global') }}
-
+
+
+ Tutup
+
+
diff --git a/src/views/wilayah/Wilayah.vue b/src/views/wilayah/Wilayah.vue
new file mode 100644
index 00000000..1195cbff
--- /dev/null
+++ b/src/views/wilayah/Wilayah.vue
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ isEdit ? 'Edit' : 'Tambah' }} {{ config.title }}
+
+
+
+
+ Kode
+
+
+
+ Nama {{ config.title }}
+
+
+
+ {{ config.parentLabel }}
+
+
+
+
+ {{ config.parentLabel }} wajib dipilih sesuai tingkatan wilayah.
+
+
+
+
+ Batal
+
+ {{ saving ? 'Menyimpan...' : 'Simpan' }}
+
+
+
+
+
+ Detail {{ config.title }}
+
+ Kode
+ {{ detail.kode }}
+ Nama
+ {{ detail.nama }}
+ Hierarki Wilayah
+ {{ detail.hierarchy }}
+
+
+ Tutup
+
+
+