form.component.ts 2.67 KB
Newer Older
liujiangnan's avatar
liujiangnan committed
1
import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef} from '@angular/core';
liujiangnan's avatar
liujiangnan committed
2
import _ from 'lodash';
limingzhe's avatar
limingzhe committed
3

liujiangnan's avatar
liujiangnan committed
4 5 6 7

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

limingzhe's avatar
limingzhe committed
12
  // 储存数据用
liujiangnan's avatar
liujiangnan committed
13
  saveKey = 'ww_vocabulary';
limingzhe's avatar
limingzhe committed
14 15
  // 储存对象
  item;
liujiangnan's avatar
liujiangnan committed
16
  originContent;
limingzhe's avatar
limingzhe committed
17 18


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

  }


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

liujiangnan's avatar
liujiangnan committed
27 28 29 30 31 32 33 34 35 36
    this.item = {
      contentObj: {
        vocabulary: "",
        vocabularyType: "",
        definition: "",
        definition_audio: "",
        pic_id: "",
        vocabulary_audio: ""
      }
    };
limingzhe's avatar
limingzhe committed
37

limingzhe's avatar
limingzhe committed
38
    // 获取存储的数据
liujiangnan's avatar
liujiangnan committed
39
    (window as any).courseware.getData((data) => {
limingzhe's avatar
limingzhe committed
40 41 42
      if (data) {
        this.item = data;
      }
liujiangnan's avatar
liujiangnan committed
43 44
      this.changeDetectorRef.markForCheck();
      this.changeDetectorRef.detectChanges();
limingzhe's avatar
limingzhe committed
45 46
      this.refresh();

limingzhe's avatar
limingzhe committed
47
    }, this.saveKey);
limingzhe's avatar
limingzhe committed
48 49 50 51

  }


liujiangnan's avatar
liujiangnan committed
52
  ngOnChanges() { 
limingzhe's avatar
limingzhe committed
53 54
  }

liujiangnan's avatar
liujiangnan committed
55
  ngOnDestroy() { 
limingzhe's avatar
limingzhe committed
56 57
  }

liujiangnan's avatar
liujiangnan committed
58 59 60
  onImageUploadSuccess(e) {
    this.item.contentObj.pic_id = e.url;
    this.save();
liujiangnan's avatar
liujiangnan committed
61 62
  }

liujiangnan's avatar
liujiangnan committed
63 64 65 66 67 68 69
  updateVocabulary() {
    const temp = this.item.contentObj.vocabulary ? this.item.contentObj.vocabulary.trim() : '';
    if (temp) {
      this.item.contentObj.vocabulary = this.item.contentObj.vocabulary.trim();
    }
    if (temp !== this.originContent.vocabulary) {
      this.originContent.vocabulary = temp;
limingzhe's avatar
limingzhe committed
70
      this.save();
liujiangnan's avatar
liujiangnan committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
    }
  }
  updatePartOfSpeech() {
    const temp = this.item.contentObj.vocabularyType ? this.item.contentObj.vocabularyType.trim() : '';
    if (temp) {
      this.item.contentObj.vocabularyType = this.item.contentObj.vocabularyType.trim();
    }
    if (temp !== this.originContent.vocabularyType) {
      this.originContent.vocabularyType = temp;
      this.save();
    }
  }
  updateDefinition() {
    const temp = this.item.contentObj.definition ? this.item.contentObj.definition.trim() : '';
    if (temp) {
      this.item.contentObj.definition = this.item.contentObj.definition.trim();
    }
    if (temp !== this.originContent.definition) {
      this.originContent.definition = temp;
      this.save();
    }
liujiangnan's avatar
liujiangnan committed
92 93
  }

liujiangnan's avatar
liujiangnan committed
94 95 96 97 98 99
  onVocabularyAudioUploadSuccess(e) {
    this.item.contentObj.vocabulary_audio = e.url;
    this.save();
  }
  onDefinitionAudioUploadSuccess(e) {
    this.item.contentObj.definition_audio = e.url;
limingzhe's avatar
limingzhe committed
100 101 102
    this.save();
  }

liujiangnan's avatar
liujiangnan committed
103
  
limingzhe's avatar
limingzhe committed
104 105 106
  /**
   * 储存数据
   */
limingzhe's avatar
limingzhe committed
107
  save() {
limingzhe's avatar
limingzhe committed
108
    (<any> window).courseware.setData(this.item, null, this.saveKey);
limingzhe's avatar
limingzhe committed
109 110 111
    this.refresh();
  }

limingzhe's avatar
limingzhe committed
112 113 114
  /**
   * 刷新 渲染页面
   */
limingzhe's avatar
limingzhe committed
115 116 117 118
  refresh() {
    setTimeout(() => {
      this.appRef.tick();
    }, 1);
liujiangnan's avatar
liujiangnan committed
119 120 121
  }

}
limingzhe's avatar
limingzhe committed
122