You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
6.0 KiB
206 lines
6.0 KiB
9 months ago
|
import {
|
||
|
Component,
|
||
|
Input,
|
||
|
OnInit,
|
||
|
TemplateRef,
|
||
|
ViewChild,
|
||
|
ViewContainerRef,
|
||
|
} from "@angular/core";
|
||
|
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
|
||
|
import {
|
||
|
NzFormatEmitEvent,
|
||
|
NzTreeComponent,
|
||
|
NzTreeNodeOptions,
|
||
|
} from "ng-zorro-antd/tree";
|
||
|
import { NzModalService } from "ng-zorro-antd/modal";
|
||
|
import { NzMessageService } from "ng-zorro-antd/message";
|
||
|
import { HttpClient } from "@angular/common/http";
|
||
|
import { TreeService } from "src/app/service/tree.service";
|
||
|
import { NzNotificationService } from "ng-zorro-antd/notification";
|
||
|
@Component({
|
||
|
selector: "app-binding",
|
||
|
templateUrl: "./binding.component.html",
|
||
|
styleUrls: ["./binding.component.scss"],
|
||
|
})
|
||
|
export class BindingComponent implements OnInit {
|
||
|
@Input() data?: any;
|
||
|
validateForm!: FormGroup;
|
||
|
constructor(
|
||
|
private fb: FormBuilder,
|
||
|
private modal: NzModalService,
|
||
|
private viewContainerRef: ViewContainerRef,
|
||
|
private message: NzMessageService,
|
||
|
private http: HttpClient,
|
||
|
private toTree: TreeService,
|
||
|
private notification: NzNotificationService,
|
||
|
private notificationService: NzNotificationService
|
||
|
) {}
|
||
|
|
||
|
level;
|
||
|
getAllUrl;
|
||
|
addUrl;
|
||
|
editUrl;
|
||
|
deleteUrl;
|
||
|
CountsByOrganizations;
|
||
|
isAdmin: boolean;
|
||
|
|
||
|
ngOnInit(): void {
|
||
|
this.validateForm = this.fb.group({
|
||
|
search: [null],
|
||
|
});
|
||
|
this.level = JSON.parse(
|
||
|
sessionStorage.getItem("userdata")
|
||
|
).organization.level;
|
||
|
this.getAllUrl = "/api/services/app/User/GetAll";
|
||
|
this.CountsByOrganizations =
|
||
|
"/api/services/app/User/GetCountsByOrganizations";
|
||
|
this.getAllOrganization();
|
||
|
}
|
||
|
nzSelectedKeys: any[] = [];
|
||
|
defaultExpandedKeys = [];
|
||
|
IsContainsChildren = true;
|
||
|
searchValue = "";
|
||
|
totalCount: string;
|
||
|
//获取所有用户
|
||
|
usersLIst: any = [];
|
||
|
usersNum: string;
|
||
|
OrganizationUnitId;
|
||
|
loading: boolean;
|
||
|
organizationsList = [];
|
||
|
getAllUsers() {
|
||
|
this.loading = true;
|
||
|
let params = {
|
||
|
Keyword: this.validateForm.value.search
|
||
|
? this.validateForm.value.search
|
||
|
: "",
|
||
|
SkipCount: String(this.SkipCount),
|
||
|
MaxResultCount: String(this.MaxResultCount),
|
||
|
OrganizationUnitId: this.OrganizationUnitId,
|
||
|
IsContainsChildren: String(this.IsContainsChildren),
|
||
|
// Sorting: 'BuildingBasicInfo.Id asc'
|
||
|
};
|
||
|
this.http
|
||
|
.get(this.getAllUrl, {
|
||
|
params: params,
|
||
|
})
|
||
|
.subscribe((data: any) => {
|
||
|
this.usersLIst = data.result.items;
|
||
|
this.usersNum = data.result.totalCount;
|
||
|
this.loading = false;
|
||
|
});
|
||
|
}
|
||
|
SkipCount: number = 0; //0 16 32 48
|
||
|
MaxResultCount: number = 16;
|
||
|
pageChange($event) {
|
||
|
this.SkipCount = ($event - 1) * this.MaxResultCount;
|
||
|
this.getAllUsers();
|
||
|
}
|
||
|
|
||
|
//获取所有组织机构
|
||
|
nodes: any = [];
|
||
|
organization;
|
||
|
async getAllOrganization() {
|
||
|
let OrganizationUnitId =
|
||
|
sessionStorage.getItem("isGasStation") == "true"
|
||
|
? JSON.parse(sessionStorage.getItem("userdataOfgasstation"))
|
||
|
.organization.id
|
||
|
: JSON.parse(sessionStorage.getItem("userdata")).organization.id;
|
||
|
let params = {
|
||
|
OrganizationUnitId: OrganizationUnitId,
|
||
|
IsContainsChildren: "true",
|
||
|
};
|
||
|
await new Promise<void>((resolve, reject) => {
|
||
|
this.http
|
||
|
.get("/api/services/app/Organization/GetAll", {
|
||
|
params: params,
|
||
|
})
|
||
|
.subscribe(async (data: any) => {
|
||
|
this.organization = data.result.items;
|
||
|
await this.getuser(data.result.items);
|
||
|
resolve(data);
|
||
|
this.getAllUsers();
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
async getuser(e) {
|
||
|
let OrganizationUnitId =
|
||
|
sessionStorage.getItem("isGasStation") == "true"
|
||
|
? JSON.parse(sessionStorage.getItem("userdataOfgasstation"))
|
||
|
.organization.id
|
||
|
: JSON.parse(sessionStorage.getItem("userdata")).organization.id;
|
||
|
let params = {
|
||
|
OrganizationUnitId: OrganizationUnitId,
|
||
|
IsContainsChildren: "true",
|
||
|
IsUsersCountContainsChildren: String(this.IsContainsChildren),
|
||
|
};
|
||
|
await new Promise<void>((resolve, reject) => {
|
||
|
this.http
|
||
|
.get(this.CountsByOrganizations, {
|
||
|
params: params,
|
||
|
})
|
||
|
.subscribe((data: any) => {
|
||
|
resolve(data);
|
||
|
this.organizationsList = data.result;
|
||
|
const arrs = e.map((item) => {
|
||
|
const data = this.organizationsList.find(
|
||
|
(i) => item.id == i.organizationId
|
||
|
);
|
||
|
return {
|
||
|
...item,
|
||
|
products: data ? data : false,
|
||
|
};
|
||
|
});
|
||
|
|
||
|
for (let index = 0; index < arrs.length; index++) {
|
||
|
if (arrs[index].id == OrganizationUnitId) {
|
||
|
arrs[index].parentId = null;
|
||
|
}
|
||
|
arrs[index].title = arrs[index].displayName;
|
||
|
arrs[index].key = arrs[index].id;
|
||
|
}
|
||
|
|
||
|
this.nodes = [...this.toTree.toTree(arrs)];
|
||
|
this.defaultExpandedKeys = [this.nodes[0].id];
|
||
|
this.nzSelectedKeys = [this.nodes[0].id];
|
||
|
this.OrganizationUnitId = [this.nodes[0].id];
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//搜索框提交
|
||
|
submitForm(): void {
|
||
|
for (const i in this.validateForm.controls) {
|
||
|
this.validateForm.controls[i].markAsDirty();
|
||
|
this.validateForm.controls[i].updateValueAndValidity();
|
||
|
}
|
||
|
this.getAllUsers();
|
||
|
}
|
||
|
nzClick(event: NzFormatEmitEvent) {
|
||
|
this.nzSelectedKeys[0] = event.node.origin.id;
|
||
|
this.nzSelectedKeys = [...this.nzSelectedKeys];
|
||
|
this.OrganizationUnitId = event.node.origin.id;
|
||
|
this.getAllUsers();
|
||
|
}
|
||
|
okbinding(item) {
|
||
|
this.modal.confirm({
|
||
|
nzTitle: "确定要绑定到此本地用户吗?",
|
||
|
nzOkText: "确定",
|
||
|
nzOkType: "primary",
|
||
|
nzOnOk: () => {
|
||
|
this.http
|
||
|
.post("/api/services/app/User/SetSinochemUserLocal", null, {
|
||
|
params: {
|
||
|
sinochemUserId: this.data.userId,
|
||
|
localUserId: item.id,
|
||
|
},
|
||
|
})
|
||
|
.subscribe(() => {
|
||
|
this.message.create("success", "绑定成功");
|
||
|
});
|
||
|
},
|
||
|
nzCancelText: "取消",
|
||
|
nzOnCancel: () => console.log("Cancel"),
|
||
|
});
|
||
|
}
|
||
|
}
|