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
90be3484
Commit
90be3484
authored
May 27, 2022
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/youjie/thinkapp
parents
05d2fffe
24b90cb5
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
585 additions
and
155 deletions
+585
-155
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
examDetailsComponents.vue
src/components/index/scoreDetails/examDetailsComponents.vue
+272
-0
graspTheSituation.vue
src/components/index/scoreDetails/graspTheSituation.vue
+5
-15
examList.vue
src/components/index/workSituation/examList.vue
+39
-5
pages.json
src/pages.json
+6
-0
examDetails.vue
src/pages/index/examDetails.vue
+159
-0
jobDetails.vue
src/pages/index/jobDetails.vue
+1
-1
scoreDetails.vue
src/pages/index/scoreDetails.vue
+31
-30
workSituation.vue
src/pages/index/workSituation.vue
+3
-0
No files found.
src/components/charts/line.vue
View file @
90be3484
...
@@ -17,8 +17,10 @@
...
@@ -17,8 +17,10 @@
onMounted
,
onMounted
,
}
from
"vue"
;
}
from
"vue"
;
export
default
{
export
default
{
props
:
{},
props
:
{
setup
()
{
DifficultyList
:[]
},
setup
(
props
)
{
let
data
=
reactive
({
let
data
=
reactive
({
chartData
:
{},
chartData
:
{},
opts
:
{
opts
:
{
...
@@ -70,11 +72,19 @@
...
@@ -70,11 +72,19 @@
//模拟从服务器获取数据时的延时
//模拟从服务器获取数据时的延时
setTimeout
(()
=>
{
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
=
{
let
res
=
{
categories
:
[
"简单"
,
"中档题"
,
"难题"
]
,
categories
:
cate
,
series
:
[{
series
:
[{
name
:
"题目数量"
,
name
:
"题目数量"
,
data
:
[
4
,
16
,
5
]
,
data
:
serNum
,
textColor
:
"#CE8086"
,
textColor
:
"#CE8086"
,
type
:
"column"
,
type
:
"column"
,
index
:
0
,
index
:
0
,
...
@@ -86,7 +96,7 @@
...
@@ -86,7 +96,7 @@
color
:
"#282828"
,
color
:
"#282828"
,
textColor
:
"#282828"
,
textColor
:
"#282828"
,
index
:
1
,
index
:
1
,
data
:
[
8
,
62
,
30
]
,
data
:
serScore
,
textOffset
:
-
20
textOffset
:
-
20
}
}
]
]
...
...
src/components/charts/penta.vue
View file @
90be3484
...
@@ -18,8 +18,8 @@
...
@@ -18,8 +18,8 @@
onMounted
,
onMounted
,
}
from
"vue"
;
}
from
"vue"
;
export
default
{
export
default
{
props
:
{}
,
props
:
[
"ModuleList"
]
,
setup
()
{
setup
(
props
)
{
let
data
=
reactive
({
let
data
=
reactive
({
chartData
:
{},
chartData
:
{},
...
@@ -52,8 +52,16 @@
...
@@ -52,8 +52,16 @@
//模拟从服务器获取数据时的延时
//模拟从服务器获取数据时的延时
setTimeout
(()
=>
{
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
=
{
let
res
=
{
categories
:
[
"化学与生活"
,
"物质分类"
,
"物质的量综合"
,
"离子反应"
,
"氧还原反应"
,
"化学实验"
,
"元素及其化合物"
]
,
categories
:
cate
,
series
:
[
series
:
[
{
{
name
:
""
,
name
:
""
,
...
@@ -62,11 +70,11 @@
...
@@ -62,11 +70,11 @@
},
},
{
{
name
:
"平均得分率"
,
name
:
"平均得分率"
,
data
:
[
80
,
66
,
50
,
90
,
53
,
60
,
20
]
data
:
avgRate
},
},
{
{
name
:
"个人得分率"
,
name
:
"个人得分率"
,
data
:
[
74
,
87
,
69
,
97
,
16
,
16
,
88
]
data
:
grRate
},
},
]
]
...
...
src/components/charts/triangle.vue
View file @
90be3484
...
@@ -18,8 +18,10 @@
...
@@ -18,8 +18,10 @@
onMounted
,
onMounted
,
}
from
"vue"
;
}
from
"vue"
;
export
default
{
export
default
{
props
:
{},
props
:
{
setup
()
{
DifficultyRateList
:[]
},
setup
(
props
)
{
let
data
=
reactive
({
let
data
=
reactive
({
chartData
:
{},
chartData
:
{},
...
@@ -52,8 +54,16 @@
...
@@ -52,8 +54,16 @@
//模拟从服务器获取数据时的延时
//模拟从服务器获取数据时的延时
setTimeout
(()
=>
{
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
=
{
let
res
=
{
categories
:
[
"简单题"
,
"中档题"
,
"难题"
]
,
categories
:
cate
,
series
:
[
series
:
[
{
{
name
:
""
,
name
:
""
,
...
@@ -62,11 +72,11 @@
...
@@ -62,11 +72,11 @@
},
},
{
{
name
:
"平均得分率"
,
name
:
"平均得分率"
,
data
:
[
80
,
66
,
50
]
data
:
avgScore
},
},
{
{
name
:
"个人得分率"
,
name
:
"个人得分率"
,
data
:
[
25
,
87
,
69
]
data
:
grScore
},
},
]
]
...
...
src/components/index/scoreDetails/allGraspTheSituation.vue
View file @
90be3484
...
@@ -4,39 +4,12 @@
...
@@ -4,39 +4,12 @@
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
</view>
</view>
<view
class=
"allGraspTheSituation-content flex"
>
<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-right flex"
>
<view
class=
"allGraspTheSituation-num flex"
>
<view
class=
"allGraspTheSituation-num flex"
v-for=
"(item,index) in ModuleList"
:key=
"index"
>
<text>
2
</text>
<text>
{{
item
.
Module
}}
</text>
<text
class=
"fullScore"
>
100
<text>
%
</text></text>
<text>
{{
item
.
Score
}}
</text>
<text>
12
<text>
.5
</text></text>
<text
class=
"fullScore"
>
{{
item
.
ScoreRate
*
100
}}
<text>
%
</text></text>
</view>
<text
class=
"fullScore"
>
{{
item
.
AvgScoreRate
*
100
}}
<text>
%
</text></text>
<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>
</view>
</view>
</view>
...
@@ -55,7 +28,7 @@
...
@@ -55,7 +28,7 @@
export
default
{
export
default
{
props
:
{
props
:
{
ModuleList
:[]
},
},
components
:
{},
components
:
{},
setup
()
{
setup
()
{
...
@@ -67,8 +40,7 @@
...
@@ -67,8 +40,7 @@
},
},
showPhone
:
false
,
showPhone
:
false
,
showLogin
:
true
,
//多次点击
showLogin
:
true
,
//多次点击
TitleList
:[
'考点'
,
'分数'
,
'个人得分率'
,
'平均得分'
],
TitleList
:[
'考点'
,
'分数'
,
'个人得分率'
,
'平均得分'
]
letftTitleList
:[
'化学与生活'
,
'物质分类'
,
'物质的量综合'
,
'离子反应'
,
'氧化还原反应'
,
'化学实验'
,
'元素及其化合物'
]
});
});
return
{
return
{
...
toRefs
(
data
),
...
toRefs
(
data
),
...
...
src/components/index/scoreDetails/analysisTest.vue
View file @
90be3484
...
@@ -13,41 +13,19 @@
...
@@ -13,41 +13,19 @@
width=
"200"
>
{{
item
}}
</th>
width=
"200"
>
{{
item
}}
</th>
</tr>
</tr>
<tr
class=
"analysisTest-content-right flex"
>
<tr
class=
"analysisTest-content-right flex"
>
<td
class=
"analysisTest-td"
>
<td
class=
"analysisTest-td"
v-for=
"(item,index) in ScoreList"
:key=
"index"
>
<view
class=
"analysisTest-number"
>
1
</view>
<view
class=
"analysisTest-number"
>
{{
item
.
Sort
}}
</view>
<view
class=
"analysisTest-difficulty"
>
<view
class=
"analysisTest-difficulty"
>
<van-icon
name=
"star"
v-for=
"(s,index) in 3"
:key=
"index"
/>
<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>
<view
class=
"analysisTest-KnowledgePoint"
>
化学与生活
</view>
<view
class=
"analysisTest-KnowledgePoint"
>
{{
item
.
KnowledgePoint
}}
</view>
<view
class=
"analysisTest-ScoreOne"
>
1
</view>
<view
class=
"analysisTest-ScoreOne"
>
{{
item
.
QScore
}}
</view>
<view
class=
"analysisTest-ScoreTwo"
>
2
</view>
<view
class=
"analysisTest-ScoreTwo"
>
{{
item
.
Score
}}
</view>
<view
class=
"analysisTest-scoringRate"
>
75%
</view>
<view
class=
"analysisTest-scoringRate"
>
{{
item
.
ScoreRate
*
100
}}
%
</view>
<view
class=
"analysisTest-TheAverageAcore"
>
1.7555555555555555555555
</view>
<view
class=
"analysisTest-TheAverageAcore"
>
{{
item
.
AvgScore
}}
</view>
<view
class=
"analysisTest-averageScoringRate"
>
88%
</view>
<view
class=
"analysisTest-averageScoringRate"
>
{{
item
.
AvgScoreRate
*
100
}}
%
</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>
</td>
</td>
</tr>
</tr>
...
@@ -68,9 +46,7 @@
...
@@ -68,9 +46,7 @@
}
from
"vue"
;
}
from
"vue"
;
export
default
{
export
default
{
props
:
{
props
:
[
"ScoreList"
],
},
components
:
{},
components
:
{},
setup
()
{
setup
()
{
...
...
src/components/index/scoreDetails/dfficultyAnalysis.vue
View file @
90be3484
...
@@ -4,21 +4,11 @@
...
@@ -4,21 +4,11 @@
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
</view>
</view>
<view
class=
"dfficultyAnalysis-content flex"
>
<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-right flex"
>
<view
class=
"dfficultyAnalysis-num flex"
>
<view
class=
"dfficultyAnalysis-num flex"
v-for=
"(item,index) in DifficultyList"
:key=
"index"
>
<text>
2
</text>
<text>
{{
item
.
Difficulty
}}
</text>
<text>
53
<text>
.5
</text></text>
<text>
{{
item
.
Count
}}
</text>
</view>
<text>
{{
item
.
Score
}}
</text>
<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>
</view>
</view>
</view>
...
@@ -37,7 +27,7 @@
...
@@ -37,7 +27,7 @@
export
default
{
export
default
{
props
:
{
props
:
{
DifficultyList
:[]
},
},
components
:
{},
components
:
{},
setup
()
{
setup
()
{
...
@@ -49,8 +39,7 @@
...
@@ -49,8 +39,7 @@
},
},
showPhone
:
false
,
showPhone
:
false
,
showLogin
:
true
,
//多次点击
showLogin
:
true
,
//多次点击
TitleList
:[
'题目难度'
,
'题目数量'
,
'题目分数'
],
TitleList
:[
'题目难度'
,
'题目数量'
,
'题目分数'
]
letftTitleList
:[
'简单题'
,
'中档题'
,
'难题'
]
});
});
return
{
return
{
...
toRefs
(
data
),
...
toRefs
(
data
),
...
...
src/components/index/scoreDetails/examDetailsComponents.vue
0 → 100644
View file @
90be3484
<
template
>
<view
class=
"examDetailsComponents-box"
>
<view
class=
"examDetailsComponents activeTwo mismatchActive flex"
>
<view
class=
"examDetailsComponents-time-box flex"
>
<view
class=
"examDetailsComponents-time flex"
>
<view>
周
</view>
<text>
潇潇
</text>
</view>
<view
class=
"examDetailsComponents-line"
>
<view
class=
"examDetailsComponents-point"
></view>
</view>
</view>
<view
class=
"examDetailsComponents-center-box"
>
<view
class=
"Mismatch-box"
>
<view
class=
"Mismatch-title flex"
>
<van-icon
name=
"warning"
/>
<text>
学员不匹配
</text>
</view>
</view>
<view
class=
"examDetailsComponents-center flex"
>
<view
class=
"examDetailsComponents-left flex"
>
<view
class=
"operation-state flex"
>
<view
class=
"operation-state-img"
></view>
<view
class=
"operation-state-text"
>
未批阅
</view>
</view>
<view
class=
"operation-name"
>
2022-05-22
</view>
</view>
<view
class=
"examDetailsComponents-right flex"
>
<view
class=
"homework-score flex"
>
<view
class=
"homework-score-title"
>
得分
<text>
86
</text>
分
</view>
</view>
<view
class=
"homework-score flex"
>
<view
class=
"homework-score-title"
>
得分率
<text>
86
</text>
分
</view>
</view>
</view>
</view>
</view>
</view>
<view
class=
"examDetailsComponents activeOne flex"
>
<view
class=
"examDetailsComponents-time-box flex"
>
<view
class=
"examDetailsComponents-time flex"
>
<view>
周
</view>
<text>
潇潇
</text>
</view>
<view
class=
"examDetailsComponents-line"
>
<view
class=
"examDetailsComponents-point"
></view>
</view>
</view>
<view
class=
"examDetailsComponents-center-box"
>
<view
class=
"examDetailsComponents-center flex"
>
<view
class=
"examDetailsComponents-left flex"
>
<view
class=
"operation-state flex"
>
<view
class=
"operation-state-img"
></view>
<view
class=
"operation-state-text"
>
批阅
</view>
</view>
<view
class=
"operation-name"
>
2022-05-22
</view>
</view>
<view
class=
"examDetailsComponents-right flex"
>
<view
class=
"homework-score flex"
>
<view
class=
"homework-score-title"
>
得分
<text>
86
</text>
分
</view>
</view>
<view
class=
"homework-score flex"
>
<view
class=
"homework-score-title"
>
得分率
<text>
86
</text>
分
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</
template
>
<
script
>
import
{
reactive
,
toRefs
,
onMounted
,
getCurrentInstance
,
inject
}
from
"vue"
;
export
default
{
props
:
{
},
components
:
{},
setup
()
{
let
data
=
reactive
({
obj
:
{
Name
:
''
,
Photo
:
''
,
},
showPhone
:
false
,
showLogin
:
true
,
//多次点击
});
let
methods
=
{
}
return
{
...
toRefs
(
data
),
...
methods
};
},
};
</
script
>
<
style
scoped
>
.homework-score-title
text
{
font-size
:
46
rpx
;
font-weight
:
800
;
font-style
:
italic
;
padding
:
0
10
rpx
0
17
rpx
;
}
.homework-score-title
{
color
:
#282828
;
font-size
:
20
rpx
;
font-weight
:
400
;
letter-spacing
:
1px
;
}
.homework-score
:first-child
{
margin-right
:
16
rpx
;
}
.homework-score
{
align-items
:
center
;
justify-content
:
space-between
;
}
.examDetailsComponents-right
{
height
:
88
rpx
;
background
:
#FCEEEF
;
padding
:
0
22
rpx
;
border-radius
:
25
rpx
;
justify-content
:
space-between
;
flex-shrink
:
0
;
}
.operation-state-text
{
font-size
:
20
rpx
;
letter-spacing
:
2px
;
}
.examDetailsComponents.activeThree
.operation-state-img
{
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_480.png')
no-repeat
;
background-size
:
22
rpx
22
rpx
;
}
.examDetailsComponents.activeTwo
.operation-state-img
{
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_781.png')
no-repeat
;
background-size
:
22
rpx
22
rpx
;
}
.examDetailsComponents.activeOne
.operation-state-img
{
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653464014000_44.png')
no-repeat
;
background-size
:
22
rpx
22
rpx
;
}
.operation-state-img
{
width
:
22
rpx
;
height
:
22
rpx
;
margin-right
:
9
rpx
;
margin-top
:
4
rpx
;
}
.operation-state
{
font-size
:
20
rpx
;
white-space
:
nowrap
;
color
:
#282828
;
}
.operation-name
{
font-size
:
16
rpx
;
letter-spacing
:
1px
;
font-weight
:
500
;
color
:
#C2BCBA
;
}
.examDetailsComponents-left
{
justify-content
:
space-between
;
align-items
:
center
;
margin-bottom
:
17
rpx
;
}
.examDetailsComponents-center
{
flex-direction
:
column
;
}
.examDetailsComponents.mismatchActive
.Mismatch-box
{
display
:
block
;
}
.Mismatch-title
van-icon
{
font-size
:
42
rpx
;
margin-right
:
8
rpx
;
}
.Mismatch-title
{
height
:
100%
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
36
rpx
;
font-weight
:
bold
;
color
:
#C91727
;
letter-spacing
:
1
rpx
;
}
.Mismatch-box
{
position
:
absolute
;
left
:
0
;
top
:
0
;
bottom
:
0
;
right
:
0
;
display
:
none
;
}
.examDetailsComponents.mismatchActive
.examDetailsComponents-center-box
{
background
:
rgba
(
200
,
23
,
39
,
0.1
);
border
:
2px
solid
#FD3869
;
position
:
relative
;
}
.examDetailsComponents
.examDetailsComponents-center-box
{
background
:
#FFFFFF
;
}
.examDetailsComponents-center-box
{
flex-grow
:
1
;
border-radius
:
30
rpx
;
padding
:
17
rpx
26
rpx
23
rpx
21
rpx
;
margin-bottom
:
40
rpx
;
box-shadow
:
0px
6px
29px
0px
rgba
(
76
,
76
,
76
,
0.09
);
border-radius
:
20px
;
}
.examDetailsComponents.activeThree
.examDetailsComponents-point
{
background
:
#C1C1C1
;
}
.examDetailsComponents.activeTwo
.examDetailsComponents-point
{
background
:
#282828
;
}
.examDetailsComponents.activeOne
.examDetailsComponents-point
{
background
:
#C81727
;
box-shadow
:
0px
0px
12px
0px
rgba
(
200
,
23
,
39
,
0.46
);
}
.examDetailsComponents
.examDetailsComponents-point
{
width
:
19
rpx
;
height
:
19
rpx
;
position
:
absolute
;
top
:
20
rpx
;
left
:
-13
rpx
;
border-radius
:
50%
;
border
:
3px
solid
#FFFFFF
;
box-shadow
:
0px
0px
12px
0px
rgba
(
255
,
255
,
255
,
0.46
);
}
.examDetailsComponents-line
{
width
:
4
rpx
;
height
:
100%
;
background
:
#F1F1F1
;
margin-left
:
46
rpx
;
margin-right
:
46
rpx
;
position
:
relative
;
}
.examDetailsComponents-time
text
{
font-size
:
20
rpx
;
font-weight
:
bold
;
white-space
:
nowrap
;
margin-top
:
18
rpx
;
margin-left
:
4
rpx
;
}
.examDetailsComponents-time
{
color
:
#282828
;
font-size
:
36
rpx
;
font-weight
:
bold
;
letter-spacing
:
1
rpx
;
}
.examDetailsComponents-time-box
{
}
.examDetailsComponents
{
justify-content
:
space-between
;
padding
:
0
50
rpx
;
}
</
style
>
src/components/index/scoreDetails/graspTheSituation.vue
View file @
90be3484
...
@@ -4,21 +4,11 @@
...
@@ -4,21 +4,11 @@
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
<view
v-for=
"(T,index) in TitleList"
:key=
"index"
>
{{
T
}}
</view>
</view>
</view>
<view
class=
"graspTheSituation-content flex"
>
<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-right flex"
>
<view
class=
"graspTheSituation-num flex"
>
<view
class=
"graspTheSituation-num flex"
v-for=
"(item,index) in DifficultyRateList"
:key=
"index"
>
<text>
2
<text>
%
</text></text>
<text>
{{
item
.
Difficulty
}}
</text>
<text>
53
<text>
%
</text></text>
<text>
{{
item
.
ScoreRate
}}
<text>
%
</text></text>
</view>
<text>
{{
item
.
AvgScoreRate
}}
<text>
%
</text></text>
<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>
</view>
</view>
</view>
...
@@ -37,7 +27,7 @@
...
@@ -37,7 +27,7 @@
export
default
{
export
default
{
props
:
{
props
:
{
DifficultyRateList
:[]
},
},
components
:
{},
components
:
{},
setup
()
{
setup
()
{
...
...
src/components/index/workSituation/examList.vue
View file @
90be3484
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<text>
导入考试信息
</text>
<text>
导入考试信息
</text>
</view>
</view>
<view
class=
"examList activeOne"
>
<view
class=
"examList activeOne"
>
<view
class=
"examList-center-box"
@
click=
"
Job
Details"
>
<view
class=
"examList-center-box"
@
click=
"
exam
Details"
>
<view
class=
"examList-center-line"
></view>
<view
class=
"examList-center-line"
></view>
<view
class=
"examList-center flex"
>
<view
class=
"examList-center flex"
>
<view
class=
"examList-left"
>
<view
class=
"examList-left"
>
...
@@ -35,10 +35,15 @@
...
@@ -35,10 +35,15 @@
</view>
</view>
<van-popup
:show=
"show"
:round=
"true"
>
<van-popup
:show=
"show"
:round=
"true"
>
<view
class=
"examList-popup-box"
>
<view
class=
"examList-popup-box"
>
<van-icon
class=
"examList-popup-closure"
name=
"cross"
/>
<van-icon
class=
"examList-popup-closure"
name=
"cross"
@
click=
"show=false"
/>
<view
class=
"examList-popup-title"
>
导入考试信息
</view>
<view
class=
"examList-popup-title"
>
导入考试信息
</view>
<view
class=
"examList-popup-content"
>
<view
class=
"examList-popup-content"
>
<input
class=
"examList-popup-name"
placeholder=
"请输入用户名"
/>
<input
v-model=
"obj.name"
class=
"examList-popup-name"
placeholder=
"请输入考试名称"
>
<view
class=
"examList-popup-fil"
@
click=
"uploadFiles"
>
<van-image
class=
"img"
width=
"32rpx"
height=
"32rpx"
fit=
"cover"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1653639041000_305.png"
/>
选择文件
</view>
</view>
</view>
</view>
</view>
</van-popup>
</van-popup>
...
@@ -70,13 +75,16 @@
...
@@ -70,13 +75,16 @@
show
:
false
,
show
:
false
,
});
});
let
methods
=
{
let
methods
=
{
Job
Details
(){
exam
Details
(){
uni
.
reLaunch
({
uni
.
reLaunch
({
url
:
'/pages/index/
workSituation
'
url
:
'/pages/index/
examDetails
'
});
});
},
},
ImportInformation
(){
ImportInformation
(){
this
.
show
=
true
this
.
show
=
true
},
uploadFiles
(){
}
}
}
}
return
{
return
{
...
@@ -87,6 +95,32 @@
...
@@ -87,6 +95,32 @@
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.img
{
display
:
inline-block
;
position
:
relative
;
top
:
6
rpx
;
margin-right
:
10
rpx
;
}
.examList-popup-fil
{
line-height
:
88
rpx
;
padding
:
0
10
rpx
;
border-radius
:
44
rpx
;
font-size
:
30
rpx
;
color
:
#FFFFFF
;
background
:
#C91727
;
margin-top
:
27
rpx
;
text-align
:
center
;
}
.examList-popup-name
{
background-color
:
#FFFFFF
;
text-align
:
center
;
border
:
1px
solid
#AAAAAA
;
height
:
86
rpx
;
line-height
:
86
rpx
;
padding
:
0
10
rpx
;
border-radius
:
44
rpx
;
font-size
:
30
rpx
;
}
.examList-popup-title
{
.examList-popup-title
{
width
:
100%
;
width
:
100%
;
text-align
:
center
;
text-align
:
center
;
...
...
src/pages.json
View file @
90be3484
...
@@ -20,6 +20,12 @@
...
@@ -20,6 +20,12 @@
"style"
:
{
"style"
:
{
"navigationStyle"
:
"custom"
"navigationStyle"
:
"custom"
}
}
},
{
"path"
:
"pages/index/examDetails"
,
"style"
:
{
"navigationStyle"
:
"custom"
}
},{
},{
"path"
:
"pages/index/workSituation"
,
"path"
:
"pages/index/workSituation"
,
"style"
:
{
"style"
:
{
...
...
src/pages/index/examDetails.vue
0 → 100644
View file @
90be3484
<
template
>
<view
class=
"jobDetails-box"
>
<navbar
class=
"navbarSticky"
bg=
"#F6F6F6"
>
<view
class=
"jobDetails-header-box"
>
<van-icon
class=
"jobDetails-header-left"
name=
"arrow-left"
@
click=
"back"
/>
<text
class=
"jobDetails-header-title"
>
考试详情
</text>
</view>
</navbar>
<view
class=
"jobDetails-content"
>
<view
class=
"jobDetails-content-header"
>
<view
class=
"jobDetails-conten-title flex"
>
<text>
2022年5月28日
</text>
<view>
化学第一次测试
</view>
</view>
<view
class=
"jobDetails-num-box flex"
>
<view
class=
"jobDetails-num flex"
>
<text>
人数
</text>
<view>
15
</view>
</view>
<view
class=
"jobDetails-num flex"
>
<text>
平均得分
</text>
<view>
12
</view>
</view>
</view>
</view>
<view
class=
"index-student-information"
>
<examDetailsComponents></examDetailsComponents>
</view>
</view>
</view>
</
template
>
<
script
>
import
examDetailsComponents
from
'@/components/index/scoreDetails/examDetailsComponents'
import
{
reactive
,
toRefs
,
onMounted
,
getCurrentInstance
,
inject
}
from
"vue"
;
export
default
{
props
:
{
},
components
:
{
examDetailsComponents
},
setup
()
{
let
data
=
reactive
({
obj
:
{
Name
:
''
,
Photo
:
''
,
},
showPhone
:
false
,
showLogin
:
true
,
//多次点击
});
let
methods
=
{
back
(){
uni
.
reLaunch
({
url
:
'/pages/index/workSituation?tabNme='
+
'考试信息'
});
}
}
return
{
...
toRefs
(
data
),
...
methods
};
}
};
</
script
>
<
style
scoped
>
.index-student-information
{
min-height
:
800
rpx
;
background
:
#FFFFFF
;
border-radius
:
50
rpx
50
rpx
0
0
;
padding
:
71
rpx
0
30
rpx
0
;
}
.jobDetails-num
view
{
font-size
:
36
rpx
;
font-weight
:
800
;
font-style
:
italic
;
margin-top
:
15
rpx
;
}
.jobDetails-num
text
{
font-size
:
20
rpx
;
font-weight
:
400
;
}
.jobDetails-num
{
flex-direction
:
column
;
color
:
#CE8086
;
}
.jobDetails-num-box
{
justify-content
:
space-between
;
padding
:
70
rpx
185
rpx
35
rpx
185
rpx
;
}
.jobDetails-conten-title
view
{
font-size
:
50
rpx
;
font-weight
:
800
;
}
.jobDetails-conten-title
text
{
font-size
:
36
rpx
;
font-weight
:
400
;
margin-bottom
:
10
rpx
;
}
.jobDetails-conten-title
{
padding
:
50
rpx
50
rpx
0
50
rpx
;
flex-direction
:
column
;
color
:
#282828
;
letter-spacing
:
1
rpx
;
}
.jobDetails-content-header
{
}
.jobDetails-content
{
position
:
relative
;
z-index
:
2
;
}
.jobDetails-box
{
background
:
#FCEEEF
;
position
:
fixed
;
top
:
0
;
bottom
:
0
;
left
:
0
;
right
:
0
;
z-index
:
0
;
}
.jobDetails-header-title
{
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
0
;
padding
:
37
rpx
31
rpx
;
text-align
:
center
;
letter-spacing
:
1
rpx
;
font-size
:
32
rpx
;
font-weight
:
500
;
color
:
#282828
;
}
.jobDetails-header
{
margin
:
50
rpx
50
rpx
0
50
rpx
;
align-items
:
center
;
}
.jobDetails-header-left
{
font-size
:
40
rpx
;
position
:
relative
;
z-index
:
3
;
}
.jobDetails-header-box
{
padding
:
37
rpx
31
rpx
;
position
:
relative
;
}
.navbarSticky
{
display
:
sticky
;
top
:
0
;
z-index
:
9
;
}
</
style
>
src/pages/index/jobDetails.vue
View file @
90be3484
...
@@ -67,7 +67,7 @@
...
@@ -67,7 +67,7 @@
let
methods
=
{
let
methods
=
{
back
(){
back
(){
uni
.
reLaunch
({
uni
.
reLaunch
({
url
:
'/pages/index/workSituation'
url
:
'/pages/index/workSituation
?tabNme='
+
'作业情况
'
});
});
}
}
}
}
...
...
src/pages/index/scoreDetails.vue
View file @
90be3484
...
@@ -12,13 +12,13 @@
...
@@ -12,13 +12,13 @@
</view>
</view>
<view
class=
"scoreDetails-header-tetx"
>
<view
class=
"scoreDetails-header-tetx"
>
<view
class=
"scoreDetails-header-name"
>
<view
class=
"scoreDetails-header-name"
>
周一围
{{
ExamScore
.
StuName
}}
</view>
</view>
<view
class=
"scoreDetails-header-title"
>
化学成绩详情
</view>
<view
class=
"scoreDetails-header-title"
>
{{
ExamScore
.
ExamName
}}
</view>
</view>
</view>
<view
class=
"scoreDetails-header-num flex"
>
<view
class=
"scoreDetails-header-num flex"
>
<view>
总分
</view>
<view>
总分
</view>
<text>
92
</text>
<text>
{{
ExamScore
.
TScore
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"scoreDetails-Fraction flex"
>
<view
class=
"scoreDetails-Fraction flex"
>
...
@@ -26,8 +26,7 @@
...
@@ -26,8 +26,7 @@
<view
class=
"scoreDetails-Fraction-img activeOne"
></view>
<view
class=
"scoreDetails-Fraction-img activeOne"
></view>
<view
class=
"scoreDetails-Fraction-num"
>
<view
class=
"scoreDetails-Fraction-num"
>
<view>
<view>
<text>
45
</text>
<text>
{{
ExamScore
.
Rank
}}
</text>
名
</view>
</view>
<view>
排名
</view>
<view>
排名
</view>
</view>
</view>
...
@@ -36,8 +35,7 @@
...
@@ -36,8 +35,7 @@
<view
class=
"scoreDetails-Fraction-img activeTwo"
></view>
<view
class=
"scoreDetails-Fraction-img activeTwo"
></view>
<view
class=
"scoreDetails-Fraction-num"
>
<view
class=
"scoreDetails-Fraction-num"
>
<view>
<view>
<text>
45
</text>
<text>
{{
ExamScore
.
ScoreRate
*
100
}}
</text>
%
%
</view>
</view>
<view>
得分率
</view>
<view>
得分率
</view>
</view>
</view>
...
@@ -46,7 +44,7 @@
...
@@ -46,7 +44,7 @@
<view
class=
"scoreDetails-Fraction-img activeThree"
></view>
<view
class=
"scoreDetails-Fraction-img activeThree"
></view>
<view
class=
"scoreDetails-Fraction-num"
>
<view
class=
"scoreDetails-Fraction-num"
>
<view>
<view>
<text>
45
</text>
<text>
{{
ExamScore
.
RankRate
*
100
}}
</text>
%
</view>
</view>
<view>
领先度
</view>
<view>
领先度
</view>
</view>
</view>
...
@@ -54,29 +52,29 @@
...
@@ -54,29 +52,29 @@
</view>
</view>
<view
class=
"scoreDetails-title flex"
>
<view
class=
"scoreDetails-title flex"
>
<text>
各小题得分分析考
</text>
<text>
各小题得分分析考
</text>
<view>
(共
53条
)
</view>
<view>
(共
{{
ExamScore
.
ScoreList
.
length
}}
小题
)
</view>
</view>
</view>
<analysisTest></analysisTest>
<analysisTest
:ScoreList=
"ExamScore.ScoreList"
></analysisTest>
<view
class=
"scoreDetails-title flex"
>
<view
class=
"scoreDetails-title flex"
>
<text>
各板块掌握情况
</text>
<text>
各板块掌握情况
</text>
</view>
</view>
<view
class=
"index-student-information"
>
<view
class=
"index-student-information"
>
<penta></penta>
<penta
:ModuleList=
"ExamScore.ModuleList"
></penta>
<allGraspTheSituation></allGraspTheSituation>
<allGraspTheSituation
:ModuleList=
"ExamScore.ModuleList"
></allGraspTheSituation>
</view>
</view>
<view
class=
"scoreDetails-title flex"
>
<view
class=
"scoreDetails-title flex"
>
<text>
试卷难度分析
</text>
<text>
试卷难度分析
</text>
</view>
</view>
<view
class=
"index-student-information"
>
<view
class=
"index-student-information"
>
<line></line>
<line
:DifficultyList=
"ExamScore.DifficultyList"
></line>
<dfficultyAnalysis></dfficultyAnalysis>
<dfficultyAnalysis
:DifficultyList=
"ExamScore.DifficultyList"
></dfficultyAnalysis>
</view>
</view>
<view
class=
"scoreDetails-title flex"
>
<view
class=
"scoreDetails-title flex"
>
<text>
难度掌握情况
</text>
<text>
难度掌握情况
</text>
</view>
</view>
<view
class=
"index-student-information"
>
<view
class=
"index-student-information"
>
<triangle></triangle>
<triangle
:DifficultyRateList=
"ExamScore.DifficultyRateList"
></triangle>
<graspTheSituation></graspTheSituation>
<graspTheSituation
:DifficultyRateList=
"ExamScore.DifficultyRateList"
></graspTheSituation>
</view>
</view>
</view>
</view>
</
template
>
</
template
>
...
@@ -127,24 +125,22 @@
...
@@ -127,24 +125,22 @@
proxy
proxy
}
=
getCurrentInstance
();
}
=
getCurrentInstance
();
let
data
=
reactive
({
let
data
=
reactive
({
ActiveMsg
:
{
userData
:
{},
pageIndex
:
1
,
Msg
:{
pageSize
:
10
,
ExamId
:
0
,
ActivityType
:
0
,
StuUId
:
0
SelectIsEnd
:
0
,
},
},
ActivityList
:
[],
ExamScore
:{},
pageData
:
{
LearningGardenList
:
[]
},
SurveyObj
:{
ActivitySurveyId
:
0
,
ActivitySurveyGuestId
:
0
,
},
userData
:
{}
});
});
let
methods
=
{
let
methods
=
{
//获取学生成绩
getExamStuScore
(){
proxy
.
$request
(
"/Exam/GetExamStuScoreInfo"
,
data
.
Msg
).
then
(
res
=>
{
data
.
ExamScore
=
res
.
Data
;
})
},
back
()
{
back
()
{
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'/pages/index/index'
url
:
'/pages/index/index'
...
@@ -160,8 +156,13 @@
...
@@ -160,8 +156,13 @@
...
methods
,
...
methods
,
};
};
},
},
onLoad
(
options
){
this
.
Msg
.
ExamId
=
options
.
examId
;
this
.
Msg
.
StuUId
=
options
.
stuUId
;
},
onShow
()
{
onShow
()
{
this
.
userData
=
uni
.
getStorageSync
(
'userInfo'
);
this
.
userData
=
uni
.
getStorageSync
(
'userInfo'
);
this
.
getExamStuScore
();
},
},
onShareAppMessage
()
{
onShareAppMessage
()
{
return
{
return
{
...
...
src/pages/index/workSituation.vue
View file @
90be3484
...
@@ -109,6 +109,9 @@
...
@@ -109,6 +109,9 @@
...
methods
,
...
methods
,
};
};
},
},
onLoad
(
option
)
{
this
.
tabNme
=
option
.
tabNme
},
onShow
()
{
onShow
()
{
this
.
userData
=
uni
.
getStorageSync
(
'userInfo'
);
this
.
userData
=
uni
.
getStorageSync
(
'userInfo'
);
},
},
...
...
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