Skip to content
team-modal.component.ts 3.71 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {ProjectService} from '../../project.service';
wangqinghua's avatar
wangqinghua committed
import {TeamPeopleComponent} from '../team-people/team-people.component';
wangqinghua's avatar
wangqinghua committed
import {NzMessageService} from 'ng-zorro-antd';
import {CommonService} from '../../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed

@Component({
    selector: 'smart-team-modal',
    templateUrl: './team-modal.component.html',
    styles: []
})
export class TeamModalComponent implements OnInit {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartTeamPeople') smartTeamPeople: TeamPeopleComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('modalFooter') modalFooter: ElementRef;
wangqinghua's avatar
wangqinghua committed
    @Output() done = new EventEmitter<any>();
wangqinghua's avatar
wangqinghua committed

    isVisiable = false;
wangqinghua's avatar
wangqinghua committed
    title;

    delete = {
        isVisiable: false,
        isOkLoading: false,
        leaveDate: ''
    };
wangqinghua's avatar
wangqinghua committed
    obj = {
wangqinghua's avatar
wangqinghua committed
        teamId: '',
        userName: ''  //
wangqinghua's avatar
wangqinghua committed
    };

    page = {
        list: [],
        isLoading: false,
        totalNum: 0,
        pageNum: 1,
        pageCount: 5,
    };

    inSelect;
wangqinghua's avatar
wangqinghua committed
    showModalFooter;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private projectSer: ProjectService, private commoneSer: CommonService,
                private message: NzMessageService) {
wangqinghua's avatar
wangqinghua committed
    }

    ngOnInit() {
    }

wangqinghua's avatar
wangqinghua committed
    showModal(data, title) {
wangqinghua's avatar
wangqinghua committed
        this.isVisiable = true;
wangqinghua's avatar
wangqinghua committed
        this.obj.teamId = data.id;
wangqinghua's avatar
wangqinghua committed
        this.title = title;
        this.showModalFooter = this.title == '团队成员' ? null : this.modalFooter;
wangqinghua's avatar
wangqinghua committed
        this.getList();
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    getList() {
        this.page.isLoading = true;
        const obj = {
            obj: this.obj,
            pageNum: this.page.pageNum,
            pageCount: this.page.pageCount
        };
wangqinghua's avatar
wangqinghua committed
        this.projectSer.selectMaintainTeamUser(obj).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.errCode == 10000) {
                    this.page.list = res.data.data;
wangqinghua's avatar
wangqinghua committed
                    this.page.list.forEach(e => e.checked = false);
wangqinghua's avatar
wangqinghua committed
                    this.page.totalNum = res.data.totalNum;
                    this.page.isLoading = false;
                }
            }
        );
    }

    PageDataChange(e) {

    }

    changePage(e) {
        this.page.pageNum = e;
        this.getList();
    }

    selectItem(item, e) {
        if (e) {
            const arr = this.page.list.map(data => {
wangqinghua's avatar
wangqinghua committed
                return data.id;
wangqinghua's avatar
wangqinghua committed
            });
            const old = this.inSelect;
            if (old) {
wangqinghua's avatar
wangqinghua committed
                const index = arr.indexOf(old.id);
wangqinghua's avatar
wangqinghua committed
                this.page.list[index].checked = false;
            }
            this.inSelect = item;
        } else {
            this.inSelect = null;
        }
    }

wangqinghua's avatar
wangqinghua committed
    handleOk() {
wangqinghua's avatar
wangqinghua committed
        this.isVisiable = false;
wangqinghua's avatar
wangqinghua committed
        this.done.emit(this.inSelect);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    handleCancel() {
wangqinghua's avatar
wangqinghua committed
        this.isVisiable = false;
wangqinghua's avatar
wangqinghua committed
        this.done.emit();
    }

wangqinghua's avatar
wangqinghua committed
    showAddModal() {
        this.smartTeamPeople.showAddModal('新增团队成员', this.obj.teamId);
    }

    showDeleteModal() {
        if (!this.inSelect) {
            this.message.info('请选择人员');
            return;
        }
        this.delete.isVisiable = true;
    }

    //删除团队成员
    deleteTaamPeople() {
wangqinghua's avatar
wangqinghua committed
        if (!this.delete.leaveDate) {
            this.message.warning('请选择离岗时间');
            return;
        }
wangqinghua's avatar
wangqinghua committed
        this.commoneSer.confirmThing('删除', `确定移除${this.inSelect.userName}`, () => {
            const data = {
wangqinghua's avatar
wangqinghua committed
                id: this.inSelect.id
wangqinghua's avatar
wangqinghua committed
            };
            this.projectSer.deleteMaintainTeamUser(data).subscribe(
                (res) => {
wangqinghua's avatar
wangqinghua committed
                    if (res.errCode == 10000) {
                        this.delete.leaveDate = null;
wangqinghua's avatar
wangqinghua committed
                        this.delete.isVisiable = false;
                        this.getList();
                    }
                }
            );
        });
wangqinghua's avatar
wangqinghua committed
    }

}