Commit 3aa8995c authored by Seaborn Lee's avatar Seaborn Lee

refactor: 调整数据结构

parent 9b57a4ec
......@@ -37,29 +37,29 @@
<h5 style="width: 100%; line-height: 40px; text-align: center;"> 句组-{{i+1}}</h5>
<div nz-form>
<nz-form-item>
<nz-radio-group [(ngModel)]="it.left.num" (ngModelChange)="save()" style="margin-left: 9%">
<nz-radio-group [(ngModel)]="it.num" (ngModelChange)="save()" style="margin-left: 9%">
<label nz-radio nzValue="Y"></label>
<label nz-radio nzValue="N"></label>
</nz-radio-group>
<div *ngIf="it.left.num== 'Y'" style="width: 33%; margin-left: 9%">
<div *ngIf="it.num== 'Y'" style="width: 33%; margin-left: 9%">
<nz-form-label nzFor="xuhao">序号</nz-form-label>
<input style="width: 20%; margin-bottom: 0.5vw" type="text" nz-input placeholder="" [(ngModel)]="it.xuhao" (blur)="saveItem()">
</div>
<div *ngIf="it.left.num== 'N'" style="width: 80%">
<div *ngIf="it.num== 'N'" style="width: 80%">
<br>
</div>
<nz-form-label [nzSpan]="3" nzFor="it.left.word_val">句子</nz-form-label>
<nz-form-label [nzSpan]="3" nzFor="it.word_val">句子</nz-form-label>
<nz-form-control [nzSpan]="20">
<input type="text" nz-input placeholder="请录入句子" [(ngModel)]="it.left.word_val"
(blur)="saveWordItem(i,'left')">
<input type="text" nz-input placeholder="请录入句子" [(ngModel)]="it.word_val"
(blur)="saveWordItem(i)">
</nz-form-control>
</nz-form-item>
<div style="width: 100%;">
<app-upload-image-with-preview id="it.left.word_pic_url"
[picUrl]="it.left.word_pic_url"
(imageUploaded)="onImageUploadSuccessByItem($event, it.left,'word_pic_url')"
<app-upload-image-with-preview id="it.word_pic_url"
[picUrl]="it.word_pic_url"
(imageUploaded)="onImageUploadSuccessByItem($event, it,'word_pic_url')"
></app-upload-image-with-preview>
</div>
<nz-form-item>
......@@ -72,7 +72,7 @@
</nz-form-item>
<nz-form-item>
<div nz-col [nzSpan]="15" nzOffset="2">
<nz-table [nzData]="it.left.letters" [nzHideOnSinglePage]="true" [nzBordered]="true">
<nz-table [nzData]="it.letters" [nzHideOnSinglePage]="true" [nzBordered]="true">
<thead>
<tr>
<th>单词</th>
......@@ -81,7 +81,7 @@
</tr>
</thead>
<tbody>
<tr *ngFor="let data of it.left.letters;let j = index">
<tr *ngFor="let data of it.letters;let j = index">
<td>{{data.letter_val}}</td>
<td>
......
......@@ -184,14 +184,11 @@ num
wordItemData() {
return {
left: {
word_val: '',
letters: [],
word_pic_url:'',
num:'Y',
},
audio_url: '',
};
}
......@@ -203,12 +200,12 @@ num
// };
// }
saveWordItem(index,type) {
let val = this.wordArr[index][type].word_val.split(" ");
this.wordArr[index][type].letters = [];
saveWordItem(index) {
let val = this.wordArr[index].word_val.split(" ");
this.wordArr[index].letters = [];
for(let i=0;i<val.length;i++){
if(val[i]){
this.wordArr[index][type].letters.push({
this.wordArr[index].letters.push({
letter_val: val[i],
letter_color: 'C04',
letter_font: 'BRLNSDB',
......
......@@ -450,13 +450,13 @@ export class PlayComponent implements OnInit, OnDestroy {
this.data.title.t_val1 = 'C';
this.data.title.t_val2 = 'lisiten,make a sentence.Then chant.';
this.data.wordArr[0].left.num = "Y";
this.data.wordArr[0].left.word_pic_url = "assets/play/bg.png";
this.data.wordArr[0].left.letters[0].letter_val = 'Sam';
this.data.wordArr[0].left.letters[1].letter_val = 'has';
this.data.wordArr[0].left.letters[2].letter_val = 'a';
this.data.wordArr[0].left.letters[3].letter_val = 'cap';
this.data.wordArr[0].left.letters[3].letter_color = 'BRLNSDB';
this.data.wordArr[0].num = "Y";
this.data.wordArr[0].word_pic_url = "assets/play/bg.png";
this.data.wordArr[0].letters[0].letter_val = 'Sam';
this.data.wordArr[0].letters[1].letter_val = 'has';
this.data.wordArr[0].letters[2].letter_val = 'a';
this.data.wordArr[0].letters[3].letter_val = 'cap';
this.data.wordArr[0].letters[3].letter_color = 'BRLNSDB';
}
......@@ -465,7 +465,7 @@ export class PlayComponent implements OnInit, OnDestroy {
defaultWordArr() {
return [
{
left: {
xuhao: "1",
num: "Y",
word_val: 'Sam has a cap',
word_audio_url: '',
......@@ -475,10 +475,8 @@ export class PlayComponent implements OnInit, OnDestroy {
{letter_val: "a", letter_color: 'C02', is_: '0'},
{letter_val: "cap", letter_color: 'C04', is_: '0'}
]
}
},
{
left: {
num: "N",
word_val: 'He likes jam',
word_audio_url: '',
......@@ -487,10 +485,9 @@ export class PlayComponent implements OnInit, OnDestroy {
{letter_val: "likes", letter_color: 'C02', is_: '0'},
{letter_val: "jam", letter_color: 'C04', is_: '0'}
]
}
},
{
left: {
xuhao: "2",
num: "Y",
word_val: 'Zap has a map',
word_audio_url: '',
......@@ -501,7 +498,6 @@ export class PlayComponent implements OnInit, OnDestroy {
{letter_val: "map", letter_color: 'C04', is_: '0'}
]
}
}
];
}
......@@ -526,7 +522,7 @@ export class PlayComponent implements OnInit, OnDestroy {
};
for (let i = 0; i < this.data.wordArr.length; i++) {
addPicUrl(this.data.wordArr[i].left.word_pic_url);
addPicUrl(this.data.wordArr[i].word_pic_url);
}
......@@ -606,34 +602,24 @@ export class PlayComponent implements OnInit, OnDestroy {
}
initmusic() {
for (let i = 0; i < this.data.wordArr.length + 2; i++) {
let musicArr = [];
if (i == 0) {
musicArr[0] = this.data.title.audio_url;
} else if (i == 1) {
musicArr[1] = this.data.title.allmusic_audio;
} else {
musicArr[i] = this.data.wordArr[i - 2].audio_url;
}
this.musicArr.push(musicArr[i]);
}
}
initPic() {
for (let i = 0; i < this.data.wordArr.length; i++) {
let pic = new MySprite();
pic.init(this.images.get(this.data.wordArr[i].left.word_pic_url));
pic.init(this.images.get(this.data.wordArr[i].word_pic_url));
this.word_bg_groups[i].addChild(pic);
pic.visible = true;
......@@ -701,7 +687,7 @@ export class PlayComponent implements OnInit, OnDestroy {
//字母
let letter = letters[i];
if (i == 0) {
if (this.data.wordArr[index].left.num == 'Y') {
if (this.data.wordArr[index].num == 'Y') {
// 加一个序号
let letter_num = new Label();
letter_num.text = this.data.wordArr[index].xuhao + ".";
......@@ -804,7 +790,7 @@ export class PlayComponent implements OnInit, OnDestroy {
let wordNum = this.data.wordArr.length;
// console.log('line: ', line) ;
for (let i = 0; i < wordNum; i++) {
let letters = this.data.wordArr[i].left.letters;
let letters = this.data.wordArr[i].letters;
this.word_bg_groups[i] = this.makeSentence(i, letters);
this.word_bg_groups[i].y = -240 + 140 * i;
this.word_bg_groups[i].x = -540;
......@@ -1075,97 +1061,9 @@ export class PlayComponent implements OnInit, OnDestroy {
}
mapMove(event) {
/* if(this.checkClickTarget(this.juzi_bg)&&this.shapePosY&&this.word_left_scoll.visible){
let y = event.clientY;
let startY = this.ls_title.y+this.ls_title.height; //文字区域的原始Y值
let bodyBox = this.word_left_shape_body;
let bodyY = bodyBox.y;
let bodyH = bodyBox.height;
//句子可见高度570/整个屏幕高度
let sx = this.bodySeeHeight/this.canvasHeight;
//鼠标点击拖动量
let step = (y-this.shapePosY)*sx;
if(step>0&&bodyY+step>=startY){
//说明到顶了,不能再拉了
this.word_left_shape_body.y = startY;
this.word_left_scoll_y_block.y = 1;
return;
}
//往上滑判断是否到底
if(step<0&&startY-(bodyH-this.bodySeeHeight)>=bodyY){
//说明到底了,不能再拉了
this.word_left_shape_body.y = startY-(bodyH-this.bodySeeHeight);
this.word_left_scoll_y_block.y = this.bodySeeHeight-this.word_left_scoll_y_block.height+1;
return;
}
this.word_left_shape_body.y = bodyY+step;
//控制滑块
let sc = this.bodySeeHeight/bodyH;
let position_y = (startY-this.word_left_shape_body.y)*sc;
if(position_y<1){
position_y = 1;
}else if(position_y>this.bodySeeHeight-this.word_left_scoll_y_block.height){
position_y = this.bodySeeHeight-this.word_left_scoll_y_block.height+1;
}
this.word_left_scoll_y_block.y = position_y;
} */
if (this.checkClickTarget(this.guide_bg)) {
let y = event.clientY;
let i = 9;
if (y <= 317 && i < 6) {
this.guide.y = y - 225;
}
if (i >= 6 && y < 530) {
this.guide.y = y - 330;
}
for (let i = 0; i < this.data.wordArr.length; i++) {
let x = 9;
if (x < 6) {
this.word_bg_groups[i].y = -250 + 140 * i + (y - 25);
} else {
//-250+140*i-y-1000
this.word_bg_groups[i].y = -250 + 140 * i - y + 120;
}
if (this.word_bg_groups[i].y < -300) {
this.word_bg_groups[i].visible = false;
}
if (this.word_bg_groups[i].y >= -300 && this.word_bg_groups[i].y < 200) {
this.word_bg_groups[i].visible = true;
}
if (this.word_bg_groups[i].y > 200) {
this.word_bg_groups[i].visible = false;
}
}
return;
}
}
mapUp(event) {
}
......
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