Add document to task and improve responsiveness

This commit is contained in:
Peter Maquiran
2021-05-05 15:05:29 +01:00
parent 3a6f03bae2
commit da374a318a
6 changed files with 137 additions and 127 deletions
@@ -18,6 +18,7 @@
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2 width-100">
+5 -4
View File
@@ -11,8 +11,9 @@ export class Despacho{
DispatchFolder: Folder;
AttachmentList?: {
ProcessInstanceID: string,
"Source": string,
"UserId": string,
"Attachment": string
}[]
Attachments: {
ApplicationId: string,
SourceId: string
}[],
}
}
@@ -8,117 +8,124 @@
<ion-input placeholder="Assunto" [(ngModel)]="postData.DispatchFolder.Subject"></ion-input>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input class="add-border" placeholder="Descrição" [(ngModel)]="postData.DispatchFolder.Message"></ion-input>
</div>
</div>
</div>
<div class="container-div width-100">
<div class="ion-item-class-2 width-100">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Prazo" [(ngModel)]="postData.Priority" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="99999861"><b>Normal</b> (4 dias para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999862"><b>Urgente</b> (2 dias para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999863"><b>Muito Urgente</b> (1 dia para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999864"><b>Urgentíssimo</b> (8 horas para a execução da tarefa)</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-item>
<ion-label *ngIf="!selectedTypes">Tipos de assunto</ion-label>
<ion-select [(ngModel)]="selectedTypes" multiple="true" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option *ngFor="let type of subjectTypes" value="{{type.Code}}">{{type.Description}}</ion-select-option>
</ion-select>
</ion-item>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipants.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
<!-- Add scrolls -->
<div class="d-flex flex-column height-100 overflow-y-auto">
<div class="container-div width-100">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="add-people" (click)="addParticipants();">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
<div class="ion-input-class">
<ion-input class="add-border" placeholder="Descrição" [(ngModel)]="postData.DispatchFolder.Message"></ion-input>
</div>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipantsCc.length == 0" class="list-people-title">Com conhecimento</ion-label>
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
<div class="container-div width-100">
<div class="ion-item-class-2 width-100">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="add-people" (click)="addParticipantsCc();">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
<div class="ion-input-class">
<ion-select placeholder="Prazo" [(ngModel)]="postData.Priority" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="99999861"><b>Normal</b> (4 dias para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999862"><b>Urgente</b> (2 dias para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999863"><b>Muito Urgente</b> (1 dia para a execução da tarefa)</ion-select-option>
<ion-select-option value="99999864"><b>Urgentíssimo</b> (8 horas para a execução da tarefa)</ion-select-option>
</ion-select>
</div>
</div>
</div>
</div>
<div class="ion-item-container-no-border" (click)="getDoc()">
<ion-label class="d-flex ">
<div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-item>
<ion-label *ngIf="!selectedTypes">Tipos de assunto</ion-label>
<ion-select [(ngModel)]="selectedTypes" multiple="true" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option *ngFor="let type of subjectTypes" value="{{type.Code}}">{{type.Description}}</ion-select-option>
</ion-select>
</ion-item>
</div>
</div>
<div class="attach-document">
<ion-label>Anexar Documentos</ion-label>
</div>
</ion-label>
</div>
<div class="list " *ngFor="let document of documents; let i = index" >
<ion-list>
<ion-item>
<ion-label>
<p class="d-flex ion-justify-content-between">
<span class="attach-title-item">{{document.Assunto}}</span>
<span class="app-name">{{document.appName}}</span>
<span class="close-button text-black" (click)="removeAttachment(i)" >
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
</span>
</p>
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipants.length == 0" class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label *ngFor="let participant of taskParticipants">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people" (click)="addParticipants();">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label *ngIf="taskParticipantsCc.length == 0" class="list-people-title">Com conhecimento</ion-label>
<ion-label *ngFor="let participant of taskParticipantsCc">{{participant.Name}}</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people" (click)="addParticipantsCc();">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div class="ion-item-container-no-border" (click)="getDoc()">
<ion-label class="d-flex ">
<div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
</div>
<div class="attach-document">
<ion-label>Anexar Documentos</ion-label>
</div>
</ion-label>
</ion-item>
</ion-list>
</div>
<div class="list " *ngFor="let document of documents; let i = index" >
<ion-list>
<ion-item>
<ion-label>
<p class="d-flex ion-justify-content-between">
<span class="attach-title-item">{{document.Assunto}}</span>
<span class="app-name">{{document.appName}}</span>
<span class="close-button text-black" (click)="removeAttachment(i)" >
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
</span>
</p>
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</div>
@@ -143,8 +143,6 @@ export class ExpedientTaskModalPage implements OnInit {
}
async saveTask(){
console.log(this.selectedTypes);
if(this.postData.Priority=='99999861'){
this.dispatchFolder.DeadlineType = 'Normal';
@@ -167,17 +165,24 @@ export class ExpedientTaskModalPage implements OnInit {
UserType: val.IsRequired?"I": "CC"
};
})
let docs = {
ProcessInstanceID: "",
Attachments: [
]
}
const DocumentToSave = this.documents.map((e) => {
return {
ProcessInstanceID: '',
"Source": "webTRIX",
"UserId": this.loggeduser.UserId.toString(),
"Attachment": `${e.ApplicationType}@DOC@${e.Id}`
};
ApplicationId: e.ApplicationType,
SourceId: e.Id
}
});
docs.Attachments = DocumentToSave
if(this.taskParticipants.length > 0) {
switch (this.taskType) {
case '0':
@@ -189,7 +194,7 @@ export class ExpedientTaskModalPage implements OnInit {
SubjectTypeId: this.postData.SubjectTypeId,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: DocumentToSave
AttachmentList: docs
}
console.log('this.postData', this.postData, this.taskType);
this.taskResult = await this.processes.postDespatcho(this.postData);
@@ -203,7 +208,7 @@ export class ExpedientTaskModalPage implements OnInit {
SubjectTypeId: this.postData.SubjectTypeId,
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: DocumentToSave
AttachmentList: docs
}
console.log(this.postData);
this.taskResult = await this.processes.postParecer(this.postData);
@@ -217,12 +222,14 @@ export class ExpedientTaskModalPage implements OnInit {
SubjectTypeId: this.postData.SubjectTypeId, //this.selectedTypes
UsersSelected: attendees,
DispatchFolder: this.dispatchFolder,
AttachmentList: DocumentToSave
AttachmentList: docs
}
console.log(this.postData);
this.taskResult = await this.processes.postDeferimento(this.postData);
break;
}
console.log('this.taskResult', this.taskResult)
this.modalController.dismiss('openDiscart');
}
else {
@@ -399,7 +406,8 @@ export class ExpedientTaskModalPage implements OnInit {
cssClass: 'modal-width-100-width-background modal',
componentProps: {
type: 'AccoesPresidenciais & ArquivoDespachoElect',
showSearchInput: true
showSearchInput: true,
select: true
}
});
await modal.present();
@@ -167,6 +167,7 @@ export class ExpedienteDetailPage implements OnInit {
await modal.present();
modal.onDidDismiss().then(res=>{
console.log(res['data']);
// alert('close '+ res['data'])
if(res['data']=='openDiscart'){
console.log('open discart');
+4 -12
View File
@@ -137,9 +137,7 @@ export class ProcessesService {
let options = {
headers: this.headers,
};
return this.http.post<any>(`${geturl}`, body, options).toPromise().then(res =>{
console.log(res);
});
return this.http.post<any>(`${geturl}`, body, options).toPromise()
}
UpdateTaskStatus(FolderId:string): Observable<any>{
@@ -174,9 +172,7 @@ export class ProcessesService {
let options = {
headers: this.headers,
};
return this.http.post<any>(`${geturl}`, body, options).toPromise().then(res =>{
console.log(res);
});
return this.http.post<any>(`${geturl}`, body, options).toPromise();
}
postParecer(body:any){
@@ -184,9 +180,7 @@ export class ProcessesService {
let options = {
headers: this.headers,
};
return this.http.post<any>(`${geturl}`, body, options).toPromise().then(res =>{
console.log(res);
});
return this.http.post<any>(`${geturl}`, body, options).toPromise();
}
postDeferimento(body:any){
@@ -194,9 +188,7 @@ export class ProcessesService {
let options = {
headers: this.headers,
};
return this.http.post<any>(`${geturl}`, body, options).toPromise().then(res =>{
console.log(res);
});
return this.http.post<any>(`${geturl}`, body, options).toPromise();
}