Skip to content
group.component.ts 8.57 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit, ViewChild} from '@angular/core';
import {NzMessageService, NzModalService, NzTreeNode, NzTreeNodeOptions} from 'ng-zorro-antd';
import {SystemService} from '../system.service';
wangqinghua's avatar
wangqinghua committed
import {UserComponent} from '../modal/user/user.component';
wangqinghua's avatar
wangqinghua committed
import {GroupModalComponent} from '../modal/group-modal/group-modal.component';
wangqinghua's avatar
wangqinghua committed
import {SelectRoleComponent} from '../../modal/select-role/select-role.component';
wangqinghua's avatar
wangqinghua committed
import {CommonService} from '../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed
import {pageSize, SERVER_API_URL_COMS} from '../../app.constants';
import 'rxjs/Rx' ;
import {UploadComponent} from '../../work/modal/upload/upload.component';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'jhi-group',
    templateUrl: './group.component.html',
    styles: []
wangqinghua's avatar
wangqinghua committed
})
export class GroupComponent implements OnInit {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartSelectRole') smartSelectRole: SelectRoleComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('power') power;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartUser') smartUser: UserComponent;
    @ViewChild('smartGroupModal') smartGroupModal: GroupModalComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild("smartUpload") smartUpload:UploadComponent;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    dataSet: any[];
    groupList: any[];
wangqinghua's avatar
wangqinghua committed
    allChecked = false;
    disabledButton = true;
    indeterminate = false;
    checkedNumber = 0;
    nodes: any[];
    isVisible = true;
wangqinghua's avatar
wangqinghua committed
    userId;
wangqinghua's avatar
wangqinghua committed
    setType;
    selectList = [];
wangqinghua's avatar
wangqinghua committed
    name = null;  //搜索文字

    organizationId = null;  //组织ID
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    pageNum = 1;
    pageSize = pageSize;
    totalNum;

wangqinghua's avatar
wangqinghua committed
    constructor(private systemSer: SystemService, private message: NzMessageService,
wangqinghua's avatar
wangqinghua committed
                private modalSer: NzModalService, private commonSer: CommonService) {
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    checkAll(value: boolean): void {
wangqinghua's avatar
wangqinghua committed
        this.dataSet.forEach(data => data.checked = value);
wangqinghua's avatar
wangqinghua committed
        this.refreshStatus();
    }

wangqinghua's avatar
wangqinghua committed
    currentPageDataChange($event: Array<{ checked: boolean }>): void {
        this.dataSet = $event;
wangqinghua's avatar
wangqinghua committed
    }

    refreshStatus(): void {
wangqinghua's avatar
wangqinghua committed
        const allChecked = this.dataSet.every(value => value.checked === true);
        const allUnChecked = this.dataSet.every(value => !value.checked);
wangqinghua's avatar
wangqinghua committed
        this.allChecked = allChecked;
        this.indeterminate = (!allChecked) && (!allUnChecked);
        this.disabledButton = !this.dataSet.some(value => value.checked);
        this.checkedNumber = this.dataSet.filter(value => value.checked).length;
    }

    mouseAction(name: string, e: any): void {
    }

    ngOnInit() {
wangqinghua's avatar
wangqinghua committed
        this.getUser();
        this.getGroup();
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    getUser() {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            'search': this.name = this.name == '' ? null : this.name,
            'organizationId': this.organizationId = this.organizationId == '' ? null : this.organizationId,
wangqinghua's avatar
wangqinghua committed
            'pageNum': this.pageNum,
            'pageSize': this.pageSize
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.systemSer.user(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.dataSet = res.data.data;
                this.totalNum = res.data.totalCount;
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    search(){
        this.pageNum = 1;
        this.getUser();
    }

wangqinghua's avatar
wangqinghua committed
    changePage(e) {
wangqinghua's avatar
wangqinghua committed
        this.pageNum = e;
        this.getUser();
    }

wangqinghua's avatar
wangqinghua committed
    getOrg(e) {
wangqinghua's avatar
wangqinghua committed
        this.organizationId = e.key;
wangqinghua's avatar
wangqinghua committed
        this.getUser();
    }

wangqinghua's avatar
wangqinghua committed
    //组织信息
wangqinghua's avatar
wangqinghua committed
    getGroup() {
wangqinghua's avatar
wangqinghua committed
        this.systemSer.organization().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.groupList = res.data;
wangqinghua's avatar
wangqinghua committed
                this.groupList.forEach(
                    res => {
                        res.title = res.name;
                        res.key = res.id;
                    }
                );
                this.nodeTree();
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    nodeTree() {
wangqinghua's avatar
wangqinghua committed
        const tree = this.commonSer.listToTree('id', 'parentId', this.groupList,);
wangqinghua's avatar
wangqinghua committed
        const list = tree.map(res => {
            return new NzTreeNode(res);
        });
        this.nodes = list;
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    showModal(): void {
        this.isVisible = true;
    }

    handleOk(): void {
        this.isVisible = false;
    }

    handleCancel(): void {
        this.isVisible = false;
    }

wangqinghua's avatar
wangqinghua committed
    //新增用户
wangqinghua's avatar
wangqinghua committed
    showUserModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartUser.showAddModal(this.groupList, '新增用户');
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //编辑用户
wangqinghua's avatar
wangqinghua committed
    showEditModal(item) {
        this.smartUser.showEditModal(this.groupList, '编辑用户', item.id);
wangqinghua's avatar
wangqinghua committed
    }

    //删除用户--单个
    deleteUser(item) {
wangqinghua's avatar
wangqinghua committed
        this.modalSer.confirm({
            nzTitle: '删除',
            nzContent: '<b style="color: red">确定删除该用户吗</b>',
            nzOkText: '确定',
            nzCancelText: '取消',
            nzOnOk: () => {
wangqinghua's avatar
wangqinghua committed
                this.systemSer.deleteUser(item.id).subscribe(
wangqinghua's avatar
wangqinghua committed
                    (res) => {
wangqinghua's avatar
wangqinghua committed
                        if (res.data == 1) {
wangqinghua's avatar
wangqinghua committed
                            this.getUser();
wangqinghua's avatar
wangqinghua committed
                            this.message.success("删除用户成功");
                        }else{
                            this.message.error(res.errMsg);
wangqinghua's avatar
wangqinghua committed
                        }
wangqinghua's avatar
wangqinghua committed
                    }
                );
            },
            nzOnCancel: () => {
            }
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //删除用户-- 批量
wangqinghua's avatar
wangqinghua committed
    batchDelete() {
wangqinghua's avatar
wangqinghua committed
        let arr = [];
wangqinghua's avatar
wangqinghua committed
        this.dataSet.forEach(e => {
            if (e.checked) {
wangqinghua's avatar
wangqinghua committed
                arr.push(e.id);
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
        if(arr.length == 0){
wangqinghua's avatar
wangqinghua committed
            this.message.warning('请选择需要删除的用户');
wangqinghua's avatar
wangqinghua committed
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        this.commonSer.confirmThing('删除', '确定删除选择的用户', () => {
wangqinghua's avatar
wangqinghua committed
            this.systemSer.batchDeleteUser(arr).subscribe(
                (res) => {
wangqinghua's avatar
wangqinghua committed
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.getUser();
wangqinghua's avatar
wangqinghua committed
                        this.message.success("删除用户成功");
                    }else{
                        this.message.error(res.errMsg);
wangqinghua's avatar
wangqinghua committed
                    }
                }
            );
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //新增部门
wangqinghua's avatar
wangqinghua committed
    showGroupModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartGroupModal.showAddModal(this.groupList,"新增部门");
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //编辑部门
wangqinghua's avatar
wangqinghua committed
    showEditGroupModal(item) {
wangqinghua's avatar
wangqinghua committed
        this.smartGroupModal.showEditModal(this.groupList,"编辑部门",item);
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    //删除部门
wangqinghua's avatar
wangqinghua committed
    deleteGroup(item) {
wangqinghua's avatar
wangqinghua committed
        this.commonSer.confirmThing("删除","确认删除该组织",()=>{
            this.systemSer.deleteOrg(item.key).subscribe(
                (res)=>{
                    if(res.errCode == 10000){
                        this.message.success("删除成功");
                        this.getGroup();
                    }else{
                        this.message.error(res.errMsg);
                    }
                }
            )
        })
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //授予角色
wangqinghua's avatar
wangqinghua committed
    grantRole(data) {
        this.setType = '单个';
wangqinghua's avatar
wangqinghua committed
        this.userId = data.id;
wangqinghua's avatar
wangqinghua committed
        this.smartSelectRole.showModal('选择角色', this.userId);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //设置用户角色
wangqinghua's avatar
wangqinghua committed
    setRole(event) {
        if (this.setType == '批量') {
wangqinghua's avatar
wangqinghua committed
            const data = {
wangqinghua's avatar
wangqinghua committed
                userId: this.selectList.map(
                    e => {
wangqinghua's avatar
wangqinghua committed
                        return e.id;
                    }
                ),
wangqinghua's avatar
wangqinghua committed
                roles: event.map(e => {
wangqinghua's avatar
wangqinghua committed
                    return e.id;
                }),
            };
            this.systemSer.batchUserToAuth(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.getUser();
wangqinghua's avatar
wangqinghua committed
                        this.message.success('授予角色成功');
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.message.error(res.errMsg);
                    }
wangqinghua's avatar
wangqinghua committed
                }
wangqinghua's avatar
wangqinghua committed
            );
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
        if (this.setType == '单个') {
wangqinghua's avatar
wangqinghua committed
            const data = {
wangqinghua's avatar
wangqinghua committed
                userId: this.userId,
                roles: event.map(e => {
wangqinghua's avatar
wangqinghua committed
                    return e.id;
                }),
            };
            this.systemSer.aloneUserToAuth(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.getUser();
wangqinghua's avatar
wangqinghua committed
                        this.message.success('授予角色成功');
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.message.error(res.errMsg);
                    }
                }
wangqinghua's avatar
wangqinghua committed
            );
wangqinghua's avatar
wangqinghua committed
        }
    }

wangqinghua's avatar
wangqinghua committed
    //选择角色
wangqinghua's avatar
wangqinghua committed
    selectRoleModal() {
        this.setType = '批量';
        this.smartSelectRole.showModal('选择角色', null);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //下载模版
    downLoad(){
wangqinghua's avatar
wangqinghua committed
      this.systemSer.downloadTemplate("",SERVER_API_URL_COMS + "/user/downloadTemplate/").subscribe(
wangqinghua's avatar
wangqinghua committed
          data=>{
wangqinghua's avatar
wangqinghua committed
              this.commonSer.downloadFile("模版.xlsx",data)
wangqinghua's avatar
wangqinghua committed
          }
      );
    }

    //导入用户
    showUploadModalUser(){
        this.smartUpload.showModal("上传用户文件");
    }

    //导入组织
    showUploadModalOrg(){
        this.smartUpload.showModal("上传组织文件");
    }

wangqinghua's avatar
wangqinghua committed
}