|
@@ -30,12 +30,12 @@
|
|
src="@/assets/images/analysis/run1000.png" />
|
|
src="@/assets/images/analysis/run1000.png" />
|
|
<img v-if="query.exam_name == 'basketball' ||
|
|
<img v-if="query.exam_name == 'basketball' ||
|
|
query.exam_name == 'basketballv1'
|
|
query.exam_name == 'basketballv1'
|
|
- " src="@/assets/images/analysis/basketball.png" />
|
|
|
|
|
|
+ " src="@/assets/images/analysis/basketball.png" />
|
|
<img v-if="query.exam_name == 'football' || query.exam_name == 'footballv1'
|
|
<img v-if="query.exam_name == 'football' || query.exam_name == 'footballv1'
|
|
- " src="@/assets/images/analysis/football.png" />
|
|
|
|
|
|
+ " src="@/assets/images/analysis/football.png" />
|
|
<img v-if="query.exam_name == 'badminton' ||
|
|
<img v-if="query.exam_name == 'badminton' ||
|
|
query.exam_name == 'badmintonv1'
|
|
query.exam_name == 'badmintonv1'
|
|
- " src="@/assets/images/analysis/badminton.png" />
|
|
|
|
|
|
+ " src="@/assets/images/analysis/badminton.png" />
|
|
<img v-if="query.exam_name == 'pingpong'" src="@/assets/images/analysis/pingpong.png" />
|
|
<img v-if="query.exam_name == 'pingpong'" src="@/assets/images/analysis/pingpong.png" />
|
|
<img v-if="query.exam_name == 'volleyball'" src="@/assets/images/analysis/volleyball.png" />
|
|
<img v-if="query.exam_name == 'volleyball'" src="@/assets/images/analysis/volleyball.png" />
|
|
<img v-if="query.exam_name == 'solidball'" src="@/assets/images/analysis/solidBall.png" />
|
|
<img v-if="query.exam_name == 'solidball'" src="@/assets/images/analysis/solidBall.png" />
|
|
@@ -78,14 +78,14 @@
|
|
<div class="main-b" :class="{ 'main-b-margintop': details.score == 0 }">
|
|
<div class="main-b" :class="{ 'main-b-margintop': details.score == 0 }">
|
|
<div class="main-b-title">分数评级</div>
|
|
<div class="main-b-title">分数评级</div>
|
|
<div class="main-b-con">
|
|
<div class="main-b-con">
|
|
- <div class="drawingItem" v-if="JSON.stringify(details.std) != '{}' && details.std.scores != undefined">
|
|
|
|
|
|
+ <div class="drawingItem" v-if="JSON.stringify(details.std) != '{}' && details.std?.scores != undefined">
|
|
<span class="a" :style="{ width: details.std.scores[0] * 100 + '%' }">不及格</span><span class="b" :style="{
|
|
<span class="a" :style="{ width: details.std.scores[0] * 100 + '%' }">不及格</span><span class="b" :style="{
|
|
width:
|
|
width:
|
|
(details.std.scores[1] - details.std.scores[0]) * 100 + '%',
|
|
(details.std.scores[1] - details.std.scores[0]) * 100 + '%',
|
|
}">及格</span><span class="c" :style="{
|
|
}">及格</span><span class="c" :style="{
|
|
- width:
|
|
|
|
- (details.std.scores[2] - details.std.scores[1]) * 100 + '%',
|
|
|
|
-}">良好</span><span class="d" :style="{
|
|
|
|
|
|
+ width:
|
|
|
|
+ (details.std.scores[2] - details.std.scores[1]) * 100 + '%',
|
|
|
|
+ }">良好</span><span class="d" :style="{
|
|
width:
|
|
width:
|
|
(details.std.scores[3] - details.std.scores[2]) * 100 + '%',
|
|
(details.std.scores[3] - details.std.scores[2]) * 100 + '%',
|
|
}">优秀</span>
|
|
}">优秀</span>
|
|
@@ -93,7 +93,7 @@
|
|
<div class="drawingItem" v-else>
|
|
<div class="drawingItem" v-else>
|
|
<span class="a">不及格</span><span class="b">及格</span><span class="c">良好</span><span class="d">优秀</span>
|
|
<span class="a">不及格</span><span class="b">及格</span><span class="c">良好</span><span class="d">优秀</span>
|
|
</div>
|
|
</div>
|
|
- <div v-if="JSON.stringify(details.std) != '{}' && details.std.scores != undefined">
|
|
|
|
|
|
+ <div v-if="JSON.stringify(details.std) != '{}' && details.std?.scores != undefined">
|
|
<i class="branchA scoreType">成绩</i>
|
|
<i class="branchA scoreType">成绩</i>
|
|
<i class="branchB scoreType" :style="{
|
|
<i class="branchB scoreType" :style="{
|
|
left: (details.std.scores[0] / details.std.scores[3]) * 100 + '%',
|
|
left: (details.std.scores[0] / details.std.scores[3]) * 100 + '%',
|
|
@@ -108,7 +108,7 @@
|
|
left: (details.std.scores[3] / details.std.scores[3]) * 100 + '%',
|
|
left: (details.std.scores[3] / details.std.scores[3]) * 100 + '%',
|
|
}">{{ details.std.values[3] }}</i>
|
|
}">{{ details.std.values[3] }}</i>
|
|
</div>
|
|
</div>
|
|
- <div v-if="JSON.stringify(details.std) != '{}' && details.std.scores != undefined">
|
|
|
|
|
|
+ <div v-if="JSON.stringify(details.std) != '{}' && details.std?.scores != undefined">
|
|
<i class="branchA">分数</i>
|
|
<i class="branchA">分数</i>
|
|
<i class="branchB" :style="{
|
|
<i class="branchB" :style="{
|
|
left: (details.std.scores[0] / details.std.scores[3]) * 100 + '%',
|
|
left: (details.std.scores[0] / details.std.scores[3]) * 100 + '%',
|
|
@@ -130,7 +130,7 @@
|
|
<i class="branchD">90</i>
|
|
<i class="branchD">90</i>
|
|
<i class="branchE">100</i>
|
|
<i class="branchE">100</i>
|
|
</div>
|
|
</div>
|
|
- <div v-if="JSON.stringify(details.std) != '{}' && details.std.scores != undefined" class="currentDian" :style="{
|
|
|
|
|
|
+ <div v-if="JSON.stringify(details.std) != '{}' && details.std?.scores != undefined" class="currentDian" :style="{
|
|
left:
|
|
left:
|
|
(details.score / details.std.scores[3] > 1
|
|
(details.score / details.std.scores[3] > 1
|
|
? 1
|
|
? 1
|
|
@@ -150,30 +150,30 @@
|
|
<div class="main-c">
|
|
<div class="main-c">
|
|
<!--立定跳远-->
|
|
<!--立定跳远-->
|
|
<Jump :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['jump'].includes(query.exam_name)
|
|
<Jump :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['jump'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--实心球-->
|
|
<!--实心球-->
|
|
<SolidBall :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<SolidBall :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['solidball'].includes(query.exam_name)
|
|
['solidball'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--脚环跑步-->
|
|
<!--脚环跑步-->
|
|
<Runa :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<Runa :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['runa800', 'runa1000'].includes(query.exam_name)
|
|
['runa800', 'runa1000'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--跑步-->
|
|
<!--跑步-->
|
|
<Run :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<Run :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['run50', 'run60', 'run100', 'run200', 'run400', 'run800', 'run1000', 'run15x4', 'run50x8'].includes(query.exam_name)
|
|
['run50', 'run60', 'run100', 'run200', 'run400', 'run800', 'run1000', 'run15x4', 'run50x8'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--仰卧起坐-->
|
|
<!--仰卧起坐-->
|
|
<SitUp :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['situp'].includes(query.exam_name)
|
|
<SitUp :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['situp'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--引体向上-->
|
|
<!--引体向上-->
|
|
<PullUp :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<PullUp :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['pullup'].includes(query.exam_name)
|
|
['pullup'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--跳绳类-->
|
|
<!--跳绳类-->
|
|
<RopeSkipping :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<RopeSkipping :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['jumprope', 'skiprope'].includes(query.exam_name)
|
|
['jumprope', 'skiprope'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--球类-->
|
|
<!--球类-->
|
|
<Balls :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<Balls :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
[
|
|
[
|
|
@@ -186,21 +186,21 @@
|
|
'badminton',
|
|
'badminton',
|
|
'pingpong',
|
|
'pingpong',
|
|
].includes(query.exam_name)
|
|
].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--斜身引体-->
|
|
<!--斜身引体-->
|
|
<SidePullUp :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<SidePullUp :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['sidepullup'].includes(query.exam_name)
|
|
['sidepullup'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--三级蛙跳-->
|
|
<!--三级蛙跳-->
|
|
<TriJump :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['trijump'].includes(query.exam_name)
|
|
<TriJump :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['trijump'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--铅球-->
|
|
<!--铅球-->
|
|
<ShotPut :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
<ShotPut :detailsData="details" v-if="JSON.stringify(details) != '{}' &&
|
|
['shotput'].includes(query.exam_name)
|
|
['shotput'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<!--急行跳远-->
|
|
<!--急行跳远-->
|
|
<LongJump :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['longjump'].includes(query.exam_name)
|
|
<LongJump :detailsData="details" v-if="JSON.stringify(details) != '{}' && ['longjump'].includes(query.exam_name)
|
|
- " />
|
|
|
|
|
|
+ " />
|
|
<div class="tip">
|
|
<div class="tip">
|
|
<!-- 温馨提示:<br />
|
|
<!-- 温馨提示:<br />
|
|
因为光线或人员遮挡等环境问题,导致测试数据偶尔有偏差,最终解释权归卓浦士科技所有。<br />客服热线:<a
|
|
因为光线或人员遮挡等环境问题,导致测试数据偶尔有偏差,最终解释权归卓浦士科技所有。<br />客服热线:<a
|
|
@@ -236,45 +236,70 @@ const data = reactive<any>({
|
|
const { query, details, gradeType } = toRefs(data);
|
|
const { query, details, gradeType } = toRefs(data);
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 项目详情
|
|
|
|
|
|
+ * 测试详情
|
|
*/
|
|
*/
|
|
-const getDetails = () => {
|
|
|
|
|
|
+const getTestExamDetails = () => {
|
|
|
|
+ let params = {
|
|
|
|
+ test_key: query.value.test_key,
|
|
|
|
+ stu_key: query.value.stu_key,
|
|
|
|
+ exam_name: query.value.exam_name
|
|
|
|
+ };
|
|
|
|
+ proxy?.$http.analysis.testExamDetails(params)
|
|
|
|
+ .then((res: any) => {
|
|
|
|
+ //console.log(res);
|
|
|
|
+ details.value = res.data || {};
|
|
|
|
+ getDetails();
|
|
|
|
+ })
|
|
|
|
+ .catch(() => { });
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 上课详情
|
|
|
|
+*/
|
|
|
|
+const getTrainExamDetails = () => {
|
|
let params = {
|
|
let params = {
|
|
exam_name: query.value.exam_name,
|
|
exam_name: query.value.exam_name,
|
|
student_id: query.value.student_id,
|
|
student_id: query.value.student_id,
|
|
- result_id: query.value.result_id
|
|
|
|
|
|
+ result_ids: query.value.result_ids
|
|
};
|
|
};
|
|
- proxy?.$http.common.reportDetails(params)
|
|
|
|
|
|
+ proxy?.$http.analysis.trainExamDetails(params)
|
|
.then((res: any) => {
|
|
.then((res: any) => {
|
|
//console.log(res);
|
|
//console.log(res);
|
|
details.value = res.data || {};
|
|
details.value = res.data || {};
|
|
- let obj = gradeType.value.find((item: any) => {
|
|
|
|
- return item.value == details.value.grade;
|
|
|
|
- });
|
|
|
|
- details.value.grade_name = obj.name;
|
|
|
|
- details.value.unit = dic.project.unit[query.value.exam_name];
|
|
|
|
- details.value.examsName = dic.project[query.value.exam_name];
|
|
|
|
- details.value.image_url_list = details.value.image_url
|
|
|
|
- ? details.value.image_url.split(" ")
|
|
|
|
- : [];
|
|
|
|
- if (['trijump', 'solidball', 'shotput', 'longjump'].includes(query.value.exam_name)) {
|
|
|
|
- details.value.result = Number(details.value.result / 100).toFixed(2);
|
|
|
|
- } else {
|
|
|
|
- details.value.result =
|
|
|
|
- String(details.value.result).indexOf(".") == -1
|
|
|
|
- ? details.value.result
|
|
|
|
- : Number(details.value.result).toFixed(1);
|
|
|
|
- }
|
|
|
|
- if (
|
|
|
|
- ["runa800", "runa1000"].includes(query.value.exam_name) &&
|
|
|
|
- details.value.result == 0
|
|
|
|
- ) {
|
|
|
|
- proxy?.$modal.alertError(`无数据原因:${details.value.comments}`);
|
|
|
|
- }
|
|
|
|
|
|
+ getDetails();
|
|
})
|
|
})
|
|
.catch(() => { });
|
|
.catch(() => { });
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * 重组详情
|
|
|
|
+*/
|
|
|
|
+const getDetails = () => {
|
|
|
|
+ let obj = gradeType.value.find((item: any) => {
|
|
|
|
+ return item.value == details.value.grade;
|
|
|
|
+ });
|
|
|
|
+ details.value.grade_name = obj.name;
|
|
|
|
+ details.value.unit = dic.project.unit[query.value.exam_name];
|
|
|
|
+ details.value.examsName = dic.project[query.value.exam_name];
|
|
|
|
+ details.value.image_url_list = details.value.image_url
|
|
|
|
+ ? details.value.image_url.split(" ")
|
|
|
|
+ : [];
|
|
|
|
+ if (['trijump', 'solidball', 'shotput', 'longjump'].includes(query.value.exam_name)) {
|
|
|
|
+ details.value.result = Number(details.value.result / 100).toFixed(2);
|
|
|
|
+ } else {
|
|
|
|
+ details.value.result =
|
|
|
|
+ String(details.value.result).indexOf(".") == -1
|
|
|
|
+ ? details.value.result
|
|
|
|
+ : Number(details.value.result).toFixed(1);
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ ["runa800", "runa1000"].includes(query.value.exam_name) &&
|
|
|
|
+ details.value.result == 0
|
|
|
|
+ ) {
|
|
|
|
+ proxy?.$modal.alertError(`无数据原因:${details.value.comments}`);
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
onBeforeMount(() => {
|
|
onBeforeMount(() => {
|
|
const myInfo: any = localStorage.getItem("userInfo");
|
|
const myInfo: any = localStorage.getItem("userInfo");
|
|
const userinfo = JSON.parse(myInfo)
|
|
const userinfo = JSON.parse(myInfo)
|
|
@@ -283,11 +308,16 @@ onBeforeMount(() => {
|
|
})
|
|
})
|
|
gradeType.value = obj.child || [];
|
|
gradeType.value = obj.child || [];
|
|
query.value = route.query;
|
|
query.value = route.query;
|
|
-
|
|
|
|
|
|
+ if (query.value.test_key) {
|
|
|
|
+ //测试
|
|
|
|
+ getTestExamDetails();
|
|
|
|
+ } else {
|
|
|
|
+ //上课
|
|
|
|
+ getTrainExamDetails();
|
|
|
|
+ }
|
|
})
|
|
})
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
- getDetails();
|
|
|
|
})
|
|
})
|
|
|
|
|
|
</script>
|
|
</script>
|
|
@@ -298,7 +328,8 @@ onMounted(() => {
|
|
font-size: calc(1280px / 106);
|
|
font-size: calc(1280px / 106);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-.main {
|
|
|
|
|
|
+
|
|
|
|
+::v-deep(.main) {
|
|
background: #efefef;
|
|
background: #efefef;
|
|
padding-bottom: 0.65rem;
|
|
padding-bottom: 0.65rem;
|
|
min-height: calc(100vh - 0.65rem);
|
|
min-height: calc(100vh - 0.65rem);
|