Newer
Older
import {Component, EventEmitter, OnInit, Output} from '@angular/core';
import {NzTreeNode} from 'ng-zorro-antd';
import {SystemService} from '../../system/system.service';
import {CommonService} from '../../shared/common/common.service';
selector: 'smart-select-person',
templateUrl: './select-person.component.html',
`
.p-list, .p-list-title {
display: flex;
align-items: center;
}
.p-list > span:last-child,
.p-list-title > span:last-child {
margin-left: auto;
margin-right: 15px;
}
.p-list {
padding: 8px 15px 0 15px;
}
.p-list + .p-list {
isVisible = false;
title;
groupList;
userList;
selectList = [];
nodes: any[];
allChecked = false;
disabledButton = true;
indeterminate = false;
displayData: Array<{ key1: string; key2: number; key3: string; key4: string; checked: boolean }> = [];
constructor(private systemSer: SystemService, private commonSer: CommonService) {
this.refreshStatus();
}
currentPageDataChange($event: Array<{ key1: string; key2: number; key3: string; key4: string; checked: boolean }>): void {
this.displayData = $event;
}
this.deleteList.forEach((value, index) => {
if (value.id == item.id) {
this.deleteList.splice(index, 1);
});
} else {
this.selectList.forEach((value, index) => {
if (value.id == item.id) {
this.selectList.splice(index, 1);
}
refreshStatus(): void {
const allChecked = this.displayData.every(value => value.checked === true);
const allUnChecked = this.displayData.every(value => !value.checked);
this.allChecked = allChecked;
this.indeterminate = (!allChecked) && (!allUnChecked);
this.disabledButton = !this.userList.some(value => value.checked);
}
ngOnInit() {
}
this.allChecked = false;
this.disabledButton = true;
this.indeterminate = false;
}
this.getGroup();
this.isVisible = true;
this.title = title;
changePage($event) {
if ($event > 0) {
this.pageNum = $event;
this.getUser();
}
'search': null,
'organizationId': this.organizationId = this.organizationId == '' ? null : this.organizationId,
'pageNum': this.pageNum,
'pageSize': this.pageSize
getOrg(e) {
this.organizationId = e.node.key;
this.getUser();
}
//组织信息
getGroup() {
this.systemSer.organization().subscribe(
(res) => {
this.groupList = res.data;
this.groupList.forEach(
res => {
res.title = res.name;
res.key = res.id;
}
);
this.nodeTree();
}
);
}
const tree = this.commonSer.listToTree('id', 'parentId', this.groupList,);
const list = tree.map(res => {
return new NzTreeNode(res);
});
this.nodes = list;
}