diff --git a/components/apps/setting/permission/RoleList.vue b/components/apps/setting/permission/RoleList.vue
index f58d4f0..ecfe8b2 100644
--- a/components/apps/setting/permission/RoleList.vue
+++ b/components/apps/setting/permission/RoleList.vue
@@ -27,10 +27,17 @@ const handleAssignPermission = (role: RoleMaster) => emit('assign-permission', r
-
-
{{ role.name }}
+
+
{{ role.name }}
+
+
+
{{ role.slug }}
+
+
+ mdi-calendar
+ {{ formatDateTime(role.created_at) }}
+
-
{{ formatDateTime(role.created_at) }}
diff --git a/components/apps/setting/permission/RoleModal.vue b/components/apps/setting/permission/RoleModal.vue
index ae04170..10f2919 100644
--- a/components/apps/setting/permission/RoleModal.vue
+++ b/components/apps/setting/permission/RoleModal.vue
@@ -46,6 +46,7 @@ const isSaving = ref(false);
const isLoadingDetail = ref(false);
const name = ref('');
+const slug = ref('');
const active = ref(true);
const isDetailMode = computed(() => props.mode === 'detail');
@@ -63,6 +64,7 @@ const submitLabel = computed(() => (isEditMode.value ? 'Update' : 'Save'));
const resetForm = () => {
name.value = '';
+ slug.value = '';
active.value = true;
valid.value = false;
formRef.value?.resetValidation?.();
@@ -84,6 +86,7 @@ const fetchRoleDetail = async () => {
if (!data) throw new Error('Data role tidak ditemukan');
name.value = data.name ?? '';
+ slug.value = data.slug ?? '';
active.value = typeof data.active === 'boolean' ? data.active : true;
} catch (error: any) {
const message = error?.response?.data?.message || error?.message || 'Gagal memuat detail role';
@@ -130,6 +133,7 @@ const save = () => {
const payload: Record = {
name: name.value,
+ slug: slug.value,
active: active.value,
};
@@ -182,6 +186,18 @@ const save = () => {
/>
+
+
+
+
+