Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
ym-23
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
template admin
ym-23
Commits
3aa8995c
Commit
3aa8995c
authored
Jun 09, 2020
by
Seaborn Lee
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: 调整数据结构
parent
9b57a4ec
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
172 deletions
+67
-172
form.component.html
src/app/form/form.component.html
+11
-11
form.component.ts
src/app/form/form.component.ts
+17
-20
play.component.ts
src/app/play/play.component.ts
+39
-141
No files found.
src/app/form/form.component.html
View file @
3aa8995c
...
@@ -37,29 +37,29 @@
...
@@ -37,29 +37,29 @@
<h5
style=
"width: 100%; line-height: 40px; text-align: center;"
>
句组-{{i+1}}
</h5>
<h5
style=
"width: 100%; line-height: 40px; text-align: center;"
>
句组-{{i+1}}
</h5>
<div
nz-form
>
<div
nz-form
>
<nz-form-item>
<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=
"Y"
>
有
</label>
<label
nz-radio
nzValue=
"N"
>
无
</label>
<label
nz-radio
nzValue=
"N"
>
无
</label>
</nz-radio-group>
</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>
<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
()"
>
<input
style=
"width: 20%; margin-bottom: 0.5vw"
type=
"text"
nz-input
placeholder=
""
[(
ngModel
)]="
it
.
xuhao
"
(
blur
)="
saveItem
()"
>
</div>
</div>
<div
*
ngIf=
"it.
left.
num== 'N'"
style=
"width: 80%"
>
<div
*
ngIf=
"it.num== 'N'"
style=
"width: 80%"
>
<br>
<br>
</div>
</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
"
>
<nz-form-control
[
nzSpan
]="
20
"
>
<input
type=
"text"
nz-input
placeholder=
"请录入句子"
[(
ngModel
)]="
it
.
left
.
word_val
"
<input
type=
"text"
nz-input
placeholder=
"请录入句子"
[(
ngModel
)]="
it
.
word_val
"
(
blur
)="
saveWordItem
(
i
,'
left
'
)"
>
(
blur
)="
saveWordItem
(
i
)"
>
</nz-form-control>
</nz-form-control>
</nz-form-item>
</nz-form-item>
<div
style=
"width: 100%;"
>
<div
style=
"width: 100%;"
>
<app-upload-image-with-preview
id=
"it.
left.
word_pic_url"
<app-upload-image-with-preview
id=
"it.word_pic_url"
[
picUrl
]="
it
.
left
.
word_pic_url
"
[
picUrl
]="
it
.
word_pic_url
"
(
imageUploaded
)="
onImageUploadSuccessByItem
($
event
,
it
.
left
,'
word_pic_url
')"
(
imageUploaded
)="
onImageUploadSuccessByItem
($
event
,
it
,'
word_pic_url
')"
></app-upload-image-with-preview>
></app-upload-image-with-preview>
</div>
</div>
<nz-form-item>
<nz-form-item>
...
@@ -72,7 +72,7 @@
...
@@ -72,7 +72,7 @@
</nz-form-item>
</nz-form-item>
<nz-form-item>
<nz-form-item>
<div
nz-col
[
nzSpan
]="
15
"
nzOffset=
"2"
>
<div
nz-col
[
nzSpan
]="
15
"
nzOffset=
"2"
>
<nz-table
[
nzData
]="
it
.
le
ft
.
le
tters
"
[
nzHideOnSinglePage
]="
true
"
[
nzBordered
]="
true
"
>
<nz-table
[
nzData
]="
it
.
letters
"
[
nzHideOnSinglePage
]="
true
"
[
nzBordered
]="
true
"
>
<thead>
<thead>
<tr>
<tr>
<th>
单词
</th>
<th>
单词
</th>
...
@@ -81,7 +81,7 @@
...
@@ -81,7 +81,7 @@
</tr>
</tr>
</thead>
</thead>
<tbody>
<tbody>
<tr
*
ngFor=
"let data of it.le
ft.le
tters;let j = index"
>
<tr
*
ngFor=
"let data of it.letters;let j = index"
>
<td>
{{data.letter_val}}
</td>
<td>
{{data.letter_val}}
</td>
<td>
<td>
...
...
src/app/form/form.component.ts
View file @
3aa8995c
...
@@ -184,14 +184,11 @@ num
...
@@ -184,14 +184,11 @@ num
wordItemData
()
{
wordItemData
()
{
return
{
return
{
left
:
{
word_val
:
''
,
word_val
:
''
,
letters
:
[],
letters
:
[],
word_pic_url
:
''
,
word_pic_url
:
''
,
num
:
'
Y
'
,
num
:
'
Y
'
,
},
audio_url
:
''
,
audio_url
:
''
,
};
};
}
}
...
@@ -203,12 +200,12 @@ num
...
@@ -203,12 +200,12 @@ num
// };
// };
// }
// }
saveWordItem
(
index
,
type
)
{
saveWordItem
(
index
)
{
let
val
=
this
.
wordArr
[
index
]
[
type
]
.
word_val
.
split
(
"
"
);
let
val
=
this
.
wordArr
[
index
].
word_val
.
split
(
"
"
);
this
.
wordArr
[
index
]
[
type
]
.
letters
=
[];
this
.
wordArr
[
index
].
letters
=
[];
for
(
let
i
=
0
;
i
<
val
.
length
;
i
++
){
for
(
let
i
=
0
;
i
<
val
.
length
;
i
++
){
if
(
val
[
i
]){
if
(
val
[
i
]){
this
.
wordArr
[
index
]
[
type
]
.
letters
.
push
({
this
.
wordArr
[
index
].
letters
.
push
({
letter_val
:
val
[
i
],
letter_val
:
val
[
i
],
letter_color
:
'
C04
'
,
letter_color
:
'
C04
'
,
letter_font
:
'
BRLNSDB
'
,
letter_font
:
'
BRLNSDB
'
,
...
...
src/app/play/play.component.ts
View file @
3aa8995c
...
@@ -450,13 +450,13 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -450,13 +450,13 @@ export class PlayComponent implements OnInit, OnDestroy {
this
.
data
.
title
.
t_val1
=
'
C
'
;
this
.
data
.
title
.
t_val1
=
'
C
'
;
this
.
data
.
title
.
t_val2
=
'
lisiten,make a sentence.Then chant.
'
;
this
.
data
.
title
.
t_val2
=
'
lisiten,make a sentence.Then chant.
'
;
this
.
data
.
wordArr
[
0
].
left
.
num
=
"
Y
"
;
this
.
data
.
wordArr
[
0
].
num
=
"
Y
"
;
this
.
data
.
wordArr
[
0
].
left
.
word_pic_url
=
"
assets/play/bg.png
"
;
this
.
data
.
wordArr
[
0
].
word_pic_url
=
"
assets/play/bg.png
"
;
this
.
data
.
wordArr
[
0
].
le
ft
.
le
tters
[
0
].
letter_val
=
'
Sam
'
;
this
.
data
.
wordArr
[
0
].
letters
[
0
].
letter_val
=
'
Sam
'
;
this
.
data
.
wordArr
[
0
].
le
ft
.
le
tters
[
1
].
letter_val
=
'
has
'
;
this
.
data
.
wordArr
[
0
].
letters
[
1
].
letter_val
=
'
has
'
;
this
.
data
.
wordArr
[
0
].
le
ft
.
le
tters
[
2
].
letter_val
=
'
a
'
;
this
.
data
.
wordArr
[
0
].
letters
[
2
].
letter_val
=
'
a
'
;
this
.
data
.
wordArr
[
0
].
le
ft
.
le
tters
[
3
].
letter_val
=
'
cap
'
;
this
.
data
.
wordArr
[
0
].
letters
[
3
].
letter_val
=
'
cap
'
;
this
.
data
.
wordArr
[
0
].
le
ft
.
le
tters
[
3
].
letter_color
=
'
BRLNSDB
'
;
this
.
data
.
wordArr
[
0
].
letters
[
3
].
letter_color
=
'
BRLNSDB
'
;
}
}
...
@@ -465,7 +465,7 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -465,7 +465,7 @@ export class PlayComponent implements OnInit, OnDestroy {
defaultWordArr
()
{
defaultWordArr
()
{
return
[
return
[
{
{
left
:
{
xuhao
:
"
1
"
,
num
:
"
Y
"
,
num
:
"
Y
"
,
word_val
:
'
Sam has a cap
'
,
word_val
:
'
Sam has a cap
'
,
word_audio_url
:
''
,
word_audio_url
:
''
,
...
@@ -475,10 +475,8 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -475,10 +475,8 @@ export class PlayComponent implements OnInit, OnDestroy {
{
letter_val
:
"
a
"
,
letter_color
:
'
C02
'
,
is_
:
'
0
'
},
{
letter_val
:
"
a
"
,
letter_color
:
'
C02
'
,
is_
:
'
0
'
},
{
letter_val
:
"
cap
"
,
letter_color
:
'
C04
'
,
is_
:
'
0
'
}
{
letter_val
:
"
cap
"
,
letter_color
:
'
C04
'
,
is_
:
'
0
'
}
]
]
}
},
},
{
{
left
:
{
num
:
"
N
"
,
num
:
"
N
"
,
word_val
:
'
He likes jam
'
,
word_val
:
'
He likes jam
'
,
word_audio_url
:
''
,
word_audio_url
:
''
,
...
@@ -487,10 +485,9 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -487,10 +485,9 @@ export class PlayComponent implements OnInit, OnDestroy {
{
letter_val
:
"
likes
"
,
letter_color
:
'
C02
'
,
is_
:
'
0
'
},
{
letter_val
:
"
likes
"
,
letter_color
:
'
C02
'
,
is_
:
'
0
'
},
{
letter_val
:
"
jam
"
,
letter_color
:
'
C04
'
,
is_
:
'
0
'
}
{
letter_val
:
"
jam
"
,
letter_color
:
'
C04
'
,
is_
:
'
0
'
}
]
]
}
},
},
{
{
left
:
{
xuhao
:
"
2
"
,
num
:
"
Y
"
,
num
:
"
Y
"
,
word_val
:
'
Zap has a map
'
,
word_val
:
'
Zap has a map
'
,
word_audio_url
:
''
,
word_audio_url
:
''
,
...
@@ -501,7 +498,6 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -501,7 +498,6 @@ export class PlayComponent implements OnInit, OnDestroy {
{
letter_val
:
"
map
"
,
letter_color
:
'
C04
'
,
is_
:
'
0
'
}
{
letter_val
:
"
map
"
,
letter_color
:
'
C04
'
,
is_
:
'
0
'
}
]
]
}
}
}
];
];
}
}
...
@@ -526,7 +522,7 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -526,7 +522,7 @@ export class PlayComponent implements OnInit, OnDestroy {
};
};
for
(
let
i
=
0
;
i
<
this
.
data
.
wordArr
.
length
;
i
++
)
{
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 {
...
@@ -606,34 +602,24 @@ export class PlayComponent implements OnInit, OnDestroy {
}
}
initmusic
()
{
initmusic
()
{
for
(
let
i
=
0
;
i
<
this
.
data
.
wordArr
.
length
+
2
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
data
.
wordArr
.
length
+
2
;
i
++
)
{
let
musicArr
=
[];
let
musicArr
=
[];
if
(
i
==
0
)
{
if
(
i
==
0
)
{
musicArr
[
0
]
=
this
.
data
.
title
.
audio_url
;
musicArr
[
0
]
=
this
.
data
.
title
.
audio_url
;
}
else
if
(
i
==
1
)
{
}
else
if
(
i
==
1
)
{
musicArr
[
1
]
=
this
.
data
.
title
.
allmusic_audio
;
musicArr
[
1
]
=
this
.
data
.
title
.
allmusic_audio
;
}
else
{
}
else
{
musicArr
[
i
]
=
this
.
data
.
wordArr
[
i
-
2
].
audio_url
;
musicArr
[
i
]
=
this
.
data
.
wordArr
[
i
-
2
].
audio_url
;
}
}
this
.
musicArr
.
push
(
musicArr
[
i
]);
this
.
musicArr
.
push
(
musicArr
[
i
]);
}
}
}
}
initPic
()
{
initPic
()
{
for
(
let
i
=
0
;
i
<
this
.
data
.
wordArr
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
data
.
wordArr
.
length
;
i
++
)
{
let
pic
=
new
MySprite
();
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
);
this
.
word_bg_groups
[
i
].
addChild
(
pic
);
pic
.
visible
=
true
;
pic
.
visible
=
true
;
...
@@ -701,7 +687,7 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -701,7 +687,7 @@ export class PlayComponent implements OnInit, OnDestroy {
//字母
//字母
let
letter
=
letters
[
i
];
let
letter
=
letters
[
i
];
if
(
i
==
0
)
{
if
(
i
==
0
)
{
if
(
this
.
data
.
wordArr
[
index
].
left
.
num
==
'
Y
'
)
{
if
(
this
.
data
.
wordArr
[
index
].
num
==
'
Y
'
)
{
// 加一个序号
// 加一个序号
let
letter_num
=
new
Label
();
let
letter_num
=
new
Label
();
letter_num
.
text
=
this
.
data
.
wordArr
[
index
].
xuhao
+
"
.
"
;
letter_num
.
text
=
this
.
data
.
wordArr
[
index
].
xuhao
+
"
.
"
;
...
@@ -804,7 +790,7 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -804,7 +790,7 @@ export class PlayComponent implements OnInit, OnDestroy {
let
wordNum
=
this
.
data
.
wordArr
.
length
;
let
wordNum
=
this
.
data
.
wordArr
.
length
;
// console.log('line: ', line) ;
// console.log('line: ', line) ;
for
(
let
i
=
0
;
i
<
wordNum
;
i
++
)
{
for
(
let
i
=
0
;
i
<
wordNum
;
i
++
)
{
let
letters
=
this
.
data
.
wordArr
[
i
].
le
ft
.
le
tters
;
let
letters
=
this
.
data
.
wordArr
[
i
].
letters
;
this
.
word_bg_groups
[
i
]
=
this
.
makeSentence
(
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
].
y
=
-
240
+
140
*
i
;
this
.
word_bg_groups
[
i
].
x
=
-
540
;
this
.
word_bg_groups
[
i
].
x
=
-
540
;
...
@@ -1075,97 +1061,9 @@ export class PlayComponent implements OnInit, OnDestroy {
...
@@ -1075,97 +1061,9 @@ export class PlayComponent implements OnInit, OnDestroy {
}
}
mapMove
(
event
)
{
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
)
{
mapUp
(
event
)
{
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment