Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
thinkApp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
游洁
thinkApp
Commits
4e7cafc5
Commit
4e7cafc5
authored
May 27, 2022
by
zhengke
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/youjie/thinkapp
parents
0c9d85ab
589effb0
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
105 additions
and
149 deletions
+105
-149
line.vue
src/components/charts/line.vue
+15
-5
penta.vue
src/components/charts/penta.vue
+13
-5
triangle.vue
src/components/charts/triangle.vue
+15
-5
allGraspTheSituation.vue
src/components/index/scoreDetails/allGraspTheSituation.vue
+7
-35
analysisTest.vue
src/components/index/scoreDetails/analysisTest.vue
+13
-37
dfficultyAnalysis.vue
src/components/index/scoreDetails/dfficultyAnalysis.vue
+6
-17
graspTheSituation.vue
src/components/index/scoreDetails/graspTheSituation.vue
+5
-15
scoreDetails.vue
src/pages/index/scoreDetails.vue
+31
-30
No files found.
src/components/charts/line.vue
View file @
4e7cafc5
...
...
@@ -17,8 +17,10 @@
onMounted
,
}
from
"vue"
;
export
default
{
props
:
{},
setup
()
{
props
:
{
DifficultyList
:[]
},
setup
(
props
)
{
let
data
=
reactive
({
chartData
:
{},
opts
:
{
...
...
@@ -70,11 +72,19 @@
//模拟从服务器获取数据时的延时
setTimeout
(()
=>
{
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let
cate
=
[];
let
serNum
=
[];
let
serScore
=
[];
props
.
DifficultyList
.
forEach
(
item
=>
{
cate
.
push
(
item
.
Difficulty
);
serNum
.
push
(
item
.
Count
);
serScore
.
push
(
item
.
Score
);
});
let
res
=
{
categories
:
[
"简单"
,
"中档题"
,
"难题"
]
,
categories
:
cate
,
series
:
[{
name
:
"题目数量"
,
data
:
[
4
,
16
,
5
]
,
data
:
serNum
,
textColor
:
"#CE8086"
,
type
:
"column"
,
index
:
0
,
...
...
@@ -86,7 +96,7 @@
color
:
"#282828"
,
textColor
:
"#282828"
,
index
:
1
,
data
:
[
8
,
62
,
30
]
,
data
:
serScore
,
textOffset
:
-
20
}
]
...
...
src/components/charts/penta.vue
View file @
4e7cafc5
...
...
@@ -18,8 +18,8 @@
onMounted
,
}
from
"vue"
;
export
default
{
props
:
{}
,
setup
()
{
props
:
[
"ModuleList"
]
,
setup
(
props
)
{
let
data
=
reactive
({
chartData
:
{},
...
...
@@ -52,8 +52,16 @@
//模拟从服务器获取数据时的延时
setTimeout
(()
=>
{
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let
cate
=
[];
//模块名称
let
grRate
=
[];
//个人得分率
let
avgRate
=
[];
//平均得分率
props
.
ModuleList
.
forEach
(
item
=>
{
cate
.
push
(
item
.
Module
);
grRate
.
push
(
item
.
ScoreRate
*
100
);
avgRate
.
push
(
item
.
AvgScoreRate
*
100
);
});
let
res
=
{
categories
:
[
"化学与生活"
,
"物质分类"
,
"物质的量综合"
,
"离子反应"
,
"氧还原反应"
,
"化学实验"
,
"元素及其化合物"
]
,
categories
:
cate
,
series
:
[
{
name
:
""
,
...
...
@@ -62,11 +70,11 @@
},
{
name
:
"平均得分率"
,
data
:
[
80
,
66
,
50
,
90
,
53
,
60
,
20
]
data
:
avgRate
},
{
name
:
"个人得分率"
,
data
:
[
74
,
87
,
69
,
97
,
16
,
16
,
88
]
data
:
grRate
},
]
...
...
src/components/charts/triangle.vue
View file @
4e7cafc5
...
...
@@ -18,8 +18,10 @@
onMounted
,
}
from
"vue"
;
export
default
{
props
:
{},
setup
()
{
props
:
{
DifficultyRateList
:[]
},
setup
(
props
)
{
let
data
=
reactive
({
chartData
:
{},
...
...
@@ -52,8 +54,16 @@
//模拟从服务器获取数据时的延时
setTimeout
(()
=>
{
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let
cate
=
[];
let
grScore
=
[];
let
avgScore
=
[];
props
.
DifficultyRateList
.
forEach
(
item
=>
{
cate
.
push
(
item
.
Difficulty
);
grScore
.
push
(
item
.
ScoreRate
*
100
);
avgScore
.
push
(
item
.
AvgScoreRate
*
100
);
});
let
res
=
{
categories
:
[
"简单题"
,
"中档题"
,
"难题"
]
,
categories
:
cate
,
series
:
[
{
name
:
""
,
...
...
@@ -62,11 +72,11 @@
},
{
name
:
"平均得分率"
,
data
:
[
80
,
66
,
50
]
data
:
avgScore
},
{
name
:
"个人得分率"
,
data
:
[
25
,
87
,
69
]
data
:
grScore
},
]
...
...
src/components/index/scoreDetails/allGraspTheSituation.vue
View file @
4e7cafc5
...
...
@@ -4,39 +4,12 @@
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
</view>
<view
class=
"allGraspTheSituation-content flex"
>
<view
class=
"allGraspTheSituation-left flex"
>
<view
v-for=
"(l,index) in letftTitleList"
:key=
"index"
>
{{
l
}}
</view>
</view>
<view
class=
"allGraspTheSituation-right flex"
>
<view
class=
"allGraspTheSituation-num flex"
>
<text>
2
</text>
<text
class=
"fullScore"
>
100
<text>
%
</text></text>
<text>
12
<text>
.5
</text></text>
</view>
<view
class=
"allGraspTheSituation-num flex"
>
<text>
2
</text>
<text>
62
<text>
%
</text></text>
<text>
3
<text>
.5
</text></text>
</view>
<view
class=
"allGraspTheSituation-num flex"
>
<text>
2
</text>
<text>
62
<text>
%
</text></text>
<text>
3
<text>
.5
</text></text>
</view>
<view
class=
"allGraspTheSituation-num flex"
>
<text>
2
</text>
<text>
62
<text>
%
</text></text>
<text>
3
<text>
.5
</text></text>
</view>
<view
class=
"allGraspTheSituation-num flex"
>
<text>
2
</text>
<text>
62
<text>
%
</text></text>
<text>
3
<text>
.5
</text></text>
</view>
<view
class=
"allGraspTheSituation-num flex"
>
<text>
2
</text>
<text
class=
"failed"
>
45
<text>
%
</text></text>
<text>
12
<text>
.5
</text></text>
<view
class=
"allGraspTheSituation-num flex"
v-for=
"(item,index) in ModuleList"
:key=
"index"
>
<text>
{{
item
.
Module
}}
</text>
<text>
{{
item
.
Score
}}
</text>
<text
class=
"fullScore"
>
{{
item
.
ScoreRate
*
100
}}
<text>
%
</text></text>
<text
class=
"fullScore"
>
{{
item
.
AvgScoreRate
*
100
}}
<text>
%
</text></text>
</view>
</view>
...
...
@@ -55,7 +28,7 @@
export
default
{
props
:
{
ModuleList
:[]
},
components
:
{},
setup
()
{
...
...
@@ -67,8 +40,7 @@
},
showPhone
:
false
,
showLogin
:
true
,
//多次点击
TitleList
:[
'考点'
,
'分数'
,
'个人得分率'
,
'平均得分'
],
letftTitleList
:[
'化学与生活'
,
'物质分类'
,
'物质的量综合'
,
'离子反应'
,
'氧化还原反应'
,
'化学实验'
,
'元素及其化合物'
]
TitleList
:[
'考点'
,
'分数'
,
'个人得分率'
,
'平均得分'
]
});
return
{
...
toRefs
(
data
),
...
...
src/components/index/scoreDetails/analysisTest.vue
View file @
4e7cafc5
...
...
@@ -13,41 +13,19 @@
width=
"200"
>
{{
item
}}
</th>
</tr>
<tr
class=
"analysisTest-content-right flex"
>
<td
class=
"analysisTest-td"
>
<view
class=
"analysisTest-number"
>
1
</view>
<view
class=
"analysisTest-difficulty"
>
<van-icon
name=
"star"
v-for=
"(s,index) in 3"
:key=
"index"
/>
<td
class=
"analysisTest-td"
v-for=
"(item,index) in ScoreList"
:key=
"index"
>
<view
class=
"analysisTest-number"
>
{{
item
.
Sort
}}
</view>
<view
class=
"analysisTest-difficulty"
>
<view
v-if=
"item.Difficulty == '易'"
><van-icon
name=
"star"
v-for=
"(s,i) in 1"
:key=
"i"
/></view>
<view
v-else-if=
"item.Difficulty == '中'"
><van-icon
name=
"star"
v-for=
"(s,i) in 2"
:key=
"i"
/></view>
<view
v-else-if=
"item.Difficulty == '难'"
><van-icon
name=
"star"
v-for=
"(s,i) in 3"
:key=
"i"
/></view>
</view>
<view
class=
"analysisTest-KnowledgePoint"
>
化学与生活
</view>
<view
class=
"analysisTest-ScoreOne"
>
1
</view>
<view
class=
"analysisTest-ScoreTwo"
>
2
</view>
<view
class=
"analysisTest-scoringRate"
>
75%
</view>
<view
class=
"analysisTest-TheAverageAcore"
>
1.7555555555555555555555
</view>
<view
class=
"analysisTest-averageScoringRate"
>
88%
</view>
</td>
<td
class=
"analysisTest-td"
>
<view
class=
"analysisTest-number"
>
1
</view>
<view
class=
"analysisTest-difficulty"
>
<van-icon
name=
"star"
v-for=
"(s,index) in 1"
:key=
"index"
/>
</view>
<view
class=
"analysisTest-KnowledgePoint"
>
化学与生活
</view>
<view
class=
"analysisTest-ScoreOne"
>
1
</view>
<view
class=
"analysisTest-ScoreTwo"
>
2
</view>
<view
class=
"analysisTest-scoringRate"
>
75%
</view>
<view
class=
"analysisTest-TheAverageAcore"
>
1.7555555555555555555555
</view>
<view
class=
"analysisTest-averageScoringRate"
>
88%
</view>
</td>
<td
class=
"analysisTest-td"
>
<view
class=
"analysisTest-number"
>
1
</view>
<view
class=
"analysisTest-difficulty"
>
<van-icon
name=
"star"
v-for=
"(s,index) in 1"
:key=
"index"
/>
</view>
<view
class=
"analysisTest-KnowledgePoint"
>
化学与生活
</view>
<view
class=
"analysisTest-ScoreOne"
>
1
</view>
<view
class=
"analysisTest-ScoreTwo"
>
2
</view>
<view
class=
"analysisTest-scoringRate"
>
75%
</view>
<view
class=
"analysisTest-TheAverageAcore"
>
1.7555555555555555555555
</view>
<view
class=
"analysisTest-averageScoringRate"
>
88%
</view>
<view
class=
"analysisTest-KnowledgePoint"
>
{{
item
.
KnowledgePoint
}}
</view>
<view
class=
"analysisTest-ScoreOne"
>
{{
item
.
QScore
}}
</view>
<view
class=
"analysisTest-ScoreTwo"
>
{{
item
.
Score
}}
</view>
<view
class=
"analysisTest-scoringRate"
>
{{
item
.
ScoreRate
*
100
}}
%
</view>
<view
class=
"analysisTest-TheAverageAcore"
>
{{
item
.
AvgScore
}}
</view>
<view
class=
"analysisTest-averageScoringRate"
>
{{
item
.
AvgScoreRate
*
100
}}
%
</view>
</td>
</tr>
...
...
@@ -68,9 +46,7 @@
}
from
"vue"
;
export
default
{
props
:
{
},
props
:
[
"ScoreList"
],
components
:
{},
setup
()
{
...
...
src/components/index/scoreDetails/dfficultyAnalysis.vue
View file @
4e7cafc5
...
...
@@ -4,21 +4,11 @@
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
</view>
<view
class=
"dfficultyAnalysis-content flex"
>
<view
class=
"dfficultyAnalysis-left flex"
>
<view
v-for=
"(l,index) in letftTitleList"
:key=
"index"
>
{{
l
}}
</view>
</view>
<view
class=
"dfficultyAnalysis-right flex"
>
<view
class=
"dfficultyAnalysis-num flex"
>
<text>
2
</text>
<text>
53
<text>
.5
</text></text>
</view>
<view
class=
"dfficultyAnalysis-num flex"
>
<text>
2
</text>
<text>
62
<text>
.5
</text></text>
</view>
<view
class=
"dfficultyAnalysis-num flex"
>
<text>
2
</text>
<text>
12
<text>
.5
</text></text>
<view
class=
"dfficultyAnalysis-num flex"
v-for=
"(item,index) in DifficultyList"
:key=
"index"
>
<text>
{{
item
.
Difficulty
}}
</text>
<text>
{{
item
.
Count
}}
</text>
<text>
{{
item
.
Score
}}
</text>
</view>
</view>
...
...
@@ -37,7 +27,7 @@
export
default
{
props
:
{
DifficultyList
:[]
},
components
:
{},
setup
()
{
...
...
@@ -49,8 +39,7 @@
},
showPhone
:
false
,
showLogin
:
true
,
//多次点击
TitleList
:[
'题目难度'
,
'题目数量'
,
'题目分数'
],
letftTitleList
:[
'简单题'
,
'中档题'
,
'难题'
]
TitleList
:[
'题目难度'
,
'题目数量'
,
'题目分数'
]
});
return
{
...
toRefs
(
data
),
...
...
src/components/index/scoreDetails/graspTheSituation.vue
View file @
4e7cafc5
...
...
@@ -4,21 +4,11 @@
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
</view>
<view
class=
"graspTheSituation-content flex"
>
<view
class=
"graspTheSituation-left flex"
>
<view
v-for=
"(l,index) in letftTitleList"
:key=
"index"
>
{{
l
}}
</view>
</view>
<view
class=
"graspTheSituation-right flex"
>
<view
class=
"graspTheSituation-num flex"
>
<text>
2
<text>
%
</text></text>
<text>
53
<text>
%
</text></text>
</view>
<view
class=
"graspTheSituation-num flex"
>
<text>
2
<text>
%
</text></text>
<text>
62
<text>
%
</text></text>
</view>
<view
class=
"graspTheSituation-num flex"
>
<text>
2
<text>
%
</text></text>
<text>
12
<text>
%
</text></text>
<view
class=
"graspTheSituation-num flex"
v-for=
"(item,index) in DifficultyRateList"
:key=
"index"
>
<text>
{{
item
.
Difficulty
}}
</text>
<text>
{{
item
.
ScoreRate
}}
<text>
%
</text></text>
<text>
{{
item
.
AvgScoreRate
}}
<text>
%
</text></text>
</view>
</view>
...
...
@@ -37,7 +27,7 @@
export
default
{
props
:
{
DifficultyRateList
:[]
},
components
:
{},
setup
()
{
...
...
src/pages/index/scoreDetails.vue
View file @
4e7cafc5
...
...
@@ -12,13 +12,13 @@
</view>
<view
class=
"scoreDetails-header-tetx"
>
<view
class=
"scoreDetails-header-name"
>
周一围
{{
ExamScore
.
StuName
}}
</view>
<view
class=
"scoreDetails-header-title"
>
化学成绩详情
</view>
<view
class=
"scoreDetails-header-title"
>
{{
ExamScore
.
ExamName
}}
</view>
</view>
<view
class=
"scoreDetails-header-num flex"
>
<view>
总分
</view>
<text>
92
</text>
<text>
{{
ExamScore
.
TScore
}}
</text>
</view>
</view>
<view
class=
"scoreDetails-Fraction flex"
>
...
...
@@ -26,8 +26,7 @@
<view
class=
"scoreDetails-Fraction-img activeOne"
></view>
<view
class=
"scoreDetails-Fraction-num"
>
<view>
<text>
45
</text>
名
<text>
{{
ExamScore
.
Rank
}}
</text>
</view>
<view>
排名
</view>
</view>
...
...
@@ -36,8 +35,7 @@
<view
class=
"scoreDetails-Fraction-img activeTwo"
></view>
<view
class=
"scoreDetails-Fraction-num"
>
<view>
<text>
45
</text>
%
<text>
{{
ExamScore
.
ScoreRate
*
100
}}
</text>
%
</view>
<view>
得分率
</view>
</view>
...
...
@@ -46,7 +44,7 @@
<view
class=
"scoreDetails-Fraction-img activeThree"
></view>
<view
class=
"scoreDetails-Fraction-num"
>
<view>
<text>
45
</text>
<text>
{{
ExamScore
.
RankRate
*
100
}}
</text>
%
</view>
<view>
领先度
</view>
</view>
...
...
@@ -54,29 +52,29 @@
</view>
<view
class=
"scoreDetails-title flex"
>
<text>
各小题得分分析考
</text>
<view>
(共
53条
)
</view>
<view>
(共
{{
ExamScore
.
ScoreList
.
length
}}
小题
)
</view>
</view>
<analysisTest></analysisTest>
<analysisTest
:ScoreList=
"ExamScore.ScoreList"
></analysisTest>
<view
class=
"scoreDetails-title flex"
>
<text>
各板块掌握情况
</text>
</view>
<view
class=
"index-student-information"
>
<penta></penta>
<allGraspTheSituation></allGraspTheSituation>
<penta
:ModuleList=
"ExamScore.ModuleList"
></penta>
<allGraspTheSituation
:ModuleList=
"ExamScore.ModuleList"
></allGraspTheSituation>
</view>
<view
class=
"scoreDetails-title flex"
>
<text>
试卷难度分析
</text>
</view>
<view
class=
"index-student-information"
>
<line></line>
<dfficultyAnalysis></dfficultyAnalysis>
<line
:DifficultyList=
"ExamScore.DifficultyList"
></line>
<dfficultyAnalysis
:DifficultyList=
"ExamScore.DifficultyList"
></dfficultyAnalysis>
</view>
<view
class=
"scoreDetails-title flex"
>
<text>
难度掌握情况
</text>
</view>
<view
class=
"index-student-information"
>
<triangle></triangle>
<graspTheSituation></graspTheSituation>
<triangle
:DifficultyRateList=
"ExamScore.DifficultyRateList"
></triangle>
<graspTheSituation
:DifficultyRateList=
"ExamScore.DifficultyRateList"
></graspTheSituation>
</view>
</view>
</
template
>
...
...
@@ -127,24 +125,22 @@
proxy
}
=
getCurrentInstance
();
let
data
=
reactive
({
ActiveMsg
:
{
pageIndex
:
1
,
pageSize
:
10
,
ActivityType
:
0
,
SelectIsEnd
:
0
,
userData
:
{},
Msg
:{
ExamId
:
0
,
StuUId
:
0
},
ActivityList
:
[],
pageData
:
{
LearningGardenList
:
[]
},
SurveyObj
:{
ActivitySurveyId
:
0
,
ActivitySurveyGuestId
:
0
,
},
userData
:
{}
ExamScore
:{},
});
let
methods
=
{
//获取学生成绩
getExamStuScore
(){
proxy
.
$request
(
"/Exam/GetExamStuScoreInfo"
,
data
.
Msg
).
then
(
res
=>
{
data
.
ExamScore
=
res
.
Data
;
})
},
back
()
{
uni
.
navigateTo
({
url
:
'/pages/index/index'
...
...
@@ -160,8 +156,13 @@
...
methods
,
};
},
onLoad
(
options
){
this
.
Msg
.
ExamId
=
options
.
examId
;
this
.
Msg
.
StuUId
=
options
.
stuUId
;
},
onShow
()
{
this
.
userData
=
uni
.
getStorageSync
(
'userInfo'
);
this
.
getExamStuScore
();
},
onShareAppMessage
()
{
return
{
...
...
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