Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
yangchao
/
brains-h5
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 5681cda8
authored
Feb 16, 2020
by
yeran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
1 parent
42227668
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
607 additions
and
215 deletions
src/views/fastReading/answerQuestion.vue
src/views/fastReading/index.vue
src/views/fastReading/readArticle.vue
src/views/fastReading/readResult.vue
src/views/forward/forwardAnswer.vue
src/views/forward/forwardResult.vue
src/views/forward/index.vue
src/views/home/index.vue
src/views/reserve/index.vue
src/views/zhiExercise/zhiAnswer.vue
src/views/zhiExercise/zhiDrill.vue
src/views/fastReading/answerQuestion.vue
View file @
5681cda
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<div
class=
"question-item"
v-for=
"(item,index) in questionList"
v-if=
"(index+1) == subject_number"
>
<div
class=
"question-item"
v-for=
"(item,index) in questionList"
v-if=
"(index+1) == subject_number"
>
<div
class=
"question"
>
{{
index
+
1
}}
、
{{
item
.
question
}}
</div>
<div
class=
"question"
>
{{
index
+
1
}}
、
{{
item
.
question
}}
</div>
<div
v-for=
"(i) in item.answer"
class=
"answer"
>
<div
v-for=
"(i) in item.answer"
class=
"answer"
>
<input
v-model=
"myAnswer"
type=
"radio"
:value=
"i"
:name=
"i"
/>
{{
i
}}
<input
v-model=
"myAnswer"
type=
"radio"
:value=
"i"
:name=
"i"
/>
{{
i
}}
</div>
</div>
</div>
</div>
...
@@ -28,6 +28,9 @@
...
@@ -28,6 +28,9 @@
<
script
>
<
script
>
import
{
article
}
from
"../../utils/article"
;
import
{
article
}
from
"../../utils/article"
;
import
StoreUtil
from
"../../store/stateStore"
;
import
BaseConstant
from
"../../store/constants/baseConstant"
;
export
default
{
export
default
{
name
:
"answerQuestion"
,
name
:
"answerQuestion"
,
data
()
{
data
()
{
...
@@ -41,50 +44,70 @@
...
@@ -41,50 +44,70 @@
},
},
methods
:
{
methods
:
{
pre
()
{
pre
()
{
if
(
this
.
subject_number
>
1
)
{
if
(
this
.
subject_number
>
1
)
{
this
.
myAnswer
=
this
.
questionList
[
this
.
subject_number
-
2
].
myAnswer
;
this
.
myAnswer
=
this
.
questionList
[
this
.
subject_number
-
2
].
myAnswer
;
this
.
subject_number
=
this
.
subject_number
-
1
;
this
.
subject_number
=
this
.
subject_number
-
1
;
}
}
},
},
next
()
{
next
()
{
if
(
this
.
subject_number
<
this
.
questionList
.
length
)
{
if
(
this
.
subject_number
<
this
.
questionList
.
length
)
{
this
.
questionList
[
this
.
subject_number
-
1
].
myAnswer
=
this
.
myAnswer
?
this
.
myAnswer
:
'未作答'
;
this
.
questionList
[
this
.
subject_number
-
1
].
myAnswer
=
this
.
myAnswer
?
this
.
myAnswer
:
'未作答'
;
this
.
myAnswer
=
this
.
questionList
[
this
.
subject_number
].
myAnswer
;
this
.
myAnswer
=
this
.
questionList
[
this
.
subject_number
].
myAnswer
;
this
.
subject_number
=
this
.
subject_number
+
1
;
this
.
subject_number
=
this
.
subject_number
+
1
;
}
}
},
},
submit
()
{
submit
()
{
this
.
questionList
[
this
.
subject_number
-
1
].
myAnswer
=
this
.
myAnswer
;
this
.
questionList
[
this
.
subject_number
-
1
].
myAnswer
=
this
.
myAnswer
;
this
.
$store
.
state
.
articleAnswer
=
this
.
questionList
;
let
answer_time_end
=
new
Date
().
getTime
();
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
data
:
{
answer
:
this
.
questionList
,
},
result
:
{
answer_time_end
:
answer_time_end
,
}
});
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/fastReading/readResult'
,
path
:
'/fastReading/readResult'
,
query
:
{
query
:
{}
time
:
this
.
count_time
}
})
})
},
},
countDown
()
{
countDown
()
{
this
.
timer
=
setInterval
(()
=>
{
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count_time
>
0
)
{
if
(
this
.
count_time
>
0
)
{
this
.
count_time
=
this
.
count_time
-
1
;
this
.
count_time
=
this
.
count_time
-
1
;
}
else
{
}
else
{
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
}
}
},
1000
)
},
1000
)
},
},
},
},
mounted
()
{
mounted
()
{
this
.
count_time
=
this
.
$route
.
query
.
time
;
this
.
article_index
=
JSON
.
parse
(
JSON
.
stringify
(
StoreUtil
.
getState
().
train
.
currentCase
.
data
.
article_index
))
;
this
.
countDown
();
article
[
0
].
questionList
.
forEach
((
v
,
i
)
=>
{
article
[
0
].
questionList
.
forEach
((
v
,
i
)
=>
{
this
.
questionList
.
push
({
this
.
questionList
.
push
({
question
:
v
.
question
,
question
:
v
.
question
,
answer
:
v
.
answer
,
answer
:
v
.
answer
,
myAnswer
:
'未作答'
,
myAnswer
:
'未作答'
,
correctAnswer
:
v
.
correctAnswer
correctAnswer
:
v
.
correctAnswer
,
check
:
false
,
})
})
})
});
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
result
:
{
answer_time_start
:
new
Date
().
getTime
()
},
result_detail
:
{
q
:
[]
}
});
this
.
count_time
=
this
.
$route
.
query
.
time
;
this
.
countDown
();
}
}
}
}
</
script
>
</
script
>
...
@@ -126,13 +149,16 @@
...
@@ -126,13 +149,16 @@
.question-list
{
.question-list
{
margin-top
:
30px
;
margin-top
:
30px
;
}
}
.question-item
{
.question-item
{
}
}
.question
{
.question
{
color
:
#333
;
color
:
#333
;
font-size
:
30px
;
font-size
:
30px
;
}
}
.answer
{
.answer
{
text-indent
:
40px
;
text-indent
:
40px
;
font-size
:
28px
;
font-size
:
28px
;
...
@@ -142,6 +168,7 @@
...
@@ -142,6 +168,7 @@
align-items
:
center
;
align-items
:
center
;
padding-left
:
40px
;
padding-left
:
40px
;
}
}
.operation
{
.operation
{
width
:
400px
;
width
:
400px
;
position
:
fixed
;
position
:
fixed
;
...
@@ -175,12 +202,14 @@
...
@@ -175,12 +202,14 @@
border-top-right-radius
:
40px
;
border-top-right-radius
:
40px
;
background
:
#409eff
;
background
:
#409eff
;
}
}
.operation
.item-3
{
.operation
.item-3
{
border-bottom-left-radius
:
40px
;
border-bottom-left-radius
:
40px
;
border-top-left-radius
:
40px
;
border-top-left-radius
:
40px
;
color
:
#999
;
color
:
#999
;
border
:
2px
solid
#999
;
border
:
2px
solid
#999
;
}
}
.operation
.item-4
{
.operation
.item-4
{
border-bottom-right-radius
:
40px
;
border-bottom-right-radius
:
40px
;
border-top-right-radius
:
40px
;
border-top-right-radius
:
40px
;
...
...
src/views/fastReading/index.vue
View file @
5681cda
...
@@ -16,13 +16,13 @@
...
@@ -16,13 +16,13 @@
<div>
比赛规则
</div>
<div>
比赛规则
</div>
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
1、选手在“
国际
脑力运动”线上平台报名参加脑力世界杯并选中本项比赛。
1、选手在“
摩天轮
脑力运动”线上平台报名参加脑力世界杯并选中本项比赛。
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
1. Athlete register Intellectual World Cup on the "International Intellectual Sports" online platform and select this discipline.
1. Athlete register Intellectual World Cup on the "International Intellectual Sports" online platform and select this discipline.
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
2、所有选手在“
国际
脑力运动”线上平台上点击进入本项目比赛倒计时页面,倒计时归零后立即开始比赛。
2、所有选手在“
摩天轮
脑力运动”线上平台上点击进入本项目比赛倒计时页面,倒计时归零后立即开始比赛。
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
2. All athletes clicked into the countdown page on the "International Intellectual Sports"
2. All athletes clicked into the countdown page on the "International Intellectual Sports"
...
@@ -87,20 +87,38 @@
...
@@ -87,20 +87,38 @@
<div
class=
"explain"
>
<div
class=
"explain"
>
3. The highest round score is the final score.
3. The highest round score is the final score.
</div>
</div>
<div
class=
"m-selector"
>
选择模式:
<div
v-for=
"(item, index) in caseConfig"
:key=
"index"
:index=
"index"
:item=
"item"
>
<div
class=
"item"
:class=
"
{active: (level === index)}" @click="changLevel(index)">
{{
item
.
level_name
}}
</div>
</div>
</div>
<div
class=
"start"
@
click=
"start"
>
开始训练
</div>
<div
class=
"start"
@
click=
"start"
>
开始训练
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
BaseCasePage
from
"../../framework/core/baseCasePage"
;
import
BaseCasePage
from
"../../framework/core/baseCasePage"
;
import
CaseUtil
from
"../../framework/service/base/caseUtil"
;
export
default
new
BaseCasePage
({
export
default
new
BaseCasePage
({
name
:
"index"
,
name
:
"index"
,
data
()
{
return
{
level
:
0
,
}
},
methods
:
{
methods
:
{
changLevel
(
level
)
{
if
(
level
!==
this
.
level
)
{
this
.
level
=
level
;
}
},
start
()
{
start
()
{
this
.
$router
.
push
({
CaseUtil
.
goToTrain
(
'/fastReading/readArticle'
,
this
);
path
:
'/fastReading/readArticle'
})
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -111,7 +129,7 @@
...
@@ -111,7 +129,7 @@
<
style
scoped
>
<
style
scoped
>
.content
{
.content
{
padding
:
30px
24px
1
20
px
;
padding
:
30px
24px
1
56
px
;
}
}
.title
{
.title
{
display
:
flex
;
display
:
flex
;
...
...
src/views/fastReading/readArticle.vue
View file @
5681cda
<
template
>
<
template
>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"title"
>
第1轮
<span>
{{
count_time
}}
s
</span></div>
<div
class=
"title"
>
<div
class=
"article"
v-html=
"content"
></div>
<div
class=
"circle"
>
第
{{
article_index
+
1
}}
轮
</div>
<div
class=
"limit_time"
>
{{
count_time
}}
s
</div>
</div>
<div
v-if=
"articles && articles.length"
class=
"article"
v-html=
"articles[0].content"
></div>
<div
class=
"startAnswer"
@
click=
"start"
>
阅读完成
</div>
<div
class=
"startAnswer"
@
click=
"start"
>
阅读完成
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
article
}
from
"../../utils/article"
;
import
BaseTrainPage
from
"../../framework/core/baseTrainPage"
;
import
{
getArticleDetails
}
from
"../../api/article"
;
import
StoreUtil
from
"../../store/stateStore"
;
import
BaseConstant
from
"../../store/constants/baseConstant"
;
export
default
{
export
default
new
BaseTrainPage
(
{
name
:
"readArticle"
,
name
:
"readArticle"
,
data
()
{
data
()
{
return
{
return
{
content
:
article
[
0
].
text
,
article_index
:
0
,
count_time
:
900
,
articles
:
[],
count_time
:
0
,
timer
:
''
timer
:
''
}
}
},
},
methods
:
{
methods
:
{
start
()
{
start
()
{
clearInterval
(
this
.
timer
);
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
data
:{
articles
:
this
.
articles
,
article_index
:
this
.
article_index
,
questions
:
[],
},
result
:
{
learn_time_end
:
new
Date
().
getTime
()
}
});
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/fastReading/answerQuestion'
,
path
:
'/fastReading/answerQuestion'
,
query
:
{
query
:
{
level
:
this
.
level
,
id
:
this
.
caseAlias
,
model_id
:
this
.
modelAlias
,
time
:
this
.
count_time
time
:
this
.
count_time
}
}
})
})
},
},
countDown
()
{
countDown
()
{
this
.
timer
=
setInterval
(()
=>
{
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count_time
>
0
)
{
if
(
this
.
count_time
>
0
)
{
this
.
count_time
=
this
.
count_time
-
1
;
this
.
count_time
=
this
.
count_time
-
1
;
}
else
{
}
else
{
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
}
}
},
1000
)
},
1000
)
},
init
()
{
getArticleDetails
({
ids
:
[
this
.
levelConfig
.
article_ids
[
0
]]
}).
then
((
articles
)
=>
{
this
.
articles
=
[];
if
(
articles
&&
articles
.
data
)
{
this
.
articles
.
push
(...
articles
.
data
);
this
.
count_time
=
this
.
levelConfig
.
limit_remember_time
;
this
.
countDown
();
// 获取第一篇文章对应的问题
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
result
:
{
learn_time_start
:
new
Date
().
getTime
()
}
});
}
else
{
this
.
$message
({
type
:
'error'
,
content
:
'文章不存在!'
});
}
})
},
},
},
},
mounted
()
{
mounted
()
{
this
.
countDown
()
this
.
init
()
}
}
}
}
)
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.content
{
.content
{
padding
:
30px
24px
;
padding
:
30px
24px
;
}
}
.title
{
.title
{
display
:
flex
;
align-items
:
center
;
}
.circle
{
font-size
:
30px
;
font-size
:
30px
;
color
:
#333
;
color
:
#333
;
}
}
.limit_time
{
width
:
100px
;
height
:
60px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
color
:
#017af7
;
font-size
:
28px
;
margin-left
:
auto
;
}
.title
span
{
.title
span
{
color
:
#409eff
;
color
:
#409eff
;
margin-left
:
20px
;
margin-left
:
20px
;
}
}
.article
{
.article
{
margin-top
:
30px
;
margin-top
:
30px
;
margin-bottom
:
24px
;
}
}
</
style
>
</
style
>
src/views/fastReading/readResult.vue
View file @
5681cda
<
template
>
<
template
>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"title"
>
正向速算
答题记录
</div>
<div
class=
"title"
>
阅读理解
答题记录
</div>
<div
class=
"data-list"
>
<div
class=
"data-list"
>
<div
class=
"data-item"
style=
"width: 1000%"
>
正向速算:
<span>
得分
{{
score
}}
</span></div>
<div
class=
"data-item"
style=
"width: 1000%"
>
阅读理解:
<span>
得分
{{
result
.
score
}}
</span></div>
</div>
</div>
<div
class=
"data-list"
>
<div
class=
"data-list"
>
<div
class=
"data-item"
>
答题数量:
<span>
{{
number
}}
</span></div>
<div
class=
"data-item"
>
答题数量:
<span>
{{
result
.
question_numb
}}
</span></div>
<div
class=
"data-item"
>
正确数量:
<span>
{{
correctNumber
}}
</span></div>
<div
class=
"data-item"
>
正确数量:
<span>
{{
result
.
right_numb
}}
</span></div>
<div
class=
"data-item"
>
答题用时:
<span>
{{
900
-
residue_time
}}
s
</span></div>
<div
class=
"data-item"
>
答题用时:
<span>
{{
use_time_desc
}}
</span></div>
<div
class=
"data-item"
>
剩余时间:
<span>
{{
res
idue_time
}}
s
</span></div>
<div
class=
"data-item"
>
剩余时间:
<span>
{{
res
ult
.
answer_time_left
}}
s
</span></div>
<div
class=
"data-item"
>
正确率:
<span>
{{
percentag
e
}}
%
</span></div>
<div
class=
"data-item"
>
正确率:
<span>
{{
result
.
right_rat
e
}}
%
</span></div>
</div>
</div>
<div
class=
"answer"
>
答案对比
</div>
<div
class=
"answer"
>
答案对比
</div>
<div
class=
"answer-list"
>
<div
class=
"answer-list"
>
<div
class=
"answer-item"
v-for=
"(item,index) in answerList"
>
<div
class=
"answer-item"
v-for=
"(item,index) in answerList"
>
<div
class=
"subject"
>
{{
index
+
1
}}
、
{{
item
.
question
}}
</div>
<div
class=
"subject"
>
{{
index
+
1
}}
、
{{
item
.
question
}}
</div>
<div
class=
"subject"
style=
"text-indent: 20px"
>
你的答案:
<span>
{{
item
.
myAnswer
}}
</span></div>
<div
v-if=
"item.check"
class=
"subject subject-success"
style=
"text-indent: 20px"
>
你的答案:
{{
item
.
myAnswer
}}
</div>
<div
v-else
class=
"subject subject-error"
style=
"text-indent: 20px"
>
你的答案:
{{
item
.
myAnswer
}}
</div>
<div
class=
"subject"
style=
"text-indent: 20px"
>
正确答案:
{{
item
.
correctAnswer
}}
</div>
<div
class=
"subject"
style=
"text-indent: 20px"
>
正确答案:
{{
item
.
correctAnswer
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"operation"
>
<div
class=
"operation"
>
<div
class=
"item item-1"
>
再来一局
</div>
<div
class=
"item item-1"
@
click=
"again()"
>
再来一局
</div>
<div
class=
"item item-2"
@
click=
"goback()"
>
返回列表
</div>
<div
class=
"item item-2"
@
click=
"goback()"
>
返回列表
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
StoreUtil
from
"../../store/stateStore"
;
import
BaseConstant
from
"../../store/constants/baseConstant"
;
import
{
secSimpleText
}
from
"../../framework/util/func"
;
export
default
{
export
default
{
name
:
"readResult"
,
name
:
"readResult"
,
data
()
{
data
()
{
return
{
return
{
score
:
0
,
//分数
number
:
'100'
,
//答题数量
correctNumber
:
0
,
//正确数量
percentage
:
0
,
//正确率
answerList
:
[],
answerList
:
[],
residue_time
:
''
,
//剩余时间
residue_time
:
''
,
//剩余时间
use_time_desc
:
''
,
result
:
{
score
:
0
,
question_numb
:
0
,
right_numb
:
0
,
right_rate
:
0
,
learn_time
:
0
,
learn_left_time
:
0
,
answer_time
:
0
,
answer_time_left
:
0
,
use_time
:
0
},
result_detail
:
{
question
:
[],
answer
:
[]
}
}
}
},
},
methods
:
{
methods
:
{
goback
()
{
goback
()
{
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_CASE_INFO_NOW_CLEAN
);
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/'
path
:
'/'
})
})
},
again
()
{
let
url
=
'/fastReading/index'
;
let
query
=
{
id
:
StoreUtil
.
getState
().
train
.
currentCase
.
case_id
,
model_id
:
StoreUtil
.
getState
().
train
.
currentCase
.
model_id
};
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_CASE_INFO_NOW_CLEAN
);
this
.
$router
.
push
({
path
:
url
,
query
})
}
}
},
},
created
()
{
mounted
()
{
this
.
residue_time
=
this
.
$route
.
query
.
time
;
this
.
answerList
=
this
.
$store
.
state
.
articleAnswer
;
let
data
=
StoreUtil
.
getState
().
train
.
currentCase
.
data
;
this
.
number
=
this
.
answerList
.
length
;
let
result
=
StoreUtil
.
getState
().
train
.
currentCase
.
result
;
this
.
answerList
.
forEach
(
v
=>
{
let
levelConfig
=
StoreUtil
.
getState
().
train
.
currentCase
.
level_config
;
if
(
v
.
myAnswer
==
v
.
correctAnswer
)
{
this
.
answerList
=
data
.
answer
;
this
.
correctNumber
=
this
.
correctNumber
+
1
;
this
.
result
.
question_numb
=
this
.
answerList
.
length
;
this
.
result
.
answer_time
=
result
.
answer_time_end
-
result
.
learn_time_start
;
this
.
result
.
answer_time_left
=
levelConfig
.
limit_remember_time
-
this
.
result
.
answer_time
/
1000
;
this
.
use_time_desc
=
secSimpleText
(
this
.
result
.
answer_time
);
for
(
let
i
=
0
;
i
<
this
.
answerList
.
length
;
i
++
)
{
if
((
''
+
this
.
answerList
[
i
].
correctAnswer
)
===
(
''
+
this
.
answerList
[
i
].
myAnswer
))
{
this
.
result
.
right_numb
+=
1
;
this
.
answerList
[
i
].
check
=
true
;
}
}
})
}
this
.
score
=
this
.
correctNumber
*
19
;
this
.
result
.
right_rate
=
(
this
.
result
.
right_numb
/
this
.
result
.
question_numb
*
100
).
toFixed
(
2
);
this
.
percentage
=
(
this
.
correctNumber
/
this
.
number
*
100
).
toFixed
(
2
);
this
.
result
.
score
=
this
.
result
.
right_numb
*
19
;
this
.
result_detail
.
question
=
[
{
q
:
this
.
answerList
,
a
:
[]
}
];
this
.
result_detail
.
answer
=
[];
console
.
log
(
this
.
result
,
this
.
result_detail
);
}
}
}
}
</
script
>
</
script
>
...
@@ -115,10 +166,17 @@
...
@@ -115,10 +166,17 @@
.answer-item
.subject
span
{
.answer-item
.subject
span
{
color
:
red
;
color
:
red
;
}
}
.answer-item
.subject-error
{
color
:
red
;
}
.answer-item
.subject-success
{
color
:
blue
;
}
.operation
{
.operation
{
width
:
400px
;
width
:
400px
;
position
:
fixed
;
position
:
fixed
;
bottom
:
120
px
;
bottom
:
24
px
;
display
:
flex
;
display
:
flex
;
left
:
50%
;
left
:
50%
;
transform
:
translateX
(
-50%
);
transform
:
translateX
(
-50%
);
...
...
src/views/forward/forwardAnswer.vue
View file @
5681cda
<
template
>
<
template
>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"title"
>
<div
class=
"title"
>
<div
class=
"circle"
>
第
{{
circle
}}
轮
</div
>
<!--
<div
class=
"circle"
>
第
{{
circle
}}
轮
</div>
--
>
<div
class=
"blue"
>
第
{{
subject_number
}}
题
</div>
<div
class=
"blue"
>
第
{{
subject_number
}}
题
</div>
<div
class=
"blue"
>
{{
count_time
}}
s
</div>
<div
class=
"blue"
>
{{
count_time
}}
s
</div>
<div
class=
"submit-btn"
@
click=
"submit"
>
提交
</div>
<div
class=
"submit-btn"
@
click=
"submit"
>
提交
</div>
...
@@ -30,14 +30,19 @@
...
@@ -30,14 +30,19 @@
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
import
BaseTrainPage
from
"../../framework/core/baseTrainPage"
;
import
StoreUtil
from
"../../store/stateStore"
;
import
BaseConstant
from
"../../store/constants/baseConstant"
;
export
default
new
BaseTrainPage
({
name
:
"forwardAnswer"
,
name
:
"forwardAnswer"
,
data
()
{
data
()
{
return
{
return
{
circle
:
1
,
//第几轮
circle
:
1
,
//第几轮
max_question
:
0
,
subject_number
:
1
,
//第几题
subject_number
:
1
,
//第几题
count_time
:
54
0
,
//倒计时
count_time
:
0
,
//倒计时
type_time
:
18
0
,
type_time
:
0
,
subject
:
''
,
//题目
subject
:
''
,
//题目
myAnswer
:
''
,
//我的答案
myAnswer
:
''
,
//我的答案
correctAnswer
:
''
,
//正确答案
correctAnswer
:
''
,
//正确答案
...
@@ -49,45 +54,56 @@
...
@@ -49,45 +54,56 @@
},
},
methods
:
{
methods
:
{
countDown
()
{
countDown
()
{
this
.
timer
=
setInterval
(()
=>
{
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count_time
>
0
)
{
if
(
this
.
count_time
>
0
)
{
this
.
count_time
=
this
.
count_time
-
1
;
this
.
count_time
=
this
.
count_time
-
1
;
this
.
type_time
=
this
.
type_time
-
1
;
this
.
type_time
=
this
.
type_time
-
1
;
if
(
this
.
type_time
==
0
)
{
if
(
this
.
type_time
==
0
)
{
this
.
type_time
=
180
;
this
.
type_time
=
180
;
}
}
}
else
{
}
else
{
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
}
}
},
1000
)
},
1000
)
},
},
submit
()
{
submit
()
{
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
this
.
answerList
.
push
({
this
.
answerList
.
push
({
subject
:
this
.
subject
,
subject
:
this
.
subject
,
myAnswer
:
this
.
myAnswer
?
this
.
myAnswer
:
'未作答'
,
myAnswer
:
this
.
myAnswer
?
this
.
myAnswer
:
'未作答'
,
correctAnswer
:
this
.
correctAnswer
correctAnswer
:
this
.
correctAnswer
,
})
check
:
false
,
this
.
$store
.
state
.
forwardAnswer
=
this
.
answerList
;
});
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
data
:
{
answerList
:
this
.
answerList
},
result
:
{
answer_time_end
:
new
Date
().
getTime
()
}
});
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/forward/forwardResult'
,
path
:
'/forward/forwardResult'
,
query
:
{
query
:
{
time
:
this
.
count_time
level
:
this
.
level
,
id
:
this
.
caseAlias
,
model_id
:
this
.
modelAlias
}
}
})
})
},
},
deleteAnswer
()
{
deleteAnswer
()
{
this
.
myAnswer
=
this
.
myAnswer
.
substring
(
0
,
this
.
myAnswer
.
length
-
1
);
this
.
myAnswer
=
this
.
myAnswer
.
substring
(
0
,
this
.
myAnswer
.
length
-
1
);
},
},
input
(
val
)
{
input
(
val
)
{
this
.
myAnswer
=
this
.
myAnswer
+
String
(
val
);
this
.
myAnswer
=
this
.
myAnswer
+
String
(
val
);
},
},
randomNum
(
num
)
{
randomNum
(
num
)
{
if
(
num
==
1
)
{
if
(
num
==
1
)
{
return
Math
.
floor
(
Math
.
random
()
*
90
)
+
10
return
Math
.
floor
(
Math
.
random
()
*
90
)
+
10
}
else
if
(
num
==
2
)
{
}
else
if
(
num
==
2
)
{
return
Math
.
floor
(
Math
.
random
()
*
900
)
+
100
return
Math
.
floor
(
Math
.
random
()
*
900
)
+
100
}
else
if
(
num
==
3
)
{
}
else
if
(
num
==
3
)
{
return
Math
.
floor
(
Math
.
random
()
*
9000
)
+
1000
return
Math
.
floor
(
Math
.
random
()
*
9000
)
+
1000
}
}
...
@@ -96,92 +112,126 @@
...
@@ -96,92 +112,126 @@
createSubject
()
{
createSubject
()
{
this
.
subject
=
''
;
this
.
subject
=
''
;
this
.
correctAnswer
=
''
;
this
.
correctAnswer
=
''
;
if
(
this
.
type
=
1
)
{
if
(
this
.
type
=
1
)
{
let
data
=
[],
num
;
let
data
=
[],
num
;
if
(
this
.
grade
>=
1
&&
this
.
grade
<=
4
)
{
if
(
this
.
grade
>=
1
&&
this
.
grade
<=
4
)
{
num
=
1
;
num
=
1
;
for
(
let
i
=
0
;
i
<
this
.
grade
+
1
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
grade
+
1
;
i
++
)
{
data
.
push
(
this
.
randomNum
(
num
))
data
.
push
(
this
.
randomNum
(
num
))
}
}
}
else
if
(
this
.
grade
>=
5
&&
this
.
grade
<=
8
)
{
}
else
if
(
this
.
grade
>=
5
&&
this
.
grade
<=
8
)
{
num
=
2
;
num
=
2
;
for
(
let
i
=
0
;
i
<
this
.
grade
-
3
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
grade
-
3
;
i
++
)
{
data
.
push
(
this
.
randomNum
(
num
))
data
.
push
(
this
.
randomNum
(
num
))
}
}
}
else
if
(
this
.
grade
>=
9
&&
this
.
grade
<=
12
)
{
}
else
if
(
this
.
grade
>=
9
&&
this
.
grade
<=
12
)
{
num
=
3
;
num
=
3
;
for
(
let
i
=
0
;
i
<
this
.
grade
-
7
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
grade
-
7
;
i
++
)
{
data
.
push
(
this
.
randomNum
(
num
))
data
.
push
(
this
.
randomNum
(
num
))
}
}
}
}
data
.
forEach
(
v
=>
{
data
.
forEach
(
v
=>
{
this
.
correctAnswer
=
Number
(
this
.
correctAnswer
)
+
Number
(
v
);
this
.
correctAnswer
=
Number
(
this
.
correctAnswer
)
+
Number
(
v
);
this
.
subject
=
this
.
subject
?
this
.
subject
+
'+'
+
v
:
this
.
subject
+
v
;
this
.
subject
=
this
.
subject
?
this
.
subject
+
'+'
+
v
:
this
.
subject
+
v
;
})
})
;
this
.
subject
=
this
.
subject
+
'=?'
this
.
subject
=
this
.
subject
+
'=?'
}
}
},
},
//下一题
//下一题
next
()
{
next
()
{
if
(
this
.
subject_number
<=
3
)
{
if
(
this
.
max_question
>
0
&&
this
.
subject_number
>=
this
.
max_question
)
{
this
.
$message
({
type
:
'success'
,
content
:
'本批次题目数量已达上限,您可以提交做题结果!'
});
return
;
}
if
(
this
.
subject_number
<=
3
)
{
this
.
grade
=
1
;
this
.
grade
=
1
;
}
else
if
(
this
.
subject_number
>
3
&&
this
.
subject_number
<=
6
)
{
}
else
if
(
this
.
subject_number
>
3
&&
this
.
subject_number
<=
6
)
{
this
.
grade
=
2
;
this
.
grade
=
2
;
}
else
if
(
this
.
subject_number
>
6
&&
this
.
subject_number
<=
9
)
{
}
else
if
(
this
.
subject_number
>
6
&&
this
.
subject_number
<=
9
)
{
this
.
grade
=
3
;
this
.
grade
=
3
;
}
else
if
(
this
.
subject_number
>
9
&&
this
.
subject_number
<=
12
)
{
}
else
if
(
this
.
subject_number
>
9
&&
this
.
subject_number
<=
12
)
{
this
.
grade
=
4
;
this
.
grade
=
4
;
}
else
if
(
this
.
subject_number
>
12
&&
this
.
subject_number
<=
15
)
{
}
else
if
(
this
.
subject_number
>
12
&&
this
.
subject_number
<=
15
)
{
this
.
grade
=
5
;
this
.
grade
=
5
;
}
else
if
(
this
.
subject_number
>
15
&&
this
.
subject_number
<=
18
)
{
}
else
if
(
this
.
subject_number
>
15
&&
this
.
subject_number
<=
18
)
{
this
.
grade
=
6
;
this
.
grade
=
6
;
}
else
if
(
this
.
subject_number
>
18
&&
this
.
subject_number
<=
21
)
{
}
else
if
(
this
.
subject_number
>
18
&&
this
.
subject_number
<=
21
)
{
this
.
grade
=
7
;
this
.
grade
=
7
;
}
else
if
(
this
.
subject_number
>
21
&&
this
.
subject_number
<=
24
)
{
}
else
if
(
this
.
subject_number
>
21
&&
this
.
subject_number
<=
24
)
{
this
.
grade
=
8
;
this
.
grade
=
8
;
}
else
if
(
this
.
subject_number
>
21
&&
this
.
subject_number
<=
24
)
{
}
else
if
(
this
.
subject_number
>
21
&&
this
.
subject_number
<=
24
)
{
this
.
grade
=
9
;
this
.
grade
=
9
;
}
else
if
(
this
.
subject_number
>
24
&&
this
.
subject_number
<=
27
)
{
}
else
if
(
this
.
subject_number
>
24
&&
this
.
subject_number
<=
27
)
{
this
.
grade
=
10
;
this
.
grade
=
10
;
}
else
if
(
this
.
subject_number
>
27
&&
this
.
subject_number
<=
30
)
{
}
else
if
(
this
.
subject_number
>
27
&&
this
.
subject_number
<=
30
)
{
this
.
grade
=
11
;
this
.
grade
=
11
;
}
else
if
(
this
.
subject_number
>
30
)
{
}
else
if
(
this
.
subject_number
>
30
)
{
this
.
grade
=
12
;
this
.
grade
=
12
;
}
}
this
.
subject_number
++
;
this
.
subject_number
++
;
this
.
answerList
.
push
({
this
.
answerList
.
push
({
subject
:
this
.
subject
,
subject
:
this
.
subject
,
myAnswer
:
this
.
myAnswer
?
this
.
myAnswer
:
'未作答'
,
myAnswer
:
this
.
myAnswer
?
this
.
myAnswer
:
'未作答'
,
correctAnswer
:
this
.
correctAnswer
correctAnswer
:
this
.
correctAnswer
})
})
;
this
.
myAnswer
=
''
;
this
.
myAnswer
=
''
;
this
.
createSubject
();
this
.
createSubject
();
},
},
init
()
{
this
.
answerList
=
[];
this
.
max_question
=
this
.
levelConfig
.
quantity
;
this
.
count_time
=
this
.
levelConfig
.
limit_remember_time
;
this
.
type_time
=
this
.
levelConfig
.
limit_remember_time
;
this
.
countDown
();
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
result
:
{
answer_time_start
:
new
Date
().
getTime
()
}
});
this
.
createSubject
();
},
},
mounted
()
{
this
.
init
();
},
activated
()
{
console
.
log
(
'activated'
)
},
},
created
()
{
deactivated
()
{
this
.
createSubject
();
clearInterval
(
this
.
timer
);
this
.
countDown
();
console
.
log
(
'deactivated'
)
},
destroyed
()
{
clearInterval
(
this
.
timer
);
console
.
log
(
'destroyed'
)
}
}
}
}
)
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.content
{
.content
{
padding
:
30px
24px
;
padding
:
30px
24px
;
}
}
.title
{
.title
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.circle
{
.circle
{
font-size
:
30px
;
font-size
:
30px
;
color
:
#333
;
color
:
#333
;
}
}
.blue
{
.blue
{
font-size
:
30px
;
font-size
:
30px
;
color
:
#017af7
;
color
:
#017af7
;
margin-left
:
20px
;
margin-left
:
20px
;
}
}
.submit-btn
{
.submit-btn
{
width
:
100px
;
width
:
100px
;
height
:
60px
;
height
:
60px
;
...
@@ -194,14 +244,17 @@
...
@@ -194,14 +244,17 @@
border-radius
:
8px
;
border-radius
:
8px
;
margin-left
:
auto
;
margin-left
:
auto
;
}
}
.answer
{
.answer
{
padding
:
0
24px
;
padding
:
0
24px
;
margin-top
:
30px
;
margin-top
:
30px
;
}
}
.answer
.time
{
.answer
.time
{
font-size
:
28px
;
font-size
:
28px
;
color
:
#333
;
color
:
#333
;
}
}
.input
{
.input
{
width
:
100%
;
width
:
100%
;
height
:
70px
;
height
:
70px
;
...
@@ -212,10 +265,12 @@
...
@@ -212,10 +265,12 @@
margin-top
:
20px
;
margin-top
:
20px
;
font-size
:
28px
;
font-size
:
28px
;
}
}
.subject
{
.subject
{
border
:
2px
solid
#017af7
;
border
:
2px
solid
#017af7
;
color
:
#017af7
;
color
:
#017af7
;
}
}
.my-answer
{
.my-answer
{
border
:
2px
solid
#333
;
border
:
2px
solid
#333
;
color
:
#333
;
color
:
#333
;
...
@@ -250,6 +305,7 @@
...
@@ -250,6 +305,7 @@
.btn-list
.negative
{
.btn-list
.negative
{
width
:
12.5%
;
width
:
12.5%
;
}
}
.btn-list
.next
{
.btn-list
.next
{
background
:
#f56c6c
;
background
:
#f56c6c
;
}
}
...
...
src/views/forward/forwardResult.vue
View file @
5681cda
...
@@ -2,43 +2,58 @@
...
@@ -2,43 +2,58 @@
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"title"
>
正向速算答题记录
</div>
<div
class=
"title"
>
正向速算答题记录
</div>
<div
class=
"data-list"
>
<div
class=
"data-list"
>
<div
class=
"data-item"
style=
"width: 1000%"
>
正向速算:
<span>
得分
{{
score
}}
</span></div>
<div
class=
"data-item"
style=
"width: 1000%"
>
正向速算:
<span>
得分
{{
result
.
score
}}
</span></div>
</div>
</div>
<div
class=
"data-list"
>
<div
class=
"data-list"
>
<div
class=
"data-item"
>
答题数量:
<span>
{{
number
}}
</span></div>
<div
class=
"data-item"
>
答题数量:
<span>
{{
result
.
question_numb
}}
</span></div>
<div
class=
"data-item"
>
正确数量:
<span>
{{
correctNumber
}}
</span></div>
<div
class=
"data-item"
>
正确数量:
<span>
{{
result
.
right_numb
}}
</span></div>
<div
class=
"data-item"
>
答题用时:
<span>
{{
540
-
residue_time
}}
s
</span></div>
<div
class=
"data-item"
>
答题用时:
<span>
{{
use_time_desc
}}
</span></div>
<div
class=
"data-item"
>
剩余时间:
<span>
{{
res
idue_time
}}
s
</span></div>
<div
class=
"data-item"
>
剩余时间:
<span>
{{
res
ult
.
answer_time_left
}}
s
</span></div>
<div
class=
"data-item"
>
正确率:
<span>
{{
percentag
e
}}
%
</span></div>
<div
class=
"data-item"
>
正确率:
<span>
{{
result
.
right_rat
e
}}
%
</span></div>
</div>
</div>
<div
class=
"answer"
>
答案对比
</div>
<div
class=
"answer"
>
答案对比
</div>
<div
class=
"answer-list"
>
<div
class=
"answer-list"
>
<div
class=
"answer-item"
v-for=
"(item,index) in answerList"
>
<div
class=
"answer-item"
v-for=
"(item,index) in answerList"
>
<div
class=
"subject"
>
{{
index
+
1
}}
、
{{
item
.
subject
}}
</div>
<div
class=
"subject"
>
{{
index
+
1
}}
、
{{
item
.
subject
}}
</div>
<div
class=
"subject"
style=
"text-indent: 20px"
>
你的答案:
<span>
{{
item
.
myAnswer
}}
</span></div>
<div
v-if=
"item.check"
class=
"subject subject-success"
style=
"text-indent: 20px"
>
你的答案:
{{
item
.
myAnswer
}}
</div>
<div
v-else
class=
"subject subject-error"
style=
"text-indent: 20px"
>
你的答案:
{{
item
.
myAnswer
}}
</div>
<div
class=
"subject"
style=
"text-indent: 20px"
>
正确答案:
{{
item
.
correctAnswer
}}
</div>
<div
class=
"subject"
style=
"text-indent: 20px"
>
正确答案:
{{
item
.
correctAnswer
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"operation"
>
<div
class=
"operation"
>
<div
class=
"item item-1"
>
再来一局
</div>
<div
class=
"item item-1"
@
click=
"again()"
>
再来一局
</div>
<div
class=
"item item-2"
@
click=
"goback()"
>
返回列表
</div>
<div
class=
"item item-2"
@
click=
"goback()"
>
返回列表
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
StoreUtil
from
"../../store/stateStore"
;
import
BaseConstant
from
"../../store/constants/baseConstant"
;
import
{
secSimpleText
}
from
"../../framework/util/func"
;
export
default
{
export
default
{
name
:
"forwardResult"
,
name
:
"forwardResult"
,
data
()
{
data
()
{
return
{
return
{
score
:
0
,
//分数
number
:
'100'
,
//答题数量
correctNumber
:
0
,
//正确数量
percentage
:
0
,
//正确率
answerList
:
[],
answerList
:
[],
residue_time
:
''
,
//剩余时间
use_time_desc
:
''
,
result
:
{
score
:
0
,
question_numb
:
0
,
right_numb
:
0
,
right_rate
:
0
,
learn_time
:
0
,
learn_left_time
:
0
,
answer_time
:
0
,
answer_time_left
:
0
,
use_time
:
0
},
result_detail
:
{
question
:
[],
answer
:
[]
}
}
}
},
},
methods
:
{
methods
:
{
...
@@ -46,19 +61,54 @@
...
@@ -46,19 +61,54 @@
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/'
path
:
'/'
})
})
},
again
()
{
let
url
=
'/forward/index'
;
let
query
=
{
id
:
StoreUtil
.
getState
().
train
.
currentCase
.
case_id
,
model_id
:
StoreUtil
.
getState
().
train
.
currentCase
.
model_id
,
};
console
.
log
(
this
.
type
,
'-type-'
);
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_CASE_INFO_NOW_CLEAN
);
this
.
$router
.
push
({
path
:
url
,
query
})
}
}
},
},
created
()
{
created
()
{
this
.
residue_time
=
this
.
$route
.
query
.
time
;
this
.
answerList
=
[];
this
.
answerList
=
this
.
$store
.
state
.
forwardAnswer
;
let
data
=
StoreUtil
.
getState
().
train
.
currentCase
.
data
;
let
result
=
StoreUtil
.
getState
().
train
.
currentCase
.
result
;
let
levelConfig
=
StoreUtil
.
getState
().
train
.
currentCase
.
level_config
;
this
.
answerList
=
data
.
answerList
;
this
.
number
=
this
.
answerList
.
length
;
this
.
number
=
this
.
answerList
.
length
;
this
.
answerList
.
forEach
(
v
=>
{
if
(
v
.
myAnswer
==
v
.
correctAnswer
)
{
this
.
result
.
question_numb
=
this
.
answerList
.
length
;
this
.
correctNumber
=
this
.
correctNumber
+
1
;
this
.
result
.
answer_time
=
result
.
answer_time_end
-
result
.
answer_time_start
;
this
.
result
.
answer_time_left
=
levelConfig
.
limit_remember_time
-
this
.
result
.
answer_time
/
1000
;
this
.
use_time_desc
=
secSimpleText
(
this
.
result
.
answer_time
);
for
(
let
i
=
0
;
i
<
this
.
answerList
.
length
;
i
++
)
{
if
((
''
+
this
.
answerList
[
i
].
correctAnswer
)
===
(
''
+
this
.
answerList
[
i
].
myAnswer
))
{
this
.
result
.
right_numb
+=
1
;
this
.
answerList
[
i
].
check
=
true
;
}
}
this
.
result
.
right_rate
=
(
this
.
result
.
right_numb
/
this
.
result
.
question_numb
*
100
).
toFixed
(
2
);
this
.
result
.
score
=
this
.
result
.
right_numb
*
19
;
this
.
result_detail
.
question
=
[
{
q
:
this
.
answerList
,
a
:
[]
}
}
})
];
this
.
score
=
this
.
correctNumber
*
19
;
this
.
result_detail
.
answer
=
[];
this
.
percentage
=
(
this
.
correctNumber
/
this
.
number
*
100
).
toFixed
(
2
);
console
.
log
(
this
.
result
,
this
.
result_detail
);
}
}
}
}
</
script
>
</
script
>
...
@@ -67,6 +117,7 @@
...
@@ -67,6 +117,7 @@
.content
{
.content
{
padding
:
30px
24px
200px
;
padding
:
30px
24px
200px
;
}
}
.title
{
.title
{
width
:
100%
;
width
:
100%
;
display
:
flex
;
display
:
flex
;
...
@@ -76,6 +127,7 @@
...
@@ -76,6 +127,7 @@
color
:
#000
;
color
:
#000
;
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.data-list
{
.data-list
{
display
:
flex
;
display
:
flex
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
...
@@ -91,6 +143,7 @@
...
@@ -91,6 +143,7 @@
.data-item
span
{
.data-item
span
{
color
:
#1f72ff
;
color
:
#1f72ff
;
}
}
.answer
{
.answer
{
background
:
#409eff
;
background
:
#409eff
;
width
:
150px
;
width
:
150px
;
...
@@ -104,21 +157,31 @@
...
@@ -104,21 +157,31 @@
margin-bottom
:
15px
;
margin-bottom
:
15px
;
border-radius
:
8px
;
border-radius
:
8px
;
}
}
.answer-list
{
.answer-list
{
}
}
.answer-item
.subject
{
.answer-item
.subject
{
margin-bottom
:
10px
;
margin-bottom
:
10px
;
font-size
:
28px
;
font-size
:
28px
;
color
:
#333
;
color
:
#333
;
}
}
.answer-item
.subject
span
{
.answer-item
.subject
span
{
color
:
red
;
}
.answer-item
.subject-error
{
color
:
red
;
color
:
red
;
}
}
.answer-item
.subject-success
{
color
:
blue
;
}
.operation
{
.operation
{
width
:
400px
;
width
:
400px
;
position
:
fixed
;
position
:
fixed
;
bottom
:
120
px
;
bottom
:
24
px
;
display
:
flex
;
display
:
flex
;
left
:
50%
;
left
:
50%
;
transform
:
translateX
(
-50%
);
transform
:
translateX
(
-50%
);
...
...
src/views/forward/index.vue
View file @
5681cda
...
@@ -16,13 +16,13 @@
...
@@ -16,13 +16,13 @@
<div>
比赛规则
</div>
<div>
比赛规则
</div>
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
1、选手在“
国际
脑力运动”线上平台报名参加脑力世界杯并选中本项比赛。
1、选手在“
摩天轮
脑力运动”线上平台报名参加脑力世界杯并选中本项比赛。
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
1. Athlete register Intellectual World Cup on the "International Intellectual Sports" online platform and select this discipline.
1. Athlete register Intellectual World Cup on the "International Intellectual Sports" online platform and select this discipline.
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
2、所有选手在“
国际
脑力运动”线上平台上点击进入本项目比赛倒计时页面,倒计时归零后立即开始比赛。
2、所有选手在“
摩天轮
脑力运动”线上平台上点击进入本项目比赛倒计时页面,倒计时归零后立即开始比赛。
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
2. All athletes clicked into the countdown page on the "International Intellectual Sports" online platform,
2. All athletes clicked into the countdown page on the "International Intellectual Sports" online platform,
...
@@ -79,20 +79,36 @@
...
@@ -79,20 +79,36 @@
2. The highest round score is the final score.
2. The highest round score is the final score.
</div>
</div>
<div
class=
"m-selector"
>
选择模式:
<div
v-for=
"(item, index) in caseConfig"
:key=
"index"
:index=
"index"
:item=
"item"
>
<div
class=
"item"
:class=
"
{active: (level === index)}" @click="changLevel(index)">
{{
item
.
level_name
}}
</div>
</div>
</div>
<div
class=
"start"
@
click=
"start"
>
开始训练
</div>
<div
class=
"start"
@
click=
"start"
>
开始训练
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
BaseCasePage
from
"../../framework/core/baseCasePage"
;
import
BaseCasePage
from
"../../framework/core/baseCasePage"
;
import
CaseUtil
from
"../../framework/service/base/caseUtil"
;
export
default
new
BaseCasePage
({
export
default
new
BaseCasePage
({
name
:
"index"
,
name
:
"index"
,
data
()
{
return
{
level
:
0
,
}
},
methods
:
{
methods
:
{
changLevel
(
level
)
{
if
(
level
!==
this
.
level
)
{
this
.
level
=
level
;
}
},
start
()
{
start
()
{
this
.
$router
.
push
({
CaseUtil
.
goToTrain
(
'/forward/forwardAnswer'
,
this
);
path
:
'/forward/forwardAnswer'
})
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -103,7 +119,7 @@
...
@@ -103,7 +119,7 @@
<
style
scoped
>
<
style
scoped
>
.content
{
.content
{
padding
:
30px
24px
1
20
px
;
padding
:
30px
24px
1
56
px
;
}
}
.title
{
.title
{
display
:
flex
;
display
:
flex
;
...
...
src/views/home/index.vue
View file @
5681cda
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
heartCount
:
[
heartCount
:
[
{
{
label
:
'正向训练'
,
label
:
'正向训练'
,
path
:
'/forward/index'
path
:
'/forward/index
?id=9&model_id=8
'
},
},
{
{
label
:
'逆向训练'
,
label
:
'逆向训练'
,
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
},
},
{
{
label
:
'阅读理解'
,
label
:
'阅读理解'
,
path
:
'/fastReading/index'
path
:
'/fastReading/index
?id=10&model_id=5
'
},
},
]
]
}
}
...
...
src/views/reserve/index.vue
View file @
5681cda
...
@@ -15,13 +15,13 @@
...
@@ -15,13 +15,13 @@
<div>
比赛规则
</div>
<div>
比赛规则
</div>
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
1、选手在“
国际
脑力运动”线上平台报名参加脑力世界杯并选中本项比赛。
1、选手在“
摩天轮
脑力运动”线上平台报名参加脑力世界杯并选中本项比赛。
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
1. Athlete register Intellectual World Cup on the "International Intellectual Sports" online platform and select this discipline.
1. Athlete register Intellectual World Cup on the "International Intellectual Sports" online platform and select this discipline.
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
2、所有选手在“
国际
脑力运动”线上平台上点击进入本项目比赛倒计时页面,倒计时归零后立即开始比赛。
2、所有选手在“
摩天轮
脑力运动”线上平台上点击进入本项目比赛倒计时页面,倒计时归零后立即开始比赛。
</div>
</div>
<div
class=
"explain"
>
<div
class=
"explain"
>
2. All athletes clicked into the countdown page on the "International Intellectual Sports" online platform,
2. All athletes clicked into the countdown page on the "International Intellectual Sports" online platform,
...
...
src/views/zhiExercise/zhiAnswer.vue
View file @
5681cda
...
@@ -4,93 +4,139 @@
...
@@ -4,93 +4,139 @@
<div>
请按顺序输入图上出现过的字符
</div>
<div>
请按顺序输入图上出现过的字符
</div>
</div>
</div>
<div
class=
"answer"
>
<div
class=
"answer"
>
<div
class=
"item"
:class=
"
{focus : focus ==
1}">
{{
answer1
}}
</div>
<div
class=
"item"
:class=
"
{focus : focus ==
0}">
{{
answer
[
0
]
}}
</div>
<div
class=
"item"
:class=
"
{focus : focus ==
2}">
{{
answer2
}}
</div>
<div
class=
"item"
:class=
"
{focus : focus ==
1}">
{{
answer
[
1
]
}}
</div>
<div
class=
"item"
:class=
"
{focus : focus ==
3}">
{{
answer3
}}
</div>
<div
class=
"item"
:class=
"
{focus : focus ==
2}">
{{
answer
[
2
]
}}
</div>
</div>
</div>
<div
class=
"btn-list"
>
<div
class=
"btn-list"
>
<div
class=
"item"
@
click=
"input('
a')"
>
a
</div>
<div
class=
"item"
@
click=
"input('
A')"
>
A
</div>
<div
class=
"item"
@
click=
"input('
b')"
>
b
</div>
<div
class=
"item"
@
click=
"input('
B')"
>
B
</div>
<div
class=
"item"
@
click=
"input('
c')"
>
c
</div>
<div
class=
"item"
@
click=
"input('
C')"
>
C
</div>
<div
class=
"item"
@
click=
"input('
d')"
>
d
</div>
<div
class=
"item"
@
click=
"input('
D')"
>
D
</div>
<div
class=
"item"
@
click=
"input('
e')"
>
e
</div>
<div
class=
"item"
@
click=
"input('
E')"
>
E
</div>
<div
class=
"item"
@
click=
"input('
f')"
>
f
</div>
<div
class=
"item"
@
click=
"input('
F')"
>
F
</div>
<div
class=
"item"
@
click=
"input('
g')"
>
g
</div>
<div
class=
"item"
@
click=
"input('
G')"
>
G
</div>
<div
class=
"item"
@
click=
"input('
h')"
>
h
</div>
<div
class=
"item"
@
click=
"input('
H')"
>
H
</div>
<div
class=
"item"
@
click=
"input('
i')"
>
i
</div>
<div
class=
"item"
@
click=
"input('
I')"
>
I
</div>
<div
class=
"item"
@
click=
"input('
j')"
>
j
</div>
<div
class=
"item"
@
click=
"input('
J')"
>
J
</div>
<div
class=
"item"
@
click=
"input('
k')"
>
k
</div>
<div
class=
"item"
@
click=
"input('
K')"
>
K
</div>
<div
class=
"item"
@
click=
"input('
l')"
>
l
</div>
<div
class=
"item"
@
click=
"input('
L')"
>
L
</div>
<div
class=
"item"
@
click=
"input('
m')"
>
m
</div>
<div
class=
"item"
@
click=
"input('
M')"
>
M
</div>
<div
class=
"item"
@
click=
"input('
n')"
>
n
</div>
<div
class=
"item"
@
click=
"input('
N')"
>
N
</div>
<div
class=
"item"
@
click=
"input('
o')"
>
o
</div>
<div
class=
"item"
@
click=
"input('
O')"
>
O
</div>
<div
class=
"item"
@
click=
"input('
p')"
>
p
</div>
<div
class=
"item"
@
click=
"input('
P')"
>
P
</div>
<div
class=
"item"
@
click=
"input('
q')"
>
q
</div>
<div
class=
"item"
@
click=
"input('
Q')"
>
Q
</div>
<div
class=
"item"
@
click=
"input('
r')"
>
r
</div>
<div
class=
"item"
@
click=
"input('
R')"
>
R
</div>
<div
class=
"item"
@
click=
"input('
s')"
>
s
</div>
<div
class=
"item"
@
click=
"input('
S')"
>
S
</div>
<div
class=
"item"
@
click=
"input('
t')"
>
t
</div>
<div
class=
"item"
@
click=
"input('
T')"
>
T
</div>
<div
class=
"item"
@
click=
"input('
u')"
>
u
</div>
<div
class=
"item"
@
click=
"input('
U')"
>
U
</div>
<div
class=
"item delete"
@
click=
"deleteA"
>
删除
</div>
<div
class=
"item delete"
@
click=
"deleteA"
>
删除
</div>
<div
class=
"item"
@
click=
"input('
v')"
>
v
</div>
<div
class=
"item"
@
click=
"input('
V')"
>
V
</div>
<div
class=
"item"
@
click=
"input('
w')"
>
w
</div>
<div
class=
"item"
@
click=
"input('
W')"
>
W
</div>
<div
class=
"item"
@
click=
"input('
x')"
>
x
</div>
<div
class=
"item"
@
click=
"input('
X')"
>
X
</div>
<div
class=
"item"
@
click=
"input('
y')"
>
y
</div>
<div
class=
"item"
@
click=
"input('
Y')"
>
Y
</div>
<div
class=
"item"
@
click=
"input('
z')"
>
z
</div>
<div
class=
"item"
@
click=
"input('
Z')"
>
Z
</div>
</div>
</div>
<div
class=
"submit"
@
click=
"submit"
>
确定
</div>
<div
class=
"submit"
@
click=
"submit"
>
确定
</div>
<div
class=
"operation"
>
<div
class=
"item item-1"
@
click=
"again"
>
再来一局
</div>
<div
class=
"item item-2"
@
click=
"goback()"
>
返回列表
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
StoreUtil
from
"../../store/stateStore"
;
import
BaseConstant
from
"../../store/constants/baseConstant"
;
export
default
{
export
default
{
name
:
"zhiAnswer"
,
name
:
"zhiAnswer"
,
data
()
{
data
()
{
return
{
return
{
focus
:
1
,
focus
:
0
,
correctAnswer
:
[],
correctAnswer
:
[],
answer1
:
''
,
answer
:
[],
answer2
:
''
,
answer3
:
''
}
}
},
},
methods
:{
methods
:
{
//提交
//提交
submit
()
{
submit
()
{
let
data
=
''
;
let
data
=
this
.
correctAnswer
;
this
.
correctAnswer
.
forEach
(
v
=>
{
this
.
$message
({
data
=
data
+
v
type
:
'success'
,
})
content
:
'正确答案为:'
+
data
+
" | 您的答案为:"
+
this
.
answer
.
join
(
''
)
alert
(
'正确答案为:'
+
data
)
});
// let answer_time_end = new Date().getTime();
// StoreUtil.stateSave(BaseConstant.BRAIN_TRAIN_TRAIN_INFO_NOW, {
// data: {
// answer: this.answer,
// correctAnswer: this.correctAnswer
// },
// result: {
// answer_time_end: answer_time_end,
// }
// });
//
// this.$router.push({
// path: '/home/result',
// query: {
// type: 2,
// level: this.level,
// id: this.caseAlias,
// model_id: this.modelAlias
// }
// });
},
},
deleteA
()
{
deleteA
()
{
if
(
this
.
focus
==
1
)
{
this
.
answer
[
this
.
focus
]
=
''
;
this
.
answer1
=
''
;
if
(
this
.
focus
>
0
){
}
else
if
(
this
.
focus
==
2
)
{
this
.
focus
--
;
this
.
answer2
=
''
;
this
.
focus
--
}
else
if
(
this
.
focus
==
3
)
{
this
.
answer3
=
''
;
this
.
focus
--
}
}
this
.
$forceUpdate
();
},
},
input
(
val
)
{
input
(
val
)
{
if
(
this
.
focus
==
1
)
{
this
.
answer
[
this
.
focus
]
=
val
;
this
.
answer1
=
val
;
console
.
log
(
this
.
answer
,
'----answer-'
);
this
.
focus
++
if
(
this
.
focus
<
2
){
}
else
if
(
this
.
focus
==
2
)
{
this
.
focus
++
;
this
.
answer2
=
val
;
this
.
focus
++
}
else
if
(
this
.
focus
==
3
)
{
this
.
answer3
=
val
;
}
}
this
.
$forceUpdate
();
},
goback
()
{
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_CASE_INFO_NOW_CLEAN
);
this
.
$router
.
push
({
path
:
'/'
})
},
again
()
{
let
url
=
'/zhiExercise/index'
;
let
query
=
{
id
:
StoreUtil
.
getState
().
train
.
currentCase
.
case_id
,
model_id
:
StoreUtil
.
getState
().
train
.
currentCase
.
model_id
};
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_CASE_INFO_NOW_CLEAN
);
this
.
$router
.
push
({
path
:
url
,
query
})
}
}
},
},
mounted
()
{
mounted
()
{
this
.
correctAnswer
=
this
.
$route
.
query
.
answer
;
this
.
answer
=
[];
console
.
log
(
this
.
correctAnswer
);
this
.
correctAnswer
=
this
.
$route
.
query
.
correctAnswer
;
// this.correctAnswer = JSON.parse(JSON.stringify(StoreUtil.getState().train.currentCase.data.randomNumber));
// StoreUtil.stateSave(BaseConstant.BRAIN_TRAIN_TRAIN_INFO_NOW, {
// result: {
// answer_time_start: new Date().getTime()
// },
// result_detail: {
// q: this.correctAnswer.join('')
// }
// });
}
}
}
}
</
script
>
</
script
>
...
@@ -128,9 +174,11 @@
...
@@ -128,9 +174,11 @@
color
:
#333
;
color
:
#333
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
.answer
.focus
{
.answer
.focus
{
background
:
#65bbe6
;
background
:
#65bbe6
;
}
}
.btn-list
{
.btn-list
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
@@ -172,4 +220,36 @@
...
@@ -172,4 +220,36 @@
border-radius
:
40px
;
border-radius
:
40px
;
margin
:
50px
auto
;
margin
:
50px
auto
;
}
}
.operation
{
width
:
400px
;
position
:
fixed
;
bottom
:
24px
;
display
:
flex
;
left
:
50%
;
transform
:
translateX
(
-50%
);
align-items
:
center
;
justify-content
:
space-between
;
}
.operation
.item
{
width
:
196px
;
height
:
80px
;
background
:
#409eff
;
color
:
white
;
font-size
:
28px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.operation
.item-1
{
border-bottom-left-radius
:
40px
;
border-top-left-radius
:
40px
;
}
.operation
.item-2
{
border-bottom-right-radius
:
40px
;
border-top-right-radius
:
40px
;
}
</
style
>
</
style
>
src/views/zhiExercise/zhiDrill.vue
View file @
5681cda
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"title"
>
{{
(
count_time
/
10
).
toFixed
(
1
)
}}
s
</div>
<div
class=
"title"
>
{{
(
count_time
/
10
).
toFixed
(
1
)
}}
s
</div>
<div
class=
"border"
>
<div
class=
"border"
>
<div
class=
"ball"
:style=
"
{left: ballX + '
px
',top: ballY + 'px'}">
{{
letter
}}
</div>
<div
class=
"ball"
:style=
"
{left: ballX + '
%
',top: ballY + 'px'}">
{{
letter
}}
</div>
</div>
</div>
<div
class=
"start"
@
click=
"start"
v-if=
"showBtn"
>
开始训练
</div>
<div
class=
"start"
@
click=
"start"
v-if=
"showBtn"
>
开始训练
</div>
</div>
</div>
...
@@ -22,13 +22,14 @@
...
@@ -22,13 +22,14 @@
directY
:
1
,
//y轴方向 1代表从上到下 -1代表从下到上
directY
:
1
,
//y轴方向 1代表从上到下 -1代表从下到上
ballX
:
0
,
//小球的x坐标
ballX
:
0
,
//小球的x坐标
ballY
:
0
,
//小球的y坐标
ballY
:
0
,
//小球的y坐标
speedX
:
10
,
//小球的运动速度
speedX
:
4
,
//小球的运动速度
speedY
:
2
,
speedY
:
4
,
timer
:
''
,
timer
:
''
,
timer1
:
''
,
timer1
:
''
,
count_time
:
0
,
count_time
:
0
,
trainTime
:
0
,
trainTime
:
0
,
showTime
:
[],
showTime
:
[],
lastShowTime
:
0
,
showBtn
:
true
,
showBtn
:
true
,
letter
:
''
,
letter
:
''
,
answer
:
[]
answer
:
[]
...
@@ -36,10 +37,10 @@
...
@@ -36,10 +37,10 @@
},
},
methods
:
{
methods
:
{
ballMove
()
{
ballMove
()
{
if
(
this
.
ballX
>
=
30
0
||
this
.
ballX
<
0
)
{
if
(
this
.
ballX
>
9
0
||
this
.
ballX
<
0
)
{
this
.
directX
=
-
this
.
directX
;
this
.
directX
=
-
this
.
directX
;
}
}
if
(
this
.
ballY
>
600
||
this
.
ballY
<
0
)
{
if
(
this
.
ballY
>
=
600
||
this
.
ballY
<
0
)
{
this
.
directY
=
-
this
.
directY
;
this
.
directY
=
-
this
.
directY
;
}
}
this
.
ballX
=
this
.
ballX
+
this
.
directX
*
this
.
speedX
;
this
.
ballX
=
this
.
ballX
+
this
.
directX
*
this
.
speedX
;
...
@@ -48,11 +49,16 @@
...
@@ -48,11 +49,16 @@
start
()
{
start
()
{
this
.
showBtn
=
false
;
this
.
showBtn
=
false
;
this
.
timer
=
setInterval
(()
=>
{
// 小球运动计时器
this
.
timer
=
setInterval
(()
=>
{
// 小球运动计时器
if
(
this
.
count_time
>
0
)
{
if
(
this
.
count_time
>
58
0
)
{
this
.
ballMove
();
this
.
ballMove
();
this
.
letter
=
''
;
if
(
this
.
letter
&&
(
this
.
count_time
>=
this
.
lastShowTime
-
1
))
{
}
else
{
this
.
letter
=
''
;
}
let
index
=
this
.
showTime
.
indexOf
(
this
.
count_time
);
let
index
=
this
.
showTime
.
indexOf
(
this
.
count_time
);
if
(
index
>
-
1
)
{
if
(
index
>
-
1
)
{
console
.
log
(
this
.
count_time
,
this
.
lastShowTime
);
this
.
lastShowTime
=
this
.
count_time
;
console
.
log
(
this
.
count_time
,
index
);
console
.
log
(
this
.
count_time
,
index
);
if
(
this
.
levelConfig
.
mode
==
1
)
{
if
(
this
.
levelConfig
.
mode
==
1
)
{
let
arr
=
[
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
,
'G'
,
'H'
,
'I'
,
'J'
,
'K'
,
'L'
,
'M'
,
'N'
,
'O'
,
'P'
,
'Q'
,
'R'
,
'S'
,
'T'
,
'U'
,
'V'
,
'W'
,
'X'
,
'Y'
,
'Z'
];
let
arr
=
[
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
,
'G'
,
'H'
,
'I'
,
'J'
,
'K'
,
'L'
,
'M'
,
'N'
,
'O'
,
'P'
,
'Q'
,
'R'
,
'S'
,
'T'
,
'U'
,
'V'
,
'W'
,
'X'
,
'Y'
,
'Z'
];
...
@@ -96,9 +102,9 @@
...
@@ -96,9 +102,9 @@
this
.
speedX
=
this
.
speedX
*
(
rate
/
5
);
this
.
speedX
=
this
.
speedX
*
(
rate
/
5
);
this
.
speedY
=
this
.
speedY
*
(
rate
/
5
);
this
.
speedY
=
this
.
speedY
*
(
rate
/
5
);
let
firstTime
=
Math
.
floor
(
random
(
this
.
trainTime
/
6
,
this
.
trainTime
/
3
+
this
.
trainTime
/
10
)
/
100
);
let
firstTime
=
Math
.
floor
(
random
(
this
.
trainTime
/
10
,
this
.
trainTime
/
3
)
/
100
);
let
secTime
=
Math
.
floor
(
random
(
this
.
trainTime
*
2
/
3
-
this
.
trainTime
/
10
,
this
.
trainTime
*
2
/
3
+
this
.
trainTime
/
10
)
/
100
);
let
secTime
=
Math
.
floor
(
random
(
this
.
trainTime
/
3
,
this
.
trainTime
*
2
/
3
)
/
100
);
let
thirdTime
=
Math
.
floor
(
random
(
this
.
trainTime
-
this
.
trainTime
/
6
,
this
.
trainTime
)
/
100
);
let
thirdTime
=
Math
.
floor
(
random
(
this
.
trainTime
*
2
/
3
,
this
.
trainTime
)
/
100
);
// let firstTime = random(this.trainTime / 6, this.trainTime / 3 + this.trainTime / 10);
// let firstTime = random(this.trainTime / 6, this.trainTime / 3 + this.trainTime / 10);
// let secTime = random(this.trainTime * 2 / 3 - this.trainTime / 10, this.trainTime * 2 / 3 + this.trainTime / 10);
// let secTime = random(this.trainTime * 2 / 3 - this.trainTime / 10, this.trainTime * 2 / 3 + this.trainTime / 10);
...
@@ -107,6 +113,7 @@
...
@@ -107,6 +113,7 @@
this
.
showTime
.
push
(
firstTime
);
this
.
showTime
.
push
(
firstTime
);
this
.
showTime
.
push
(
secTime
);
this
.
showTime
.
push
(
secTime
);
this
.
showTime
.
push
(
thirdTime
);
this
.
showTime
.
push
(
thirdTime
);
console
.
log
(
this
.
answer
,
this
.
showTime
);
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
StoreUtil
.
stateSave
(
BaseConstant
.
BRAIN_TRAIN_TRAIN_INFO_NOW
,
{
result
:
{
result
:
{
...
@@ -130,7 +137,8 @@
...
@@ -130,7 +137,8 @@
query
:
{
query
:
{
level
:
this
.
level
,
level
:
this
.
level
,
id
:
this
.
caseAlias
,
id
:
this
.
caseAlias
,
model_id
:
this
.
modelAlias
model_id
:
this
.
modelAlias
,
correctAnswer
:
this
.
answer
.
join
(
''
)
}
}
});
});
},
},
...
@@ -168,7 +176,7 @@
...
@@ -168,7 +176,7 @@
}
}
.border
{
.border
{
width
:
700px
;
width
:
96%
;
height
:
1200px
;
height
:
1200px
;
border
:
10px
solid
#000
;
border
:
10px
solid
#000
;
margin-top
:
20px
;
margin-top
:
20px
;
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment