src/app/modules/search/staff/staff.ts
Поиск сотрудников организации
selector | search-staff |
styleUrls | staff.scss |
templateUrl | ./staff.html |
Properties |
Methods |
constructor(profileService: ProfileService, commonService: CommonService)
|
|||||||||
Defined in src/app/modules/search/staff/staff.ts:44
|
|||||||||
Конструктор
Parameters :
|
ngOnInit |
ngOnInit()
|
Defined in src/app/modules/search/staff/staff.ts:58
|
Инициализация
Returns :
void
|
onFilter | ||||||
onFilter(event: )
|
||||||
Defined in src/app/modules/search/staff/staff.ts:102
|
||||||
Получение новых данных для фильтрации
Parameters :
Returns :
void
|
onViewProfile | ||||||
onViewProfile(event: )
|
||||||
Defined in src/app/modules/search/staff/staff.ts:120
|
||||||
Получение профиля при просмотре
Parameters :
Returns :
void
|
setCatalog |
setCatalog()
|
Defined in src/app/modules/search/staff/staff.ts:70
|
Получение справочников
Returns :
void
|
catalog |
catalog:
|
Type : any
|
Defined in src/app/modules/search/staff/staff.ts:34
|
Справочники для фильтров |
data |
data:
|
Type : any
|
Defined in src/app/modules/search/staff/staff.ts:29
|
Данные |
defaultImage |
defaultImage:
|
Type : string
|
Default value : assets/images/default_image.svg
|
Defined in src/app/modules/search/staff/staff.ts:24
|
Изображение по-умолчанию |
header |
header:
|
Type : string
|
Default value : Поиск сотрудника
|
Defined in src/app/modules/search/staff/staff.ts:19
|
Заголовок |
loading |
loading:
|
Type : boolean
|
Default value : true
|
Defined in src/app/modules/search/staff/staff.ts:44
|
Индикатор загрузки основных данных |
profile |
profile:
|
Type : any
|
Defined in src/app/modules/search/staff/staff.ts:39
|
Профиль |
import { Component, OnInit } from '@angular/core';
import { ProfileService } from 'glx.ui/components/kernel/services/profile.service';
import { CommonService } from 'glx.ui/components/kernel/services/common.service';
/**
* Поиск сотрудников организации
*/
@Component({
selector: 'search-staff',
templateUrl: './staff.html',
styleUrls: ['./staff.scss']
})
export class SearchStaffComponent implements OnInit {
/**
* Заголовок
* @type {string}
*/
header: string = 'Поиск сотрудника';
/**
* Изображение по-умолчанию
* @type {string}
*/
defaultImage: string = 'assets/images/default_image.svg';
/**
* Данные
* @type {{}}
*/
data: any = {};
/**
* Справочники для фильтров
* @type {{}}
*/
catalog: any = {};
/**
* Профиль
* @type {{}}
*/
profile: any = {};
/**
* Индикатор загрузки основных данных
* @type {boolean}
*/
loading: boolean = true;
/**
* Конструктор
* @param {ProfileService} profileService
* @param {CommonService} commonService
*/
constructor(private profileService: ProfileService,
private commonService: CommonService,) {
}
/**
* Инициализация
*/
ngOnInit() {
this.loading = true;
this.catalog = {
departments: [],
job_titles: []
};
this.setCatalog();
}
/**
* Получение справочников
*/
setCatalog() {
this.commonService.get('depslist')
.subscribe(
data => {
this.catalog.departments = [];
this.catalog.departments.push({'value': '', 'label': '(любое)'});
for (let i = 0; i < data.length; i++) {
this.catalog.departments.push(data[i]);
}
},
error => {
console.error(error);
});
this.commonService.get('jobtitles')
.subscribe(
data => {
this.catalog.job_titles = [];
this.catalog.job_titles.push({'value': '', 'label': '(любая)'});
for (let i = 0; i < data.length; i++) {
this.catalog.job_titles.push(data[i]);
}
},
error => {
console.error(error);
});
}
/**
* Получение новых данных для фильтрации
* @param event
*/
onFilter(event) {
this.profileService.searchEmployees(event)
.subscribe(
data => {
this.data = data;
},
error => {
console.error(error);
},
() => {
this.loading = false;
});
}
/**
* Получение профиля при просмотре
* @param event
*/
onViewProfile(event) {
this.profile = {};
this.profileService.get(event)
.subscribe(
data => {
this.profile = data;
},
error => {
console.error(error);
});
}
}
<glx-page-title-bx [header]="header"></glx-page-title-bx>
<div class="staff-search-wrapper">
<glx-staff-search
[filterShow]="false"
[data]="data"
[catalog]="catalog"
[profile]="profile"
(onFilter)="onFilter($event)"
(onViewProfile)="onViewProfile($event)"
[defaultImage]="defaultImage"
[loading]="loading"
imagePrefix="/bitrix/galaktika/galaktika.vuzapi/public/"
globalFilterPlaceholder="Поиск по ФИО, подразделению, должности..."
></glx-staff-search>
</div>