Commit 00dd4eef authored by Chen Jiping's avatar Chen Jiping

perf:完成配置页面开发

parent 8a51c964
......@@ -128,5 +128,8 @@
}
}
},
"defaultProject": "ng-template-generator"
}
"defaultProject": "ng-template-generator",
"cli": {
"analytics": "9c72016e-fa29-4a4b-bddc-fc1fe6a70fa7"
}
}
\ No newline at end of file
import { Obj } from './ObjBean';
export class BackgroundBean extends Obj {
/**皮肤标识 */
skinFlag: String;
/**左上 */
lt: Obj = new Obj();
/**中上 */
mt: Obj = new Obj();
/**右上 */
rt: Obj = new Obj();
/**左中 */
lm: Obj = new Obj();
/**右中 */
rm: Obj = new Obj();
/**左下 */
lb: Obj = new Obj();
/**中下 */
mb: Obj = new Obj();
rb: Obj = new Obj();
}
\ No newline at end of file
import { Obj } from './ObjBean';
export class ExercisesBean extends Obj {
answerIndex: number;
wordArr: Array<WordBean> = [];
}
export class WordBean extends Obj {
letterArr: Array<LetterBean> = [];
}
export class LetterBean extends Obj {
/** 是否填空:0-否, 1 - 是*/
isFill: String = '0';
/** 是否着色:0-否, 1 - 是*/
isColor: String = '0';
}
export function getDefaultExercisesBean() {
const exercises = new ExercisesBean();
return exercises;
}
export function getDefaultLetterBean() {
const letter = new LetterBean();
return letter;
}
\ No newline at end of file
export class Obj{
/**音频材料 */
audioUrl: String;
/**图片材料 */
picUrl:String;
val : String;
}
\ No newline at end of file
import { Obj } from './ObjBean';
export class TitleBean extends Obj{
part1 : String;
part2 : String;
}
export function getDefaultTitle(){
const title = new TitleBean();
title.part1 = 'C';
title.part2 = 'Listen point and repeat.';
return title;
}
\ No newline at end of file
This diff is collapsed.
import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef} from '@angular/core';
import { Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core';
import { NzMessageService } from 'ng-zorro-antd/message'
import { TitleBean } from '../bean/TitleBean';
import { getDefaultExercisesBean, getDefaultLetterBean, WordBean } from '../bean/ExercisesBean';
import { BackgroundBean } from '../bean/BackgoundBean';
@Component({
selector: 'app-form',
......@@ -10,12 +13,12 @@ import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, Ap
export class FormComponent implements OnInit, OnChanges, OnDestroy {
// 储存数据用
saveKey = "test_0011";
saveKey = "YM4-10";
// 储存对象
item;
constructor(private appRef: ApplicationRef,private changeDetectorRef: ChangeDetectorRef) {
constructor(private appRef: ApplicationRef, private changeDetectorRef: ChangeDetectorRef, private message: NzMessageService) {
}
......@@ -24,8 +27,16 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
this.item = {};
this.item.skinA = new BackgroundBean();
this.item.skinB = new BackgroundBean();
this.item.title = new TitleBean();
this.item.exercisesArr = [];
// 获取存储的数据
(<any> window).courseware.getData((data) => {
(<any>window).courseware.getData((data) => {
if (data) {
this.item = data;
......@@ -50,37 +61,98 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
init() {
console.log(this.item);
if (!this.item.title) {
this.item.title = new TitleBean();
}
//设置默认皮肤
if (!this.item.skin) {
this.item.skin = "A";
}
if (!this.item.skinA) {
this.item.skinA = new BackgroundBean();
}
if (!this.item.skinB) {
this.item.skinB = new BackgroundBean();
}
if (!this.item.exercisesArr) {
this.item.exercisesArr = [];
}
let len = this.item.exercisesArr.length;
if (len < 4) {
for (let i = len; i < 4; ++i) {
const exercises = getDefaultExercisesBean();
this.item.exercisesArr.push(exercises);
}
}
}
/**
* 储存图片数据
* @param e
*/
onImageUploadSuccess(e, key) {
* 储存图片数据
* @param e
*/
onImageUploadSuccess(e, item, key) {
this.item[key] = e.url;
this.save();
item[key] = e.url;
this.save();
}
/**
* 储存音频数据
* @param e
*/
onAudioUploadSuccess(e, key) {
onAudioUploadSuccess(e, item, key) {
this.item[key] = e.url;
item[key] = e.url;
this.save();
}
saveIndex(item) {
console.log(item);
let canSave = true;
for (let i = 0; i < this.item.exercisesArr.length; ++i) {
let exercises = this.item.exercisesArr[i];
if (item == exercises) {
continue;
}
else if (exercises.answerIndex == item.answerIndex) {
canSave = false;
break;
}
}
if (canSave) {
this.save();
}
else {
let id = this.message.error('已经存在相同的顺序号', { nzDuration: 0 }).messageId;
setTimeout(() => {
this.message.remove(id);
}, 2500);
}
}
/**
* 储存数据
*/
save() {
(<any> window).courseware.setData(this.item, null, this.saveKey);
(<any>window).courseware.setData(this.item, null, this.saveKey);
this.refresh();
}
......@@ -93,5 +165,48 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
}, 1);
}
addLetter(word, key) {
let letter = getDefaultLetterBean();
word[key] = [...word[key], letter];
this.save();
}
delLetter(word, key, index) {
if (index !== -1) {
word[key].splice(index, 1);
word[key] = [...word[key]];
this.save();
}
}
clearBg() {
if (this.item.skin === 'A') {
this.item.skinA = new BackgroundBean();
}
else {
this.item.skinB = new BackgroundBean();
}
this.save();
}
addWord(exercises, key) {
let word = new WordBean();
exercises[key] = [...exercises[key], word];
this.save();
}
deleteWord(exercises, key, index) {
if (index !== -1) {
exercises[key].splice(index, 1);
exercises[key] = [...exercises[key]];
this.save();
}
}
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment