|
@@ -2,7 +2,7 @@
|
|
|
<el-container>
|
|
|
<el-main class="el-main-padding">
|
|
|
<el-row>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="7">
|
|
|
<el-form>
|
|
|
<el-form-item label="考试批次">
|
|
|
<el-select
|
|
@@ -26,7 +26,32 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-col>
|
|
|
- <el-col :span="16">
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="场次">
|
|
|
+ <el-select
|
|
|
+ clearable
|
|
|
+ :disabled="examStageDisabled4Search"
|
|
|
+ :remote-method="queryExamStages4Search"
|
|
|
+ remote
|
|
|
+ :loading="queryExamStages4SearchLoading"
|
|
|
+ :filterable="false"
|
|
|
+ v-model="examStageId"
|
|
|
+ placeholder="请选择"
|
|
|
+ size="small"
|
|
|
+ @change="changeExamStage"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in examStageList4Search"
|
|
|
+ :label="item.stageOrder"
|
|
|
+ :value="item.id"
|
|
|
+ :key="item.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
<el-form>
|
|
|
<el-form-item label="考试数据同步状态">
|
|
|
<el-progress
|
|
@@ -239,6 +264,7 @@ import "echarts/lib/component/tooltip";
|
|
|
import "echarts/lib/component/title";
|
|
|
import "echarts/lib/chart/bar";
|
|
|
import "echarts/lib/chart/line";
|
|
|
+import { EXAM_WORK_API } from "@/constants/constants";
|
|
|
export default {
|
|
|
components: { "v-chart": ECharts },
|
|
|
data() {
|
|
@@ -247,6 +273,7 @@ export default {
|
|
|
orgList: [],
|
|
|
courseList: [],
|
|
|
examId: "",
|
|
|
+ examStageId: "",
|
|
|
orgId: "",
|
|
|
courseId: "",
|
|
|
activeName: "first",
|
|
@@ -256,7 +283,11 @@ export default {
|
|
|
pieOptions: {},
|
|
|
exportOrgLoading: false,
|
|
|
exportCourseLoading: false,
|
|
|
- examSyncPercentage: 0
|
|
|
+ examSyncPercentage: 0,
|
|
|
+ examStageDisabled4Search: true,
|
|
|
+ queryExamStages4SearchLoading: false,
|
|
|
+ examStageList4Search: [],
|
|
|
+ currentExamType: null
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -303,6 +334,8 @@ export default {
|
|
|
.post(
|
|
|
"/api/ecs_oe_admin/exam/student/statistic/by/org?examId=" +
|
|
|
this.examId +
|
|
|
+ "&examStageId=" +
|
|
|
+ this.examStageId +
|
|
|
"&orgId=" +
|
|
|
this.orgId
|
|
|
)
|
|
@@ -319,6 +352,7 @@ export default {
|
|
|
.get("/api/ecs_oe_admin/exam/student/courseProgress/list", {
|
|
|
params: {
|
|
|
examId: this.examId,
|
|
|
+ examStageId: this.examstageId,
|
|
|
courseId: this.courseId
|
|
|
}
|
|
|
})
|
|
@@ -340,6 +374,7 @@ export default {
|
|
|
.get("/api/ecs_oe_admin/exam/student/findCoursesByExamIdAndOrgId", {
|
|
|
params: {
|
|
|
examId: this.examId,
|
|
|
+ examStageId: this.examStageId,
|
|
|
orgId: this.orgId
|
|
|
}
|
|
|
})
|
|
@@ -355,11 +390,37 @@ export default {
|
|
|
var exam = this.examList.filter(item => {
|
|
|
return item.id == examId;
|
|
|
})[0];
|
|
|
- this.getPieData(exam.examType);
|
|
|
+ this.currentExamType = exam.examType;
|
|
|
+ this.getPieData(this.currentExamType);
|
|
|
+ this.getCourses();
|
|
|
+ this.getOrgExamInfos();
|
|
|
+ this.getCourseProgress();
|
|
|
+
|
|
|
+ //场次联动
|
|
|
+ if (this.examList.length > 0) {
|
|
|
+ let examArr = this.examList.filter(p => p.id == examId);
|
|
|
+ if (examArr && examArr.length > 0) {
|
|
|
+ let exam = examArr[0];
|
|
|
+ if (
|
|
|
+ exam.specialSettingsEnabled &&
|
|
|
+ exam.specialSettingsType == "STAGE_BASED"
|
|
|
+ ) {
|
|
|
+ this.examStageDisabled4Search = false;
|
|
|
+ this.queryExamStages4Search("");
|
|
|
+ } else {
|
|
|
+ this.examStageList4Search = [];
|
|
|
+ this.examStageDisabled4Search = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ changeExamStage() {
|
|
|
+ this.getPieData(this.currentExamType);
|
|
|
this.getCourses();
|
|
|
this.getOrgExamInfos();
|
|
|
this.getCourseProgress();
|
|
|
},
|
|
|
+
|
|
|
getPieData(examType) {
|
|
|
var completedWord =
|
|
|
examType == "ONLINE" || examType == "ONLINE_HOMEWORK"
|
|
@@ -375,7 +436,9 @@ export default {
|
|
|
this.$http
|
|
|
.post(
|
|
|
"/api/ecs_oe_admin/exam/student/statistic/by/finished?examId=" +
|
|
|
- this.examId
|
|
|
+ this.examId +
|
|
|
+ "&examStageId=" +
|
|
|
+ this.examStageId
|
|
|
)
|
|
|
.then(response => {
|
|
|
var resp = response.data;
|
|
@@ -638,6 +701,33 @@ export default {
|
|
|
type: "error"
|
|
|
});
|
|
|
});
|
|
|
+ },
|
|
|
+ queryExamStages4Search(name) {
|
|
|
+ this.queryExamStages(this.examId, name, "search");
|
|
|
+ },
|
|
|
+ queryExamStages(examId, name, where) {
|
|
|
+ debugger;
|
|
|
+ console.log("queryExams; name: " + name);
|
|
|
+ let url =
|
|
|
+ EXAM_WORK_API +
|
|
|
+ "/examStage/queryByNameLike?examId=" +
|
|
|
+ examId +
|
|
|
+ "&enable=true&name=" +
|
|
|
+ name;
|
|
|
+ this.$httpWithMsg
|
|
|
+ .get(url)
|
|
|
+ .then(response => {
|
|
|
+ if ("search" == where) {
|
|
|
+ this.queryExamStages4SearchLoading = false;
|
|
|
+ this.examStageList4Search = response.data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(response => {
|
|
|
+ console.log(response);
|
|
|
+ if ("search" == where) {
|
|
|
+ this.queryExamStages4SearchLoading = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
created() {
|