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
4f2dd5ec
Commit
4f2dd5ec
authored
May 27, 2022
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
7caa1d8c
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
106 additions
and
150 deletions
+106
-150
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
examComponents.vue
src/components/index/examComponents.vue
+1
-1
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 @
4f2dd5ec
...
...
@@ -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 @
4f2dd5ec
...
...
@@ -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 @
4f2dd5ec
...
...
@@ -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/examComponents.vue
View file @
4f2dd5ec
...
...
@@ -73,7 +73,7 @@
let
methods
=
{
scoreDetails
(){
uni
.
reLaunch
({
url
:
'/pages/index/scoreDetails'
url
:
'/pages/index/scoreDetails
?examId=6&stuUId=14135454
'
});
}
}
...
...
src/components/index/scoreDetails/allGraspTheSituation.vue
View file @
4f2dd5ec
...
...
@@ -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 @
4f2dd5ec
...
...
@@ -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 @
4f2dd5ec
...
...
@@ -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 @
4f2dd5ec
...
...
@@ -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 @
4f2dd5ec
...
...
@@ -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