unit.ts 2.61 KB
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { DataService } from '../../providers/data-service';
import { Unit } from '../../providers/define-unit';
import { QaPage } from '../qa/qa';

/*
  Generated class for the Unit page.

  See http://ionicframework.com/docs/v2/components/#navigation for more info on
  Ionic pages and navigation.
*/
@Component({
  selector: 'page-unit',
  templateUrl: 'unit.html'
})
export class UnitPage {
    menuId:number;
    allNum: number;
    title:string;

    list1: Unit[];
    list1state: Array<string> = new Array();
    list1num: number;
    totallist: Array<string> = new Array();

    currentIndex: number;
    currentItem: Unit;

    constructor(public navCtrl: NavController, private navParams: NavParams, private dataSevice: DataService) {

      this.menuId = navParams.get("menuId");
      this.title = navParams.get("title");

      this.currentIndex = 0;
      this.currentItem = null;

      this.list1 = dataSevice.getUnit(this.menuId);
      this.list1num = this.list1.length;

      for (var i = 0; i < this.list1num; i++) {
          this.totallist.push(dataSevice.getUnitQaCnt(this.menuId, this.list1[i].unitId).toString());
      }

      this.updateStatus();

    }

  ionViewDidEnter() {
    if(this.currentItem != null)
    {
        var key: string;
        key = this.menuId + ":" + this.currentItem.unitId;
        this.dataSevice.getInfo(key)
           .then(data => {
               this.list1state[this.currentIndex] = data;
           });
     }
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad UnitPage');
  }

  ionViewWillLeave(){
      var key: string;
      var value: number;
      key = this.menuId.toString();

      value = 0;
      for(var i = 0; i< this.list1num; i++)
      {
          if(this.list1state[i] != null)
          {
              value += +this.list1state[i];
          }
      }
      this.dataSevice.saveInfo(key, value.toString());
  }

  itemSelected(item: Unit, index: number) {
      this.currentIndex = index;
      this.currentItem = item;
      this.navCtrl.push(QaPage,{menuId: this.menuId, unitId: item.unitId, title: item.unitName});
  }

  updateStatus()
  {
      var promiseArray1 = new Array();
      for (var i = 0; i < this.list1num; i++) {
           var key: string;
           key = this.menuId + ":" + this.list1[i].unitId;
           promiseArray1.push(this.dataSevice.getInfo(key));
      }

      Promise.all(promiseArray1)
      .then(val =>
      {
          for(var i = 0; i< this.list1num; i++)
          {
              this.list1state[i] = val[i];
          }

      });
  }

}