From c85200ed6447034c848c5b1db5ebf481e2023d2d Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Mon, 23 Mar 2026 17:44:34 -0600 Subject: [PATCH] =?UTF-8?q?feat:=20mejora=20gesti=C3=B3n=20de=20activos=20?= =?UTF-8?q?fijos=20con=20edici=C3=B3n=20y=20asignaciones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Se agregó edición de activos fijos en FixedAssetForm.vue. - Se mejoró el manejo de carga y errores al obtener detalles del activo. - Se actualizaron formularios de asignación usando IDs numéricos. - Se mejoró la gestión de asignaciones con carga dinámica de activos y empleados. - Refactor de componentes de asignación para mejorar manejo de datos y UX. - Se agregaron métodos API para asignación y devolución de activos. - Se actualizaron rutas para edición y baja (offboarding) de asignaciones. --- components.d.ts | 1 + src/components/layout/Sidebar.vue | 16 +- .../components/FixedAssetsIndex.vue | 61 ++-- .../components/assets/FixedAssetForm.vue | 132 ++++++--- .../AssignmentAssetSelectorCard.vue | 4 +- .../assignments/AssignmentDetailsCard.vue | 19 +- .../AssignmentEmployeeSelectorCard.vue | 5 +- .../assignments/FixedAssetAssignmentForm.vue | 103 ++++--- .../FixedAssetAssignmentOffboardingForm.vue | 118 +++++--- .../FixedAssetAssignmentsIndex.vue | 277 ++++++++---------- .../services/fixedAssetsService.ts | 70 +++++ .../types/fixedAssetAssignment.ts | 11 +- src/router/index.ts | 11 +- 13 files changed, 499 insertions(+), 329 deletions(-) diff --git a/components.d.ts b/components.d.ts index b38179b..2e5984b 100644 --- a/components.d.ts +++ b/components.d.ts @@ -35,6 +35,7 @@ declare module 'vue' { ProgressSpinner: typeof import('primevue/progressspinner')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + Select: typeof import('primevue/select')['default'] Sidebar: typeof import('./src/components/layout/Sidebar.vue')['default'] Tag: typeof import('primevue/tag')['default'] Toast: typeof import('primevue/toast')['default'] diff --git a/src/components/layout/Sidebar.vue b/src/components/layout/Sidebar.vue index f5d515b..687530a 100644 --- a/src/components/layout/Sidebar.vue +++ b/src/components/layout/Sidebar.vue @@ -102,8 +102,18 @@ const menuItems = ref([ label: 'Activos Fijos', icon: 'pi pi-building', items: [ - { label: 'Registro de Activos', icon: 'pi pi-building', to: '/fixed-assets' }, - { label: 'Asignacion a Empleado', icon: 'pi pi-send', to: '/fixed-assets/assignments' }, + { + label: 'Registro de Activos', + icon: 'pi pi-building', + to: '/fixed-assets', + permission: ['assets.index', 'assets.show', 'assets.store', 'assets.update', 'assets.destroy'], + }, + { + label: 'Asignacion a Empleado', + icon: 'pi pi-send', + to: '/fixed-assets/assignments', + permission: ['assets.assignments.index', 'assets.assignments.store', 'assets.assignments.returnAsset'], + }, ], }, { @@ -126,7 +136,7 @@ const openItems = ref([]); const canAccessItem = (item: MenuItem): boolean => { if (!item.permission) { - return false; + return true; } return hasPermission(item.permission); diff --git a/src/modules/fixed-assets/components/FixedAssetsIndex.vue b/src/modules/fixed-assets/components/FixedAssetsIndex.vue index f9b4c68..37a17e5 100644 --- a/src/modules/fixed-assets/components/FixedAssetsIndex.vue +++ b/src/modules/fixed-assets/components/FixedAssetsIndex.vue @@ -1,6 +1,8 @@