form.component.ts 1.77 KB
Newer Older
1 2
import { Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core';
import { getDefaultExercises } from '../bean/ExercisesBean';
limingzhe's avatar
limingzhe committed
3 4


liujiangnan's avatar
liujiangnan committed
5 6 7 8

@Component({
  selector: 'app-form',
  templateUrl: './form.component.html',
liujiaxin's avatar
liujiaxin committed
9
  styleUrls: ['./form.component.css']
liujiangnan's avatar
liujiangnan committed
10 11 12
})
export class FormComponent implements OnInit, OnChanges, OnDestroy {

limingzhe's avatar
limingzhe committed
13
  // 储存数据用
14
  saveKey = "LST-06";
limingzhe's avatar
limingzhe committed
15 16
  // 储存对象
  item;
limingzhe's avatar
limingzhe committed
17 18


19
  constructor(private appRef: ApplicationRef, private changeDetectorRef: ChangeDetectorRef) {
limingzhe's avatar
limingzhe committed
20 21 22 23

  }


liujiangnan's avatar
liujiangnan committed
24 25
  ngOnInit() {

limingzhe's avatar
limingzhe committed
26 27
    this.item = {};

28 29
    this.item.exercisesArr = [];

limingzhe's avatar
limingzhe committed
30
    // 获取存储的数据
31
    (<any>window).courseware.getData((data) => {
limingzhe's avatar
limingzhe committed
32 33 34 35 36 37

      if (data) {
        this.item = data;
      }

      this.init();
liujiangnan's avatar
liujiangnan committed
38 39
      this.changeDetectorRef.markForCheck();
      this.changeDetectorRef.detectChanges();
limingzhe's avatar
limingzhe committed
40 41
      this.refresh();

limingzhe's avatar
limingzhe committed
42
    }, this.saveKey);
limingzhe's avatar
limingzhe committed
43 44 45 46

  }


limingzhe's avatar
limingzhe committed
47
  ngOnChanges() {
limingzhe's avatar
limingzhe committed
48 49
  }

limingzhe's avatar
limingzhe committed
50
  ngOnDestroy() {
limingzhe's avatar
limingzhe committed
51 52 53 54
  }



limingzhe's avatar
limingzhe committed
55
  init() {
limingzhe's avatar
limingzhe committed
56

liujiangnan's avatar
liujiangnan committed
57 58
  }

limingzhe's avatar
limingzhe committed
59

limingzhe's avatar
limingzhe committed
60
  /**
61 62 63 64
  * 储存图片数据
  * @param e
  */
  onImageUploadSuccess(e, item, key) {
limingzhe's avatar
limingzhe committed
65

66 67
    item[key] = e.url;
    this.save();
liujiangnan's avatar
liujiangnan committed
68 69
  }

limingzhe's avatar
limingzhe committed
70 71 72 73
  /**
   * 储存音频数据
   * @param e
   */
74
  onAudioUploadSuccess(e, item, key) {
limingzhe's avatar
limingzhe committed
75

76
    item[key] = e.url;
limingzhe's avatar
limingzhe committed
77 78 79 80 81
    this.save();
  }



limingzhe's avatar
limingzhe committed
82 83 84
  /**
   * 储存数据
   */
limingzhe's avatar
limingzhe committed
85
  save() {
86
    (<any>window).courseware.setData(this.item, null, this.saveKey);
limingzhe's avatar
limingzhe committed
87 88 89
    this.refresh();
  }

limingzhe's avatar
limingzhe committed
90 91 92
  /**
   * 刷新 渲染页面
   */
limingzhe's avatar
limingzhe committed
93 94 95 96
  refresh() {
    setTimeout(() => {
      this.appRef.tick();
    }, 1);
liujiangnan's avatar
liujiangnan committed
97 98
  }

99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
  addExercises(item, key) {
    let exercises = getDefaultExercises();

    item[key] = [...item[key], exercises];

    this.save();
  }

  deleteExercises(item, key, index) {
    if (index !== -1) {
      item[key].splice(index, 1);
      item[key] = [...item[key]];
      this.save();
    }
  }
liujiangnan's avatar
liujiangnan committed
114
}
limingzhe's avatar
limingzhe committed
115