浏览代码

Corrección administrador de catálogos

Jose Brito 1 年之前
父节点
当前提交
18580468a6

+ 2 - 0
sistema-mantenimiento-front/src/app/app-routing.module.ts

@@ -191,6 +191,7 @@ import { ControlPanelComponent } from './components/control-panel/control-panel.
 import { GraphicInterfaceIndicatorsComponent } from './components/control-panel/graphic-interface-indicators/graphic-interface-indicators.component';
 import { BudgetManagementComponent } from './components/budget-management/budget-management.component';
 import { AddElementsComponent } from './components/control-panel/graphic-interface-indicators/add-elements/add-elements.component';
+import { ControlPanelPreviewComponent } from './components/control-panel/graphic-interface-indicators/control-panel-preview/control-panel-preview.component';
 
 const routes: Routes = [
   { path: '', redirectTo: '/login', pathMatch: 'full' },
@@ -400,6 +401,7 @@ const routes: Routes = [
       { path: 'PCSA', component: ControlPanelComponent },
       { path: 'PCSA/MIIG', component: GraphicInterfaceIndicatorsComponent },
       { path: 'PCSA/MIIG/add-elements', component: AddElementsComponent },
+      { path: 'PCSA/MIIG/panel-preview', component: ControlPanelPreviewComponent },
       // Gestión presupuestaria
       { path: 'GEPE', component: BudgetManagementComponent },
       { path: 'GEPE/CACO', component: AccountingBurdensComponent },

+ 19 - 1
sistema-mantenimiento-front/src/app/components/control-panel/graphic-interface-indicators/control-panel-preview/control-panel-preview.component.html

@@ -1 +1,19 @@
-<p>control-panel-preview works!</p>
+<div class="module-container prevent-select">
+  <div id="navigation" class="mb-8 animated fadeIn" style="float: left; margin: 20px;">
+    <div class="prev-page prevent-select indigo_primary_background mat-elevation-z8" matRipple (click)="goBack(1)">
+      <mat-icon style="color: white;">arrow_back</mat-icon>
+      <div class="page-name ml-4">Panel de control de indicadores</div>
+    </div>
+  </div>
+
+  <div class="loader-container" *ngIf="isLoading">
+    <mat-spinner></mat-spinner>
+    <h2 class="loader-label">Cargando...</h2>
+  </div>
+  
+  <div class="error-container" *ngIf="!isLoading && hasError">
+    <mat-icon style="color: #e53935; transform: scale(5); margin-bottom: 48px;">error</mat-icon>
+    <h1 style="color: #e53935;">¡Error!</h1>
+    <p style="font-style: italic; font-size: 16px; overflow-wrap: anywhere; text-align: center;">{{ errorStr }}</p>
+  </div>
+</div>

+ 53 - 2
sistema-mantenimiento-front/src/app/components/control-panel/graphic-interface-indicators/control-panel-preview/control-panel-preview.component.ts

@@ -1,10 +1,61 @@
-import { Component } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { lastValueFrom } from 'rxjs';
+import { ControlPanelService } from 'src/app/services/control-panel.service';
+import { ResourcesService } from 'src/app/services/resources/resources.service';
 
 @Component({
   selector: 'app-control-panel-preview',
   templateUrl: './control-panel-preview.component.html',
   styleUrl: './control-panel-preview.component.css'
 })
-export class ControlPanelPreviewComponent {
+export class ControlPanelPreviewComponent implements OnInit {
+  isLoading: boolean;
+  hasError: boolean;
+  errorStr: string;
 
+  constructor(
+    private _activatedRoute: ActivatedRoute,
+    private _resourcesService: ResourcesService,
+    private _controlPanelService: ControlPanelService,
+  ) {
+    this.isLoading = true;
+    this.hasError = false;
+    this.errorStr = '';
+  }
+
+  ngOnInit(): void {
+    this._activatedRoute.queryParams.subscribe(params => {
+      let data = params['data'];
+      if(data == undefined){
+        this._resourcesService.openSnackBar('No se envió información.');
+        this.goBack(1);
+      }else{
+        this.getPanel(data);
+      }
+    });
+  }
+
+  goBack(steps: number){
+    window.history.go(steps * -1);
+  }
+
+  async getPanel(idPanel: string){
+    try{
+      let idUser = localStorage.getItem('idusuario')!;
+      let panel = await lastValueFrom(this._controlPanelService.getPanel(idPanel, idUser, 1));
+      console.log(panel);
+    }catch(error: any){
+      if(error.error == undefined){
+        this.errorStr = 'Ocurrió un error inesperado.';
+      }else if(error.error.msg == undefined){
+        this.errorStr = 'Ocurrió un error inesperado.';
+      }else{
+        this.errorStr = error.error.msg;
+      }
+
+      this.hasError = true;
+      this.isLoading = false;
+    }
+  }
 }

+ 1 - 1
sistema-mantenimiento-front/src/app/components/control-panel/graphic-interface-indicators/graphic-interface-indicators.component.html

@@ -94,7 +94,7 @@
                   <mat-icon>add</mat-icon>
                   <span>Añadir elementos</span>
                 </button>
-                <button mat-menu-item>
+                <button mat-menu-item (click)="openControlPanelPreview(row.ID_PANEL)">
                   <mat-icon>visibility</mat-icon>
                   <span>Vista previa</span>
                 </button>

+ 9 - 0
sistema-mantenimiento-front/src/app/components/control-panel/graphic-interface-indicators/graphic-interface-indicators.component.ts

@@ -280,4 +280,13 @@ export class GraphicInterfaceIndicatorsComponent implements OnInit {
       }
     }
   }
+
+  async openControlPanelPreview(idPanel: string){
+    let idPanelEnc = await this._encService.encrypt(idPanel);
+    this._router.navigate(['sam/PCSA/MIIG/panel-preview'], {
+      queryParams: {
+        data: idPanelEnc,
+      }
+    });
+  }
 }

+ 1 - 1
sistema-mantenimiento-front/src/app/components/system-admin/catalogues/catalogues.component.html

@@ -111,7 +111,7 @@
                   <mat-icon>history</mat-icon>
                   <span>Historial de versiones</span>
                 </button>
-                <button mat-menu-item>
+                <button mat-menu-item (click)="openCatalogueAdmin(row.TIPOCATALOGO)">
                   <mat-icon>admin_panel_settings</mat-icon>
                   <span>Administrar catálogo</span>
                 </button>