From 110682b80a5de00394ebef0ee66ef7ab73c6b5e3 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 20 Jan 2022 20:58:03 +0800
Subject: [PATCH] 考试统计查询修改,成绩查询修改,成绩修改调整
---
src/views/trainExam/examStatistics.vue | 592 ++++++++++++++++++++++------------------------------------
1 files changed, 229 insertions(+), 363 deletions(-)
diff --git a/src/views/trainExam/examStatistics.vue b/src/views/trainExam/examStatistics.vue
index 672e33f..699e511 100644
--- a/src/views/trainExam/examStatistics.vue
+++ b/src/views/trainExam/examStatistics.vue
@@ -32,8 +32,9 @@
@row-save="questionBankRowSave"
@row-update="questionBankRowUpdate"
@row-del="questionBankRowDel"
+ @row-click="handleRowClick"
>
- <template slot-scope="{ row }" slot="auditStatus">
+ <!-- <template slot-scope="{ row }" slot="auditStatus">
<el-tag class="dtype">
{{
row.auditStatus == 1
@@ -46,12 +47,12 @@
<i class="yj" v-if="row.auditStatus == 2"></i>
<i class="gz" v-if="row.auditStatus == 3"></i>
</el-tag>
- </template>
+ </template> -->
<template slot="menuLeft">
<!--图例 components-->
- <span>
+ <!-- <span>
<Legend :datas="datalistLIU"></Legend>
- </span>
+ </span> -->
</template>
<template slot-scope="{ row }" slot="menu">
@@ -61,34 +62,59 @@
icon="el-icon-collection"
class="start-kaoshi"
v-if="permission.trainExam_trainPapers"
- @click="startExam(row)"
- >报名清册
- </el-button>
- <el-button
- type="text"
- size="mini"
- icon="el-icon-search"
- v-if="permission.trainExam_index_examScoreViews"
- @click="examScoreViews(row)"
- >成绩查看
+ @click="getExamDetail(row)"
+ >详情
</el-button>
</template>
</avue-crud>
</div>
</el-card>
</el-col>
+ <el-drawer
+ :title="title"
+ :visible.sync="dialog"
+ :modal="true"
+ :modal-append-to-body="true"
+ :append-to-body="true"
+ direction="rtl"
+ size="60%">
+ <avue-crud
+ v-model="formDetail"
+ :option="option"
+ v-if="dialog"
+ :search.sync="search"
+ :table-loading="loading"
+ :data="data"
+ ref="crud"
+ :page.sync="page"
+ @on-load="onLoad"
+ :before-open="beforeOpen"
+ @selection-change="selectionChange"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+
+ >
+ <template slot-scope="{ row }" slot="menu">
+ <el-button
+ type="text"
+ size="mini"
+ icon="el-icon-collection"
+ class="start-kaoshi"
+ v-if="permission.trainExam_trainPapers"
+ @click="getExamDetail(row)"
+ >详情
+ </el-button>
+ </template>
+ </avue-crud>
+ </el-drawer>
</el-row>
+
</template>
<script>
-import {
- getList,
- add,
- remove,
- update,
- updateAudit,
- applyConfirm,
-} from "@/api/examapi/examination";
+import {getExamStatistics,getExamInfoByExamId} from "@/api/examapi/examination";
import { mapGetters } from "vuex";
import Legend from "@/components/liu-legend/Legend";
export default {
@@ -97,26 +123,16 @@
},
data() {
return {
+ startTime:"",
+ title:"",
+ trainUnitId:null,
+ dialog: false,
form: {},
- //legend-liu数据
- datalistLIU: [
- {
- color: "#29C093",
- text: "审核通过",
- },
- {
- color: "#F34A4A",
- text: "审核不通过",
- },
- {
- color: "#F48F57",
- text: "待审核",
- },
- ],
+ formDetail: {},
questionBankOption: {
// 操作栏多余按钮去除
delBtn: false,
- editBtn: true,
+ editBtn: false,
addBtn: false,
menu: true,
// 导出按钮
@@ -133,32 +149,19 @@
indexLabel: "序号",
dialogClickModal: false,
// 操作栏宽度
- menuWidth: 320,
+ menuWidth: 120,
labelWidth: 140,
...this.$store.state.control.clearOtherBut,
column: [
{
label: "培训学校名称",
- prop: "deptName",
+ prop: "schoolName",
slot: true,
search:true,
searchSpan:5,
searchLabelWidth:110,
- // 表单新增时是否禁止
- addDisabled: true,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: false,
- // 表单编辑时是否为查看模式
- editDetail: false,
- // hide: true,
- display: false,
overHidden: true,
+ // width:180,
},
{
label: "考试时间",
@@ -169,18 +172,6 @@
search:true,
searchSpan:4,
hide: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: false,
- // 表单编辑时是否为查看模式
- editDetail: false,
rules: [
{
required: true,
@@ -193,155 +184,144 @@
label: "考试时间",
prop: "startTime",
type: "datetime",
- format: "yyyy-MM-dd HH:mm",
- valueFormat: "yyyy-MM-dd HH:mm",
- hide: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- rules: [
- {
- required: true,
- message: "请选择考试时间",
- trigger: "blur",
- },
- ],
- },
- {
- label: "考试开始时间",
- prop: "startTime",
- type: "datetime",
- format: "yyyy-MM-dd HH:mm",
- valueFormat: "yyyy-MM-dd HH:mm",
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: false,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 120,
- },
- {
- label: "考试开始截止时间",
- prop: "endTime",
- type: "datetime",
- // span: 24,
- format: "yyyy-MM-dd HH:mm",
- valueFormat: "yyyy-MM-dd HH:mm",
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 120,
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
},
{
label: "报名人数",
- prop: "num",
- type: "textarea",
- span: 24,
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: false,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 70,
+ prop: "znum",
},
{
- label: "考试人数",
- prop: "examNum",
- type: "textarea",
- span: 24,
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: false,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 70,
+ label: "机考人数",
+ prop: "yknum",
},
{
- label: "审核状态",
- search: true,
- searchSpan: 4,
- prop: "auditStatus",
- slot: true,
- editDisplay: false,
- addDisplay: false,
- type: "select",
- rules: [
- {
- required: true,
- message: "请选择审核类型",
- trigger: "blur",
- },
- ],
- dicData: [
- {
- label: "审核通过",
- value: 1,
- },
- {
- label: "不通过",
- value: 2,
- },
- {
- label: "待审核",
- value: 3,
- },
- ],
- width: 110,
+ label: "纸质考试人数",
+ prop: "zznum",
+ },
+ {
+ label: "缺考人数",
+ prop: "qknum",
+ },
+ {
+ label: "审查异常人数",
+ prop: "ycnum",
+ },
+ {
+ label: "已取消考试人数",
+ prop: "qxnum",
},
],
},
+ option: {
+ // 操作栏多余按钮去除
+ delBtn: false,
+ editBtn: false,
+ addBtn: false,
+ menu: false,
+ //合计
+ showSummary: true,
+ viewBtn: false,
+ align: "center",
+ height: "auto",
+ calcHeight: 80,
+ tip: false,
+ searchMenuSpan: 4,
+ index: true,
+ indexLabel: "序号",
+ ...this.$store.state.control.clearOtherBut,
+ column: [
+ {
+ label: "企业名称",
+ prop: "deptName",
+ slot: true,
+ // search:true,
+ // searchSpan:5,
+ searchLabelWidth:110,
+ overHidden: true,
+ },
+ {
+ label: "报名人数",
+ prop: "znum",
+ },
+ {
+ label: "审查异常人数",
+ prop: "ycnum",
+ },
+ {
+ label: "缺考/纸质考试人数",
+ prop: "qknum",
+ },
+ {
+ label: "缺考/纸质占比(%)",
+ prop: "absentProportion",
+ },
+ {
+ label: "及格人数",
+ prop: "yknum",
+ },
+ {
+ label: "及格人数占比(%)",
+ prop: "qualifiedProportion",
+ },
+ ],
+ sumColumnList: [
+ {
+ label:'合计:',
+ name: 'deptName',
+ },
+ {
+ name: 'znum',
+ type: 'sum'
+ },
+ {
+ name: 'ycnum',
+ type: 'sum'
+ },
+ {
+ name: 'qknum',
+ type: 'sum'
+ },
+ {
+ name: 'absentProportion',
+ type: 'avg'
+ },
+ {
+ name: 'yknum',
+ type: 'sum'
+ },
+ {
+ name: 'qualifiedProportion',
+ type: 'avg'
+ },
+ {
+ name: 'znum',
+ type: 'sum'
+ },
+ ],
+ },
questionBankSearch: {},
+ search: {},
questionBankLoading: true,
+ loading: true,
questionBankData: [],
+ data: [],
questionBankPage: {
pageSize: 10,
currentPage: 1,
total: 16,
...this.$store.state.control.changePageSize,
},
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 16,
+ ...this.$store.state.control.changePageSize,
+ },
questionBankQuery: {},
+ query: {},
questionBankSelectionList: [],
+ selectionList: [],
};
},
mounted() {},
@@ -357,7 +337,7 @@
permissionList() {
return {
addBtn: this.vaildData(null, false),
- viewBtn: this.vaildData(this.permission.trainExam_edit, false),
+ viewBtn: this.vaildData(null, false),
delBtn: this.vaildData(null, false),
editBtn: this.vaildData(null, false),
};
@@ -365,14 +345,28 @@
},
watch: {},
methods: {
+ //合计
+ summaryMethod({ columns, data }){
+ const sums = [];
+ if (columns.length > 0) {
+ columns.forEach((column, index) => {
+ if ([0,1,6].includes(index) ) {
+ sums[index] = '-'
+ } else {
+ let values = this.selectList.map(item => Number(item[column.property]));
+ sums[index] = values;
+ }
+ });
+ }
+ return sums;
+ },
questionBankOnLoad(page, params = {}) {
this.questionBankLoading = false;
- params["examType"] = 2;
//如果是培训公司管理员,则只能看到当前培训公司申请的考试
if (this.userInfo.role_name == "培训公司管理员") {
params["deptId"] = this.userInfo.dept_id;
}
- getList(
+ getExamStatistics(
page.currentPage,
page.pageSize,
Object.assign(params, this.questionBankQuery)
@@ -384,9 +378,33 @@
this.questionBankSelectionClear();
});
},
+ onLoad(page, params = {}) {
+ this.loading = false;
+ //如果是培训公司管理员,则只能看到当前培训公司申请的考试
+ if (this.userInfo.role_name == "培训公司管理员") {
+ params["deptId"] = this.userInfo.dept_id;
+ }
+ params['startTime'] = this.startTime;
+ params['trainUnitId'] = this.trainUnitId;
+ getExamInfoByExamId(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.query)
+ ).then((res) => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ });
+ },
questionBankSelectionClear() {
this.questionBankSelectionList = [];
this.$refs.questionBankCrud.toggleSelection();
+ },
+ selectionClear() {
+ this.selectionList = [];
+ this.$refs.crud.toggleSelection();
},
questionBankSelectionChange(list) {
this.questionBankSelectionList = list;
@@ -407,173 +425,21 @@
questionBankSizeChange(pageSize) {
this.questionBankPage.pageSize = pageSize;
},
- //审核
- submit(row, done, loading) {
- updateAudit(row).then(
- () => {
- this.dialogFormVisible = false;
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
+ //详情弹窗
+ getExamDetail(row) {
+ this.dialog = true;
+ this.trainUnitId = row.trainUnitId;
+ this.startTime = row.startTime;
+ this.title = row.schoolName+row.startTime+"考试明细";
+ this.onLoad(this.page);
},
- beforeOpen(done, type) {
- if(this.userInfo.role_name=="培训公司管理员"){
- if (["edit"].includes(type)) {
- if(this.form.auditStatus==1){
- this.$message({
- type: "warning",
- message: "当前考试申请已审核通过,无法再修改考试申请信息!",
- });
- return;
- }
- }
- }
- done();
- },
- startExam(row) {
- //正式考试
- if (row.examType == 1) {
- this.$router.push({
- path: `/applydetailed`,
- query: row,
- });
- }
-
- //模拟考试
- if (row.examType == 2) {
- this.$router.push({
- path: `/trainApply`,
- query: row,
- });
- }
- },
- examScoreViews(row) {
- //模拟考试
- if (row.examType == 2) {
- this.$router.push({
- path: `/trainExam/singleperformance`,
- query: row,
- });
- }
- },
- // 新增
- questionBankRowSave(row, done, loading) {
- row.startTime = row.startTime + ":00";
- row["examType"] = 2;
- // row.endTime = row.examTime[1];
- // row.examTime = JSON.stringify(row.examTime);
- add(row).then(
- () => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
- },
- questionBankRowUpdate(row, index, done, loading) {
- // if (Array.isArray(row.examTime) != true) {
- // row.examTime = row.examTime.split(",");
- // }
- const data = {
- id: row.id,
- startTime: row.startTime + ":00",
- endTime: row.endTime + ":00",
- };
- // row.startTime = row.startTime + ":00";
- // row.endTime = row.endTime + ":00";
- // row.endTime = row.examTime[1];
- // row.examTime = JSON.stringify(row.examTime);
- update(data).then(
- () => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
- },
- questionBankRowDel(row) {
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- return remove(row.id);
- })
- .then(() => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- });
- },
- handleConfirm(row) {
- this.$confirm("已确认当前考试申请人员名单无误?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- row["confirmUser"] = this.userInfo.Id;
- return applyConfirm(row);
- })
- .then(() => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- });
- },
- questionBankHandleDelete() {
- if (this.questionBankSelectionList.length === 0) {
- this.$message.warning("请选择至少一条数据");
- return;
- }
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- return remove(this.ids);
- })
- .then(() => {
- this.questionBankOnLoad(this.questionBankPage);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- this.$refs.questionBankCrud.toggleSelection();
- });
- },
- handleAudit(row) {
- this.dialogFormVisible = true;
- this.Audit = row;
+ //行单击详情弹窗
+ handleRowClick(row) {
+ this.dialog = true;
+ this.trainUnitId = row.trainUnitId;
+ this.startTime = row.startTime;
+ this.title = row.schoolName+row.startTime+"考试明细";
+ this.onLoad(this.page);
},
},
};
--
Gitblit v1.9.3