h-selfdelivery-admin-panel-p/src/app/pages/divisions/divisions.component.ts

192 lines
5.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Component, OnInit } from "@angular/core";
import { JsonrpcService, RpcService } from "src/app/services/jsonrpc.service";
import { MessageService } from "primeng/api";
import { Divisions } from "src/app/interface/data";
import { ConfirmationService, FilterService, FilterMatchMode, SelectItem } from 'primeng/api';
@Component({
selector: 'app-divisions',
templateUrl: './divisions.component.html',
styleUrls: ['./divisions.component.scss']
})
export class DivisionsComponent implements OnInit {
public divisions: Divisions[] = [];
public new_div = true;
public choose = this.jsonRpcService.ClientChoose;
public create = false;
public chooseName!: string;
public ind: boolean = false;
public matchModeOptions!: SelectItem[];
constructor(
private jsonRpcService: JsonrpcService,
private messageService: MessageService,
private confirmationService: ConfirmationService,
private filterService: FilterService
) { }
ngOnInit(): void {
if (this.choose) { this.getDivisions() };
const customFilterName = "custom-contains";
this.filterService.register(customFilterName, (value: any, filter: any): boolean => {
if (filter === undefined || filter === null || filter.trim() === '') {
return true;
}
if (value === undefined || value === null) {
return false;
}
let det = value.toString()
let det2 = det.toLowerCase()
return det2.includes(filter.toString()) || det.includes(filter.toString());
});
this.matchModeOptions = [
{ label: 'Содержит', value: customFilterName },
{ label: 'Равно', value: FilterMatchMode.EQUALS },
{ label: 'Начинается с', value: FilterMatchMode.STARTS_WITH },
];
}
async getDivisions() {
this.create = false;
this.new_div = true;
await this.jsonRpcService.rpc2({
method: 'getDivisions',
params: {
"client_id": this.choose
}
}, RpcService.authService, false)
.subscribe({
next: (result) => {
let data = result.result;
this.divisions = data;
document.getElementsByTagName('thead')[0].style.display = 'table';
document.getElementsByTagName('thead')[0].style.width = '100%';
document.getElementsByTagName('thead')[0].style.tableLayout = 'fixed';
document.getElementsByTagName('tbody')[0].style.display = 'block';
document.getElementsByTagName('tbody')[0].style.maxHeight = 'calc(100vh - 290px)';
document.getElementsByTagName('tbody')[0].style.overflowY = 'scroll';
},
error: (err) => {
console.log('ERROR: ', err)
this.messageService.add({
severity: 'error',
summary: 'Произошла ошибка!',
})
}
});
this.chooseName = this.jsonRpcService.ClientChooseName;
}
changeDivision1(id: any, name: any) {
this.new_div = false;
setTimeout(() => document.getElementsByTagName("input")[0].value = name, 100);
this.jsonRpcService.changeId = id
}
changeDivision() {
let name_n = document.getElementsByTagName("input")[0].value
this.jsonRpcService.rpc2({
method: 'updateDivision',
params: {
"client_id": this.choose,
"division_id": this.jsonRpcService.changeId,
"name": name_n
}
}, RpcService.authService, false)
.subscribe({
next: (result) => {
let data = result.result;
/*this.clients = data;*/
},
error: (err) => {
console.log('ERROR: ', err)
this.messageService.add({
severity: 'error',
summary: 'Произошла ошибка!',
})
}
});
this.new_div = true;
this.jsonRpcService.changeId = "";
setTimeout(() => this.getDivisions(), 100);
}
deleteDivision(id: any) {
this.jsonRpcService.rpc2({
method: 'deleteDivision',
params: {
"client_id": this.choose,
"division_id": id
}
}, RpcService.authService, false)
.subscribe({
next: (result) => {
let data = result.result;
/*this.clients = data;*/
},
error: (err) => {
console.log('ERROR: ', err)
this.messageService.add({
severity: 'error',
summary: 'Произошла ошибка!',
})
}
});
setTimeout(() => this.getDivisions(), 100);
}
chooseClient(id: any, name: any) {
console.log(id);
this.jsonRpcService.ClientChooseName = name;
this.jsonRpcService.ClientChoose = id;
this.choose = this.jsonRpcService.ClientChoose;
this.chooseName = this.jsonRpcService.ClientChooseName;
}
createDivision() {
this.new_div = false;
this.create = true;
}
createDivision2() {
let name = document.getElementsByTagName("input")[0].value
this.jsonRpcService.rpc2({
method: 'createDivision',
params: {
"name": name,
"client_id": this.choose
}
}, RpcService.authService, false)
.subscribe({
next: (result) => {
let data = result.result;
/*this.clients = data;*/
},
error: (err) => {
console.log('ERROR: ', err)
this.messageService.add({
severity: 'error',
summary: 'Произошла ошибка!',
})
}
});
setTimeout(() => this.getDivisions(), 100);
}
confirm(id: any) {
this.confirmationService.confirm({
message: 'Вы действительно хотите удалить элемент?',
accept: () => {
this.deleteDivision(id)
}
});
}
}