Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
ada:howto:sicoferp:factory:new-migracion-sicoferp:front:base-component [2025/06/25 19:00] 192.168.175.164 |
ada:howto:sicoferp:factory:new-migracion-sicoferp:front:base-component [2025/06/25 19:21] (actual) 192.168.175.164 |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== BaseComponent<T> ====== | ====== BaseComponent<T> ====== | ||
| - | Clase abstracta reutilizable en Angular para facilitar la creación de componentes que usen formularios, tablas, modales y alertas. Provee métodos y propiedades comunes que se pueden extender y personalizar según las necesidades del componente específico. | + | [[ada:howto:sicoferp:factory:new-migracion-sicoferp:front|←Regresar]] |
| + | |||
| + | Clase abstracta reutilizable para facilitar la creación de componentes que usen formularios, tablas, modales y alertas. Provee métodos y propiedades comunes que se pueden extender y personalizar según las necesidades del componente específico. | ||
| ==== Objetivo ==== | ==== Objetivo ==== | ||
| Línea 20: | Línea 22: | ||
| * **FormBuilder** (`@angular/forms`): crea formularios reactivos fácilmente. | * **FormBuilder** (`@angular/forms`): crea formularios reactivos fácilmente. | ||
| * **BreadcrumbService**: establece el breadcrumb de navegación (migas de pan). | * **BreadcrumbService**: establece el breadcrumb de navegación (migas de pan). | ||
| - | |||
| - | Estas dependencias se inyectan usando la función `inject()`. | ||
| ==== Propiedades ==== | ==== Propiedades ==== | ||
| - | * **title / subTitle**: Títulos que pueden usarse para encabezados del componente. | + | * **title / subTitle**: Título para encabezados del componente. |
| * **form**: Instancia del formulario reactivo principal del componente. | * **form**: Instancia del formulario reactivo principal del componente. | ||
| * **tableConfig**: Configuración de comportamiento y estilo de la tabla. | * **tableConfig**: Configuración de comportamiento y estilo de la tabla. | ||
| Línea 49: | Línea 49: | ||
| }); | }); | ||
| </code> | </code> | ||
| - | |||
| - | Es útil para componentes que tengan filtros simples. | ||
| === setBreadcrumb(items: BreadcrumbItem[]) === | === setBreadcrumb(items: BreadcrumbItem[]) === | ||
| Línea 121: | Línea 119: | ||
| this.initModal('Editar usuario', '30rem', true, true); | this.initModal('Editar usuario', '30rem', true, true); | ||
| </code> | </code> | ||
| + | |||
| + | ==== Ejemplo de Uso ==== | ||
| + | |||
| + | <code> | ||
| + | export class MiComponente extends BaseComponent<Usuario> { | ||
| + | |||
| + | protected override getTableColumns(): TableListColumns[] { | ||
| + | return [ | ||
| + | { field: 'nombre', header: 'Nombre' }, | ||
| + | { field: 'email', header: 'Correo' } | ||
| + | ]; | ||
| + | } | ||
| + | |||
| + | protected override getTableConfig(): ConfigTable { | ||
| + | return { | ||
| + | actions: true, | ||
| + | selectable: true | ||
| + | }; | ||
| + | } | ||
| + | |||
| + | protected override loadDataTable(): void { | ||
| + | // Aquí haces una llamada a un servicio para llenar dataSource | ||
| + | } | ||
| + | |||
| + | ngOnInit() { | ||
| + | this.setBreadcrumb([{ label: 'Usuarios' }]); | ||
| + | this.initTable(); | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | ==== Beneficios de esta clase ==== | ||
| + | |||
| + | * Evita repetir lógica en múltiples componentes. | ||
| + | * Mejora la mantenibilidad del código. | ||
| + | * Estandariza el uso de formularios, tablas y modales. | ||
| + | * Facilita pruebas y futuras refactorizaciones. | ||
| + | |||
| + | [[ada:howto:sicoferp:factory:new-migracion-sicoferp:front|←Regresar]] | ||
| + | |||
| + | ---- | ||
| + | |||
| + | //Documento actualizado: 25/06/2025//\\ | ||
| + | //Elaborado por: Maicol Arroyave - Desarrollador// | ||