[EDIT] MODAL TICKET

parent da10336b
......@@ -157,7 +157,7 @@
<mat-icon class="mat-icon-small">delete</mat-icon>
</button>
<button mat-fab aria-label="Información" matTooltip="Información" matTooltipPosition="above" (click)="onEventInfoRequerimiento(card.codigo)">
<button mat-fab aria-label="Información" matTooltip="Información" matTooltipPosition="above" (click)="onEventInfoRequerimiento(card.codigo,1)">
<mat-icon class="mat-icon-small">info</mat-icon>
</button>
</div>
......@@ -194,7 +194,7 @@
<mat-icon class="mat-icon-small">delete</mat-icon>
</button>
<button mat-fab aria-label="Información" matTooltip="Información" matTooltipPosition="above" (click)="onEventInfoRequerimiento(ticket.codigo)">
<button mat-fab aria-label="Información" matTooltip="Información" matTooltipPosition="above" (click)="onEventInfoRequerimiento(ticket.codigo,2)">
<mat-icon class="mat-icon-small">info</mat-icon>
</button>
</div>
......
......@@ -19,6 +19,7 @@ import {MatAutocompleteModule} from '@angular/material/autocomplete';
import {MatTooltipModule} from '@angular/material/tooltip';
import {MatDialog, MatDialogModule} from '@angular/material/dialog';
import {modalRequerimientoComponent} from "./modalRequerimiento/modalRequerimiento.componente";
import {modalTicketComponent} from "./modalTicket/modalTicket.componente"
import {modalFirmaComponent} from "./modalFirma/modalFirma.componente";
import {MatTableModule} from '@angular/material/table';
import { MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef, MatTable } from "@angular/material/table";
......@@ -355,18 +356,41 @@ export class ConformidadComponent implements AfterViewInit {
//AL SELECCIONAR INFORMACION DE UN REQUERIMIENTO
async onEventInfoRequerimiento(valor: any){
const requerimientoInfo = await this.conformidadHelper.listadoGeneralHorizon({accion: 3, nombreValor: valor, sede: ''});
const dialogRef = this.dialog.open(modalRequerimientoComponent,{
width: '100%',
maxWidth: '90%',
minWidth: '50%',
height: '50%',
data: { requerimientoInfo }
});
dialogRef.afterClosed().subscribe(result => {
console.log(`Dialog result: ${result}`);
});
async onEventInfoRequerimiento(valor: any , tipo : any){
if(tipo === 1) {
const requerimientoInfo = await this.conformidadHelper.listadoGeneralHorizon({
accion: 3,
nombreValor: valor,
sede: ''
});
const dialogRef = this.dialog.open(modalRequerimientoComponent, {
width: '100%',
maxWidth: '90%',
minWidth: '50%',
height: '50%',
data: {requerimientoInfo}
});
dialogRef.afterClosed().subscribe(result => {
//console.log(`Dialog result: ${result}`);
});
}else{
const ticketinfo = await this.conformidadHelper.listadoGeneralTickets({
p_item: valor,
length : 1 ,
start : 0
});
const dialogRef = this.dialog.open(modalTicketComponent, {
/*width: '100%',
maxWidth: '90%',
minWidth: '50%',
height: '50%',*/
data: {ticketinfo}
});
dialogRef.afterClosed().subscribe(result => {
//console.log(`Dialog result: ${result}`);
});
}
}
//ELIMINAR REQUERIMIENTO SELECCIONADO
......@@ -476,12 +500,7 @@ export class ConformidadComponent implements AfterViewInit {
const jsonParametrosReq = {
p_item: busquedaTicket,
p_sede : '',
p_responsable : encargado.userEncargado || '',
p_fecha_ini : '' ,
p_fecha_fin : '',
p_correo : '' ,
p_estado : '' ,
length : 10 ,
start : 0
};
......
......@@ -27,6 +27,6 @@ export class modalEvidenciaComponent {
@Inject(MAT_DIALOG_DATA)
public data: any
) {
console.log(data);
//console.log(data);
}
}
import {AfterViewInit, Component, ElementRef, Inject, OnInit, ViewChild} from '@angular/core';
import {provideNativeDateAdapter} from '@angular/material/core';
import {MatTableModule} from '@angular/material/table';
import { MatDialogActions, MatDialogClose, MatDialogContent, MatDialogTitle, MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
import {JsonPipe} from "@angular/common";
import {Observable} from "rxjs";
import {MatFormField, MatLabel} from "@angular/material/form-field";
import {FormControl, FormGroup, ReactiveFormsModule} from "@angular/forms";
import {MatIconModule} from '@angular/material/icon';
import {MatDividerModule} from '@angular/material/divider';
import {MatButtonModule} from '@angular/material/button';
import {MatCard, MatCardContent} from "@angular/material/card";
export interface interDetalleRequerimiento {
posicion: string;
nombre : string;
unidad: string;
cantidad: number;
}
@Component({
selector: 'app-modalTicket',
standalone: true,
styles: [
`
mat-label {
opacity: 1; /* Por defecto, el label será completamente visible */
font-size: 15px;
font-family: Montserrat, sans-serif;
font-weight: bold;
line-height: 24px;
letter-spacing: .5px;
}
`
],
template:`
<mat-card>
<div class="w-full flex justify-center items-center py-4">
<mat-label class="font-bold text-lg md:text-2xl">DATOS DE TICKET</mat-label>
</div>
<mat-card-content>
<div class="grid gap-4 pt-2">
<!-- Input Título -->
<div class="grid grid-cols-[1fr_3fr] items-center gap-4">
<mat-label class="font-bold text-red-500">Título:</mat-label>
<mat-label class="text-gray-700">{{datosPrincipales?.tenor}}</mat-label>
</div>
<!-- Input Solicitante -->
<div class="grid grid-cols-[1fr_3fr] items-center gap-4">
<mat-label class="font-bold text-red-500">Solicitante:</mat-label>
<mat-label class="text-gray-700">{{datosPrincipales.solicitante}}</mat-label>
</div>
<!-- Input Fecha Registro -->
<div class="grid grid-cols-[1fr_3fr] items-center gap-4">
<mat-label class="font-bold text-red-500">Fecha registro:</mat-label>
<mat-label class="text-gray-700">{{datosPrincipales.recibido}}</mat-label>
</div>
<!-- Select Sede -->
<div class="grid grid-cols-[1fr_3fr] items-center gap-4">
<mat-label class="font-bold text-red-500">Sede:</mat-label>
<mat-label class="text-gray-700">{{datosPrincipales.sede}}</mat-label>
</div>
</div>
<!-- Mensaje -->
<div class="py-4">
<mat-label class="text-left text-gray-700 mt-4" #contenedorMensaje>
</mat-label>
</div>
</mat-card-content>
</mat-card>
`,
providers: [provideNativeDateAdapter()],
imports: [
MatDialogActions,
MatDialogClose,
MatDialogContent,
JsonPipe,
MatLabel,
ReactiveFormsModule,
MatFormField,
MatDialogTitle,
MatTableModule,
MatButtonModule,
MatDividerModule,
MatIconModule,
MatCard,
MatCardContent,
]
})
export class modalTicketComponent implements AfterViewInit {
@ViewChild('contenedorMensaje', {static: false}) contenedorMensaje!: ElementRef;
datosPrincipales: any = {};
constructor(@Inject(MAT_DIALOG_DATA) public data: any) {
this.datosPrincipales = data.ticketinfo[0];
}
async ngAfterViewInit(): Promise<void> {
this.contenedorMensaje.nativeElement.innerHTML = this.datosPrincipales.mensaje;
}
}
......@@ -67,15 +67,15 @@ export class ConformidadService {
try {
const respuesta = await axios.post(this.t_asistencia_rest_link + '/api/v1/soticket/consultar_tickets',
{
p_item: json.p_item,
p_sede : json.p_sede,
p_responsable : json.p_responsable,
p_fecha_ini : json.p_fecha_ini ,
p_fecha_fin : json.p_fecha_fin,
p_correo : json.p_correo ,
p_estado : json.p_estado ,
length : json.length ,
start : json.start
p_item: json.p_item || '',
p_sede : json.p_sede || '',
p_responsable : json.p_responsable || '',
p_fecha_ini : json.p_fecha_ini || '',
p_fecha_fin : json.p_fecha_fin || '',
p_correo : json.p_correo || '',
p_estado : json.p_estado || '',
length : json.length || 0,
start : json.start || 0
}
);
return respuesta.data;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment