Skip to content
room-apply.ts 9.9 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {ActionSheetController, IonicPage, ModalController, NavController, NavParams} from 'ionic-angular';
wangqinghua's avatar
wangqinghua committed
import {ServeService} from "../../serve.service";
wangqinghua's avatar
wangqinghua committed
import {FilterComponent} from "../../../../components/filter/filter";
import {PersonMulComponent} from "../../../../components/person-mul/person-mul";
wangqinghua's avatar
wangqinghua committed
import {CommonService} from "../../../../provide/common.service";
wangqinghua's avatar
wangqinghua committed
import {DatePipe} from "@angular/common";
wangqinghua's avatar
wangqinghua committed
import {AppMainService} from "../../../../app/app.service";
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'page-room-apply',
    templateUrl: 'room-apply.html',
wangqinghua's avatar
wangqinghua committed
})
export class RoomApplyPage {

wangqinghua's avatar
wangqinghua committed
    obj = {
wangqinghua's avatar
wangqinghua committed
        meetingType: '1',
wangqinghua's avatar
wangqinghua committed
        meetingTypeText: '工作会议',
wangqinghua's avatar
wangqinghua committed
        roomId: null,
wangqinghua's avatar
wangqinghua committed
        roomText: '请选择',
wangqinghua's avatar
wangqinghua committed
        orgId: null,
wangqinghua's avatar
wangqinghua committed
        orgText: '请选择',
wangqinghua's avatar
wangqinghua committed
        startTime: '',
        endTime: '',
wangqinghua's avatar
wangqinghua committed
        orgLeader: [],
wangqinghua's avatar
wangqinghua committed
        personList: [],
wangqinghua's avatar
wangqinghua committed
        remark: '',
        participant: '',
wangqinghua's avatar
wangqinghua committed
        participantAmount: null,
wangqinghua's avatar
wangqinghua committed
        equipmervice: [],

wangqinghua's avatar
wangqinghua committed
    };

wangqinghua's avatar
wangqinghua committed
    check = {
        roomId: false,
        startTime: false,
wangqinghua's avatar
wangqinghua committed
        endTime: false,
wangqinghua's avatar
wangqinghua committed
        participantAmount: false,
        personList: false,
        orgId: false
    };

wangqinghua's avatar
wangqinghua committed

    meetTypeList = [
wangqinghua's avatar
wangqinghua committed
        {id: '1', name: '工作会议'},
        {id: '2', name: '座谈会'},
        {id: '3', name: '中心组学习'},
        {id: '4', name: '访谈'},
wangqinghua's avatar
wangqinghua committed
    ];
wangqinghua's avatar
wangqinghua committed
    equipList = [
wangqinghua's avatar
wangqinghua committed
        {id: '1', name: '投影仪'},
        {id: '2', name: '互联网'},
        {id: '3', name: '政务外网'},
        {id: '4', name: '话筒'},
        {id: '5', name: '茶水'},
        {id: '6', name: '矿泉水'},
        {id: '7', name: '毛巾'},
        {id: '8', name: '水果'},
wangqinghua's avatar
wangqinghua committed
    ];
wangqinghua's avatar
wangqinghua committed
    roomList = [];
    orgList = [];
    leaderList = [];

wangqinghua's avatar
wangqinghua committed
    personList = [];
wangqinghua's avatar
wangqinghua committed
    roomMax = '请输入参会人数';   //会议室最大人数
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    applyId; //是否编辑
wangqinghua's avatar
wangqinghua committed
    mineInfo;  //申请人信息
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(public navCtrl: NavController, public navParams: NavParams, private actionSheetCtrl: ActionSheetController,
wangqinghua's avatar
wangqinghua committed
                private serveSer: ServeService, public _modalCtrl: ModalController, private appMainSer: AppMainService,
wangqinghua's avatar
wangqinghua committed
                private commonSer: CommonService, private datePipe: DatePipe) {
wangqinghua's avatar
wangqinghua committed
        this.appMainSer.mineInfo.subscribe(value => {
            this.mineInfo = value;
        })
wangqinghua's avatar
wangqinghua committed
    }

    ionViewDidLoad() {
        this.getList();
wangqinghua's avatar
wangqinghua committed
        this.initParams();
wangqinghua's avatar
wangqinghua committed
        this.applyId = this.navParams.get('id');
        if (this.applyId) {
            this.meetDetail();
        }
    }

wangqinghua's avatar
wangqinghua committed
    //时间和会议室初始化
    initParams() {
        const data = this.navParams.get('data');
        if (data) {
            this.obj.startTime = this.datePipe.transform(data.startTime, 'yyyy-MM-ddTHH:mm');
            this.obj.roomId = data.roomId;
            this.obj.roomText = data.roomName;
wangqinghua's avatar
wangqinghua committed
        } else {
            const now = this.datePipe.transform(new Date(), 'yyyy-MM-dd') + ' 9:00';
            this.obj.startTime = this.datePipe.transform(now, 'yyyy-MM-ddTHH:mm');
wangqinghua's avatar
wangqinghua committed
        }
    }

wangqinghua's avatar
wangqinghua committed
    //会议详情
    meetDetail() {
        this.serveSer.meetDetail(this.applyId).subscribe(
            (res) => {
                if (res) {
wangqinghua's avatar
wangqinghua committed
                    this.personList = res.participants.map(e => {
                        const m = {
                            id: e.userId,
                            userName: e.userName
                        };
                        return m;
                    });
wangqinghua's avatar
wangqinghua committed
                    this.obj.orgLeader = res.leaders;
wangqinghua's avatar
wangqinghua committed
                    this.obj.meetingType = res.meetingType;
wangqinghua's avatar
wangqinghua committed
                    this.obj.startTime = this.datePipe.transform(res.startTime, 'yyyy-MM-ddTHH:mm');
wangqinghua's avatar
wangqinghua committed
                    this.obj.endTime = this.datePipe.transform(res.endTime, 'yyyy-MM-ddTHH:mm');
wangqinghua's avatar
wangqinghua committed
                    this.obj.remark = res.remark;
wangqinghua's avatar
wangqinghua committed
                    this.obj.equipmervice = res.equipmervice.split(',');
wangqinghua's avatar
wangqinghua committed
                    this.obj.participantAmount = res.participantAmount;
wangqinghua's avatar
wangqinghua committed
                    this.obj.orgId = res.orgId;
                    this.obj.roomId = res.roomId;
wangqinghua's avatar
wangqinghua committed
                }
            }
        )
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //会议室列表,部领导列表,处室列表
wangqinghua's avatar
wangqinghua committed
    getList() {
        this.serveSer.getLeaders().subscribe(
            (res) => {
                this.leaderList = res.data;
            }
        );
        this.serveSer.getRoomList().subscribe(
            (res) => {
                this.roomList = res.data;
            }
wangqinghua's avatar
wangqinghua committed
        );
        const data = {order: 0};
        this.serveSer.getAllOrganization(data).subscribe(
            (res) => {
                this.orgList = res;
wangqinghua's avatar
wangqinghua committed
                const org = <any>this.orgList.filter(e => e.name == this.mineInfo.orgName);
                if (org && org.length > 0) {
                    this.obj.orgText = org[0].name;
                    this.obj.orgId = org[0].id;
                }
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
    //选择会议类型
    chooseRoomType() {
        const btnArr = this.meetTypeList.map(e => {
            const data = {
                text: e.name,
                role: e.id,
                handler: () => {
                    this.obj.meetingType = e.id;
                    this.obj.meetingTypeText = e.name;
                }
            };
            return data;
        });
        btnArr.push({
            text: '取消',
            role: 'cancel',
            handler: () => {
                console.log('Cancel clicked');
            }
        });

        const actionSheet = this.actionSheetCtrl.create({
            cssClass: 'cameraAction',
            buttons: btnArr
        });
        actionSheet.present();
    }

wangqinghua's avatar
wangqinghua committed
    //选择会议室
    chooseRoom() {
        const btnArr = this.roomList.map(e => {
            const data = {
                text: e.name,
                role: e.id,
                handler: () => {
                    this.obj.roomId = e.id;
                    this.obj.roomText = e.name;
wangqinghua's avatar
wangqinghua committed
                    this.roomMax = `该会议室可容纳${e.accommodation}人`;
wangqinghua's avatar
wangqinghua committed
                }
            };
            return data;
        });
        btnArr.push({
            text: '取消',
            role: 'cancel',
            handler: () => {
                console.log('Cancel clicked');
            }
        });

        const actionSheet = this.actionSheetCtrl.create({
            cssClass: 'cameraAction',
            buttons: btnArr
        });
        actionSheet.present();

    }

    //选择处室
    chooseOrg() {
        const btnArr = this.orgList.map(e => {
            const data = {
                text: e.name,
                role: e.id,
                handler: () => {
                    this.obj.orgId = e.id;
                    this.obj.orgText = e.name;
                }
            };
            return data;
        });
        btnArr.push({
            text: '取消',
            role: 'cancel',
            handler: () => {
                console.log('Cancel clicked');
            }
        });
        const actionSheet = this.actionSheetCtrl.create({
            cssClass: 'cameraAction',
            buttons: btnArr
        });
        actionSheet.present();
    }

wangqinghua's avatar
wangqinghua committed
    //选择部领导
wangqinghua's avatar
wangqinghua committed
    chooseLeader(item) {
        const index = this.obj.orgLeader.indexOf(item.id);
        if (index > -1) {
wangqinghua's avatar
wangqinghua committed
            this.obj.orgLeader.splice(index, 1);
wangqinghua's avatar
wangqinghua committed
        } else {
wangqinghua's avatar
wangqinghua committed
            this.obj.orgLeader.push(item.id);
        }
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //选择设备
wangqinghua's avatar
wangqinghua committed
    chooseEquip(item) {
        const index = this.obj.equipmervice.indexOf(item.id);
        if (index > -1) {
wangqinghua's avatar
wangqinghua committed
            this.obj.equipmervice.splice(index, 1);
        } else {
            this.obj.equipmervice.push(item.id);
        }
wangqinghua's avatar
wangqinghua committed
        console.log(this.obj);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //选择人员
    choose() {
wangqinghua's avatar
wangqinghua committed
        let modal = this._modalCtrl.create(PersonMulComponent, {
wangqinghua's avatar
wangqinghua committed
            enterAnimation: 'modal-scale-enter',
            leaveAnimation: 'modal-scale-leave'
        });
        modal.onDidDismiss(data => {
            if (data) {
                this.personList = data;
            }
        });
        modal.present();
    }

    //移除人员
    removePerson(index) {
        console.log(index);
        this.personList.splice(index, 1);
    }

    submit() {
wangqinghua's avatar
wangqinghua committed
        const max = this.roomMax.replace(/[^0-9]/ig, "");
        console.log(max);
        if (isNaN(this.obj.participantAmount) || this.obj.participantAmount > max) {
            console.log(this.obj.participantAmount);
            this.check.participantAmount = true;
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        //校验
        let checkBool = false;
        for (let i in this.check) {
            if (!this.obj[i] || this.personList.length == 0) {
                checkBool = true;
                this.check[i] = true;
            } else {
                this.check[i] = false;
            }
        }

        if (checkBool) return false;

wangqinghua's avatar
wangqinghua committed
        let orgName = this.orgList.filter(e => this.obj.orgId == e.id)[0].name;
wangqinghua's avatar
wangqinghua committed
        const data = {
            meetingType: this.obj.meetingType,
wangqinghua's avatar
wangqinghua committed
            roomId: this.obj.roomId,
            orgId: this.obj.orgId,
            orgName: orgName,
wangqinghua's avatar
wangqinghua committed
            startTime: new Date(this.obj.startTime).getTime(),
            endTime: new Date(this.obj.endTime).getTime(),
            orgLeader: this.obj.orgLeader.join(','),
            remark: this.obj.remark,
            participant: this.personList.map(e => {
                return e.id
            }).join(','),
wangqinghua's avatar
wangqinghua committed
            participantAmount: this.obj.participantAmount,
            equipmervice: this.obj.equipmervice.join(','),
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        if (this.applyId) data['id'] = this.applyId;
wangqinghua's avatar
wangqinghua committed
        console.log(data);
wangqinghua's avatar
wangqinghua committed
        this.commonSer.alert('确定提交申请?', () => {
            this.serveSer.saveApply(data).subscribe(
                (res) => {
                    if (res.errcode == 1000) {
                        this.navCtrl.pop()
                        this.commonSer.toast('会议室申请成功');
                    } else {
                        this.commonSer.toast(res.errmsg);
                    }
                }
            )
        });
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed
}