This commit is contained in:
Peter Maquiran
2022-06-23 16:57:46 +01:00
parent 643d19232b
commit 4fd5685899
4 changed files with 312 additions and 243 deletions
@@ -4,16 +4,18 @@
<ion-header class="ion-no-border header-2">
<div class="title">
<app-btn-modal-dismiss (click)="goBack()"></app-btn-modal-dismiss>
<div class="thetitle"><ion-label >Diplomas</ion-label></div>
<div class="title d-flex align-center">
<app-btn-modal-dismiss (click)="goBack()" ></app-btn-modal-dismiss>
<div class="title"><ion-label >Diplomas por Elaborar</ion-label></div>
<div class="theicon btn-refresh">
<button class="btn-no-color" (click)="doRefresh($event)">
<ion-icon slot="end" class="title-icon font-awesome" name="reload-circle"></ion-icon>
</button>
</div>
<div class="bottom-title d-flex"><h3 class="bottom-text">Diplomas por Assinar</h3></div>
</div>
</ion-header>
<ion-content>
@@ -29,19 +31,15 @@
</ion-refresher>
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
<div class="width-100" *ngIf="diplomasList.length >= 1">
<div class="width-100" *ngIf="deplomasStore.DiplomaGerarList.length >= 1">
<div *ngIf="diplomasList">
<div *ngIf="deplomasStore.DiplomaGerarList">
<ion-list >
<!-- *ngFor = "let task of parecerList; let i = index"
(click)="viewExpedientDetail(task.SerialNumber)" -->
<div
class="expediente ion-no-padding ion-no-margin cursor-pointer"
*ngFor = "let task of diplomasList"
*ngFor = "let task of deplomasStore.DiplomaGerarList"
(click)="goToDiploma(task.SerialNumber)"
>
<!-- (click)="viewExpedientDetail(task.SerialNumber)" -->
<!-- [routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]" -->
<div class="item width-100">
<div class="exp-top-detail">
<div class="subject">
@@ -107,5 +105,92 @@
</div>
</div>
<div class="main-content width-100 overflow-y-auto height-100">
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-refresher-content
pullingIcon="chevron-down-circle-outline"
pullingText="deslize para actualizar"
refreshingSpinner="circles"
refreshingText="A actualizar...">
</ion-refresher-content>
</ion-refresher>
<div >
<ion-progress-bar type="indeterminate" *ngIf="skeletonLoader"></ion-progress-bar>
<div class="height-100">
<ion-list>
<div
class="expediente ion-no-padding ion-no-margin cursor-pointer"
*ngFor = "let task of deplomasStore.DiplomaGerarList; let i = index"
(click)="goToDiploma(task.SerialNumber)"
>
<!-- [routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]" -->
<div class="item width-100">
<div class="exp-top-detail">
<div class="subject">
<ion-label>{{ task.Folio }}</ion-label>
</div>
<div class="exp-icon">
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " src="assets/images/icons-expediente-attachment.svg"></ion-icon>
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " src="assets/images/theme/gov/icons-expediente-attachment.svg"></ion-icon>
<label *ngIf="task.DocumentsQty != 0">{{task.DocumentsQty}}</label>
</div>
</div>
<div class="exp-bottom-detail">
<div class="exp-remetente">
<ion-label>{{task.Senders}}</ion-label>
</div>
</div>
<div class="exp-middle-detail">
<div class="exp-workflow">
<span class="label">{{task.activityInstanceName}}</span>
</div>
<div class="exp-date">
<ion-label>{{ task.CreateDate | date: 'dd-MM-yyyy HH:mm' }}</ion-label>
</div>
</div>
</div>
</div>
</ion-list>
</div>
</div>
<div
*ngIf="!skeletonLoader && deplomasStore.DiplomaGerarList.length == 0"
class="empty-list d-flex height-100 align-center justify-content-center"
>
<span>Lista vazia</span>
</div>
<div *ngIf="skeletonLoader && deplomasStore.DiplomaGerarList.length == 0">
<ion-list>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
<ion-item>
<ion-thumbnail slot="end">
<ion-skeleton-text animated></ion-skeleton-text>
</ion-thumbnail>
<ion-label>
<h3><ion-skeleton-text animated style="width: 50%"></ion-skeleton-text></h3>
<p><ion-skeleton-text animated style="width: 80%"></ion-skeleton-text></p>
<p><ion-skeleton-text animated style="width: 60%"></ion-skeleton-text></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</ion-content>
@@ -1,5 +1,5 @@
@import '~src/function.scss';
/* CONTENT */
:host{
margin: 0;
}
@@ -11,246 +11,226 @@
ion-content, .header-2, .main-content{
padding: 30px 20px 0 20px !important;
background-color: white;
}
.main-content {
padding-top: 0px !important;
}
.main-content{
background-color: #fff !important;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
}
.content{
padding: 30px 20px 0 20px !important;
margin: 0;
float: left;
}
.color-red{
font-weight: 500;
color:#d30a0a !important;
}
.btn-size{
font-size: 18px !important;
}
.main-header{
font-family: Roboto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background-color: #fff;
overflow:auto;
color:#000;
transform: translate3d(0, 1px, 0);
.header-top{
margin: 0px auto;
overflow: auto;
padding: 0 !important;
background: #fff;
.middle{
padding: 0!important;
float: left;
width: 280px;
margin: 2.5px 0 0 5px;
display: flex;
align-items: center;
.title{
font-family: Roboto;
font-size: 25px;
color:#000;
overflow: auto;
}
.right{
padding: 0!important;
float: right;
font-size: 25px;
color: #0782c9;
margin: 5px 0 0 0;
}
}
.header-bottom{
width: 310px;
overflow: auto;
margin: 0 auto;
.header-bottom-icon{
width: 30px;
font-size: 25px;
float: left;
padding: 2px;
}
.header-bottom-contacts{
width: 275px;
font-size: 15px;
color: #797979;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
float: left;
padding: 5px;
margin: 1px;
}
}
.title{
font-size: 25px;
overflow: auto;
float: left;
padding-top: 4px;
padding-left: 5px;
}
.div-icon{
width: 40px;
float: right;
font-size: 35px;
overflow: auto;
padding: 1px;
}
}
ion-item-group{
margin: 15px;
}
ion-button{
display: block;
width: 80%;
margin: 20px auto;
}
.upper-content{
font-family: Roboto;
margin-left: 41px;
font-size: 18px;
.label{
border-radius: 20px;
background: #ffb703;
.thetitle {
width: fit-content;
float: left;
}
.theicon {
width: fit-content;
float: right;
padding: 5px 13.5px 5px 13.5px;
color: #fff;
}
.button-calendar-type ion-button{
height: 25px;
}
.content-details{
font-size: 17px;
.date{
color: #797979;
}
}
}
.middle-conten{
.middle-content p{
font-size: 16px;
.item-list-small{
font-size: 11px;
overflow: hidden;
}
}
.bottom-content{
//width: 360px;
margin: 0 auto;
.bottom-content h3{
font-size: 16px;
margin: 0 0 0 10px;
.ion-item-class{
padding: 0;
}
.attach-document{
font-size: 15px;
color: var(--title-text-color);
margin: 5px 5px 5px 10px;
padding: 5px;
float: left;
}
.attach-icon{
width: 37px;
font-size: 35px;
float: left;
}
.attach-title-item{
font-size: 18px;
.label-text{
width: 100%;
color:#0d89d1;
padding-bottom: 5px;
padding: 0;
margin: 0;
}
/* SPAN */
.span-left{
//DIV
ion-item{
--background: none;
}
.item {
//border-radius: 15px;
//box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);
//Sborder: solid 1px #e9e9e9;
background-color: var(--white);
margin: 0 auto;
//padding: 10px;
overflow: hidden;
}
.div-content-expediente{
width: 100%;
float: left;
border-left: 3px solid #dae3f3;
padding:5px 5px 15px 5px;
margin: 10px 0 10px 0;
background: #dae3f3;
border-radius: 20px;
}
.div-content-pendentes{
width: 100%;
float: left;
border-left: 3px solid #d9d9d9;
padding: 5px;
}
.div-content-expediente h3, .div-content-pendentes h3{
margin: 0;
padding: 0;
font-size: 14pt;
width: 100%;
}
.div-icon{
width: 10%;
font-size: 20px;
float: left;
font-size: 15x;
color: #808080;
}
.div-icon ion-icon{
display: block;
margin: 0 auto;
}
.div-content-expediente p, .div-content-pendentes p{
font-size: 14pt;
color: rgb(94, 92, 92);
padding: 0;
margin: 0;
}
.span-left{
/* border: 1px solid red; */
float: left;
font-size: 12px;
padding-left: 18px;
}
.span-right{
text-align: right;
/* border: 1px solid blue; */
text-align: right;
float: right;
font-size: 12px;
padding-right: 18px;
}
/* New CSS */
.expediente{
border-radius: 15px;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);
border:1px solid #e9e9e9 !important;
background-color: var(--white);
margin-bottom: 10px !important;
padding: 15px;
}
.exp-list-item{
//width: 368px;
overflow: auto;
/* border-bottom: 1px solid gray; */
margin: 10px auto;
}
.exp-top-detail{
width: 100%;
float: left;
font-family: Roboto;
font-size: 12pt;
font-weight: 700;
color: var(--title-text-color);
padding-left: 3px;
.subject{
width: 84%;
float: left;
}
.exp-icon{
width: fit-content;
float: right;
/* font-size: 13px; */
margin: 0 !important;
padding: 0 !important;
ion-icon{
font-size: 12pt;
color: #42b9fe;
float: left;
}
label{
font-size: 10pt;
}
}
}
.exp-middle-detail, .exp-bottom-detail{
margin-bottom: 5px;
}
.exp-middle-detail{
font-size: 12pt;
width: 100%;
overflow: auto;
.exp-workflow{
float: left;
margin: 0 !important;
.label{
border-radius: 15px;
background: #ffb703;
/* font-size: 12px; */
float: right;
padding: 2.5px 13.5px 2.5px 13.5px;
color: #fff;
}
}
.exp-date{
width: auto;
font-family: Roboto;
font-size: 10pt;
font-weight: normal;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #797979;
float: right;
}
}
.exp-bottom-detail{
font-size: 8pt;
width: 100%;
overflow: auto;
padding-left: 3px;
.exp-remetente{
//width: 200px;
font-family: Roboto;
/* font-size: 13px; */
font-weight: normal;
color: #000000;
float: left;
/* border: 1px solid red; */
}
}
.div-top-header{
width: 400px;
margin: 6px auto;
background-color: #0782c9;
overflow: auto;
}
.div-search{
font-size: 45px;
float: left;
margin: 0 0 0 10px
}
.div-logo{
background: transparent;
width: 150px;
margin: 2.5px 0 2.5px 71px;
float: left;
}
.div-logo img{
width: 100%;
}
.div-profile{
font-size: 45px;
float: right;
font-size: 13px;
}
}
.aside-right{
padding: 30px 20px 0 20px !important;
.arrow-right{
display: flex;
justify-content: flex-end;
margin-bottom: 20px;
.arrow-right-icon{
width: 37px;
float: right;
font-size: 35px;
overflow: hidden;
}
}
.buttons{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.btn-ok, .btn-cancel, .btn-delete{
height: auto !important;
font-size: 16px !important;
width: 100% !important;
margin-bottom: 10px !important;
padding: 15px !important;
}
}
.solid {
display: block;
width: 90%;
border-top: 1px solid #ebebeb;
margin: 0 auto !important;
margin-bottom: 10px !important;
}
}
@media only screen and (max-width: 800px) {
.content{
width: 100% !important;
}
.aside-right{
display: none;
}
}
@media only screen and (min-width: 801px) {
.div-icon{
display: none;
}
.content{
width: 65%;
border-right: 1px solid #d8d8d8;
}
.aside-right{
width: 35%;
}
}
@media only screen and (min-width: 1024px){
.content{
width: 70%;
}
.aside-right{
width: 30%;
}
}
@media only screen and (min-width: 1140px){
.content{
width: 75%;
}
.aside-right{
width: 25%;
}
}
margin-right: 10px;
}
@@ -7,6 +7,7 @@ import { AlertService } from 'src/app/services/alert.service';
import { CustomTaskPipe } from 'src/app/pipes/custom-task.pipe';
import { SortService } from 'src/app/services/functions/sort.service';
import { ThemeService } from 'src/app/services/theme.service'
import { DeplomasStore } from 'src/app/store/deplomas.service';
@Component({
@@ -26,6 +27,7 @@ export class DiplomasGerarPage implements OnInit {
customTaskPipe = new CustomTaskPipe()
skeletonLoader = true
deplomasStore = DeplomasStore
constructor(
private processes:ProcessesService,
@@ -80,14 +82,15 @@ export class DiplomasGerarPage implements OnInit {
let diplomas = await this.processes.GetTasksList("Despacho do Presidente da República", false).toPromise();
this.diplomasList = [];
// let diplomasAssinar = diplomas.filter(data => data.activityInstanceName == "Assinar Diploma");
let gerarDiploma = diplomas.reverse().filter(data => data.activityInstanceName == "Gerar Diploma" || data.activityInstanceName == "Retificar Diploma");
diplomas.forEach(element => {
gerarDiploma.forEach(element => {
let task: customTask = this.customTaskPipe.transform(element)
this.diplomasList.push(task);
});
this.diplomasList = this.sortService.sortDate(this.diplomasList, 'CreateDate')
this.diplomasList = this.sortService.sortDate(this.diplomasList, 'CreateDate');
this.deplomasStore.resetDiplomaGerar(this.diplomasList);
this.skeletonLoader = false
@@ -837,12 +837,13 @@ export class GabineteDigitalPage implements OnInit {
openDiplomaPorElaborar(segment: string) {
let navigationExtras: NavigationExtras = { queryParams: { "gerarDiplomas": true }}
this.segment = segment;
if (window.innerWidth < 701) {
// this.router.navigate(['/home/gabinete-digital/diplomas'], navigationExtras);
let navigationExtras: NavigationExtras = { queryParams: { "gerarDiplomas": true }}
this.router.navigate(['/home/gabinete-digital/diplomas-gerar'], navigationExtras);
}
else {
this.closeAllDesktopComponents();