From 0caae4016eb87ea3a5d5ee472c1ddd22c38fe0c9 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 25 Jun 2023 17:41:09 +0800
Subject: [PATCH] 晋城保安系统
---
src/views/trainExam/performance.vue | 372 +++++++++++++++++++++++-----------------------------
1 files changed, 163 insertions(+), 209 deletions(-)
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index f53f93c..c3953c9 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,53 +1,37 @@
/* * @Author: Morpheus * @Date: 2021-07-05 16:31:54 * @Last Modified by: liu *
@Last Modified time: 2021-11-27 10:20:19 * menu-name 成绩管理 */
<template>
- <basic-container
- :class="[
- 'exam-card-body',
- $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
- $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
- ]"
- >
- <avue-crud
- v-model="obj"
- class="company-box tablesss"
- :option="questionBankOption"
- :search.sync="questionBankSearch"
- :table-loading="questionBankLoading"
- :data="questionBankData"
- :permission="permissionList"
- ref="questionBankCrud"
- :page.sync="questionBankPage"
- @sort-change="sortChange"
- @on-load="questionBankOnLoad"
- @selection-change="questionBankSelectionChange"
- @search-change="questionBankSearchChange"
- @search-reset="questionBankSearchReset"
- @current-change="questionBankCurrentChange"
- @size-change="questionBankSizeChange"
- @row-update="questionBankRowUpdate"
- @refresh-change="refreshChange"
- >
+ <basic-container :class="[
+ 'exam-card-body',
+ $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+ $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
+ ]">
+ <avue-crud v-model="obj" class="company-box tablesss" :option="questionBankOption" :search.sync="questionBankSearch"
+ :table-loading="questionBankLoading" :data="questionBankData" :permission="permissionList" ref="questionBankCrud"
+ :page.sync="questionBankPage" @sort-change="sortChange" @on-load="questionBankOnLoad"
+ @selection-change="questionBankSelectionChange" @search-change="questionBankSearchChange"
+ @search-reset="questionBankSearchReset" @current-change="questionBankCurrentChange"
+ @size-change="questionBankSizeChange" @row-update="questionBankRowUpdate" @refresh-change="refreshChange">
<template slot-scope="{ row }" slot="theoryGrade">
{{ row.theoryGrade }}
</template>
- <template slot-scope="{ row }" slot="learnGrade">
- {{ row.learnGrade == "" ? "暂未录入" : row.learnGrade }}
- </template>
+ <!-- <template slot-scope="{ row }" slot="learnGrade">
+ {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade==0?'合格':'不合格'}}
+ </template> -->
<template slot-scope="{ row }" slot="allGrade">
{{ row.allGrade == -1 ? "" : row.allGrade }}
</template>
<template slot-scope="{ row }" slot="qualified">
{{
row.qualified == ""
- ? ""
- : row.qualified == 0
+ ? ""
+ : row.qualified == 0
? "合格"
: row.qualified == 1
- ? "不合格"
- : row.qualified == 3
- ? "缺考,成绩无效"
- : ""
+ ? "不合格"
+ : row.qualified == 3
+ ? "缺考,成绩无效"
+ : ""
}}
</template>
@@ -65,90 +49,36 @@
plain
@click="handleDelete">删除
</el-button> -->
- <el-button
- type="success"
- size="small"
- plain
- icon="el-icon-upload2"
- v-if="permission.trainExam_performance_import"
- @click="handleImport"
- >实操成绩导入
+ <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.trainExam_performance_import"
+ @click="handleImport">实操成绩导入
</el-button>
- <el-button
- type="warning"
- size="small"
- plain
- icon="el-icon-download"
- v-if="permission.trainExam_performance_export"
- @click="handleExport"
- >成绩导出
+ <el-button type="warning" size="small" plain icon="el-icon-download"
+ v-if="permission.trainExam_performance_export" @click="handleExport">成绩导出
</el-button>
- <el-button
- type="primary"
- size="small"
- plain
- v-if="permission.trainExam_performance_paper_apply"
- icon="el-icon-collection-tag"
- @click="handleSecurityPaperApply"
- >证书制证申请
+ <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.trainExam_performance_delete"
+ @click="handleDelete">删 除
</el-button>
- <el-button
- type="primary"
- size="small"
- plain
- v-if="permission.trainExam_performance_worker_paper_apply"
- icon="el-icon-collection-tag"
- @click="handleWorkerPaperApply"
- >上岗证制证申请
+ <el-button type="primary" size="small" plain v-if="permission.trainExam_performance_paper_apply"
+ style="display: none;" icon="el-icon-collection-tag" @click="handleSecurityPaperApply">证书制证申请
+ </el-button>
+ <el-button type="primary" size="small" plain v-if="permission.trainExam_performance_worker_paper_apply"
+ style="display: none;" icon="el-icon-collection-tag" @click="handleWorkerPaperApply">上岗证制证申请
</el-button>
</template>
<template slot-scope="{ type, size, row }" slot="menu">
- <el-button
- style="display: none"
- icon="el-icon-s-flag"
- @click="absent(row)"
- :size="size"
- :type="type"
- >缺考标记</el-button
- >
- <el-button
- icon="el-icon-s-promotion"
- @click="openzhengjian(row)"
- :disabled="row.qualified != 0"
- :size="size"
- :type="type"
- >查看证件</el-button
- >
- <el-button
- icon="el-icon-edit"
- @click="modifiedGrades(row)"
- :size="size"
- :type="type"
- >申请修改成绩</el-button
- >
- <el-button
- icon="el-icon-edit"
- v-if="row.isPaper == 6"
- @click="securityPaperApply(row)"
- :size="size"
- :type="type"
- >补证申请</el-button
- >
+ <el-button style="display: none" icon="el-icon-s-flag" @click="absent(row)" :size="size"
+ :type="type">缺考标记</el-button>
+ <el-button icon="el-icon-s-promotion" @click="openzhengjian(row)" :disabled="row.qualified != 0" :size="size"
+ :type="type">查看证件</el-button>
+ <el-button icon="el-icon-edit" @click="modifiedGrades(row)" :size="size" :type="type">申请修改成绩</el-button>
+ <el-button icon="el-icon-edit" v-if="row.isPaper == 6" @click="securityPaperApply(row)" :size="size"
+ :type="type">补证申请</el-button>
</template>
</avue-crud>
- <el-dialog
- title="实操成绩导入"
- append-to-body
- :visible.sync="excelBox"
- width="555px"
- >
- <avue-form
- :option="excelOption"
- v-model="excelForm"
- :upload-after="uploadAfter"
- >
+ <el-dialog title="实操成绩导入" append-to-body :visible.sync="excelBox" width="555px">
+ <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
<template slot="excelTemplate">
<el-button type="primary" @click="handleTemplate">
点击下载<i class="el-icon-download el-icon--right"></i>
@@ -157,17 +87,9 @@
</avue-form>
</el-dialog>
- <el-dialog
- title="申请修改成绩"
- :visible.sync="gradeBoxVisible"
- width="width"
- :modal="true"
- :modal-append-to-body="true"
- :append-to-body="true"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- :before-close="dialogBeforeClose"
- >
+ <el-dialog title="申请修改成绩" :visible.sync="gradeBoxVisible" width="width" :modal="true" :modal-append-to-body="true"
+ :append-to-body="true" :close-on-click-modal="false" :close-on-press-escape="false"
+ :before-close="dialogBeforeClose">
<div>
<!-- <el-form
ref="gradeForm"
@@ -303,13 +225,7 @@
<el-button @click="gradeBoxVisible = false">取 消</el-button>
</el-form-item>
</el-form> -->
- <avue-form
- ref="form"
- :option="option"
- v-model="form"
- @reset-change="emptytChange"
- @submit="submit"
- >
+ <avue-form ref="form" :option="option" v-model="form" @reset-change="emptytChange" @submit="submit">
</avue-form>
</div>
</el-dialog>
@@ -320,12 +236,7 @@
:modal-append-to-body="false"
> -->
<div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian">
- <baoanz
- :data="baoanzdata"
- :close="1"
- @close="closezhengjian"
- :closePrint="1"
- ></baoanz>
+ <baoanz :data="baoanzdata" :close="1" @close="closezhengjian" :closePrint="1"></baoanz>
</div>
</basic-container>
</template>
@@ -337,6 +248,7 @@
update,
updateAbsent,
updateGrade,
+ remove,
getNowDate
} from "@/api/examapi/performance";
import { mapGetters } from "vuex";
@@ -482,6 +394,7 @@
label: "实操成绩",
prop: "learnGrade",
labelWidth: 110,
+ type: "select",
disabled: true,
rules: [
{
@@ -489,21 +402,35 @@
message: "请输入实操成绩",
trigger: "blur"
}
- ]
- },
- {
- label: "总成绩",
- prop: "allGrade",
- labelWidth: 110,
- disabled: true,
- rules: [
+ ],
+ dicData: [
{
- required: false,
- message: "请输入总成绩",
- trigger: "blur"
+ label: "合格",
+ value: 0
+ },
+ {
+ label: "不合格",
+ value: 1
+ },
+ {
+ label: "暂未录实操成绩",
+ value: 2
}
- ]
+ ],
},
+ // {
+ // label: "总成绩",
+ // prop: "allGrade",
+ // labelWidth: 110,
+ // disabled: true,
+ // rules: [
+ // {
+ // required: false,
+ // message: "请输入总成绩",
+ // trigger: "blur"
+ // }
+ // ]
+ // },
{
label: "笔试答题图片",
prop: "url",
@@ -571,7 +498,7 @@
selection: true,
reserveSelection: true,
selectable: row => {
- if (row.qualified != "0" || row.isPaper == 6) {
+ if (row.isExam == 3) {
return false;
} else {
return true;
@@ -750,17 +677,10 @@
editDetail: false
},
{
- label: "所属公司",
- prop: "companyName",
- sortable: true,
+ label: "从业单位",
+ prop: "unitName",
search: true,
searchSpan: 4,
- // dicUrl: '/api/blade-system/dept/tree',
- // props: {
- // label: "title",
- // value: "id",
- // },
- slot: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -776,7 +696,7 @@
rules: [
{
required: true,
- message: "请输入所属公司",
+ message: "请输入从业单位",
trigger: "blur"
}
],
@@ -895,8 +815,9 @@
{
label: "实操成绩",
prop: "learnGrade",
- slot: true,
- sortable: true,
+ type: "select",
+ // slot: true,
+ // sortable: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -910,29 +831,36 @@
// 表单编辑时是否为查看模式
editDetail: false,
width: 95,
- rules: [
- { validator: validatePass, required: true, trigger: "blur" }
- ]
+ dicData: [
+ {
+ label: "合格",
+ value: 0
+ },
+ {
+ label: "不合格",
+ value: 1
+ }
+ ],
},
- {
- label: "总成绩",
- prop: "allGrade",
- slot: true,
- sortable: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- width: 80
- },
+ // {
+ // label: "总成绩",
+ // prop: "allGrade",
+ // slot: true,
+ // sortable: true,
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: true,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: true,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+ // width: 80
+ // },
{
label: "是否合格",
prop: "qualified",
@@ -1080,6 +1008,7 @@
...this.$store.state.control.changePageSize
},
questionBankQuery: {},
+ selectionList: [],
questionBankSelectionList: [],
excelForm: {},
excelOption: {
@@ -1136,12 +1065,19 @@
choiceList: []
};
},
- created() {},
+ created() { },
mounted() {
this.$store.commit("setWindowSizeHeightAdd");
},
computed: {
...mapGetters(["userInfo", "permission"]),
+ ids() {
+ let ids = [];
+ this.questionBankSelectionList.forEach(ele => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ },
permissionList() {
return {
addBtn: this.vaildData(null, false),
@@ -1162,6 +1098,29 @@
}
},
methods: {
+ // 批量删除
+ handleDelete() {
+ 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.crud.toggleSelection();
+ });
+ },
//提交考试成绩修改申请
submit(row, done, loading) {
var that = this;
@@ -1197,9 +1156,9 @@
name: res.data.data.name,
url: res.data.data.url
});
- console.log(that.gradeForm.fileList, 365441);
+ // console.log(that.gradeForm.fileList, 365441);
});
- console.log(that.gradeForm.fileList, 11122222);
+ // console.log(that.gradeForm.fileList, 11122222);
},
//图片展示
handlePictureCardPreview(file) {
@@ -1210,7 +1169,7 @@
handleRemove(file) {
var index = [];
//遍历图片集合,获取下标
- this.gradeForm.fileList.forEach(function(img, i) {
+ this.gradeForm.fileList.forEach(function (img, i) {
if (img.name == file.name) {
index.push(i);
//存储对象中删除
@@ -1224,7 +1183,7 @@
}
},
selectionChange(list) {
- // this.selectionList = list;
+ this.selectionList = list;
this.choiceList = [];
for (let k in list) {
this.choiceList.push({
@@ -1278,8 +1237,8 @@
}
this.$confirm(
"共选择上岗证制证申请人数" +
- this.choiceList.length +
- "人,确定申请制证?",
+ this.choiceList.length +
+ "人,确定申请制证?",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
@@ -1465,7 +1424,6 @@
);
});
},
-
// 修改考试成绩
modifiedGrades(row) {
var that = this;
@@ -1480,18 +1438,18 @@
var num = 24 * 3600 * 1000;
if (this.userInfo.role_name == "培训公司管理员") {
// if (res.data.data - longtime <= num) {
- this.form = {
- id: null,
- examScoreId: row.id,
- examName: row.examName,
- candidateNo: row.candidateNo,
- account: row.account,
- securityName: row.securityName,
- theoryGrade: row.theoryGrade,
- learnGrade: row.learnGrade,
- allGrade: row.allGrade
- };
- this.gradeBoxVisible = true;
+ this.form = {
+ id: null,
+ examScoreId: row.id,
+ examName: row.examName,
+ candidateNo: row.candidateNo,
+ account: row.account,
+ securityName: row.securityName,
+ theoryGrade: row.theoryGrade,
+ learnGrade: row.learnGrade,
+ allGrade: row.allGrade
+ };
+ this.gradeBoxVisible = true;
// } else {
// //提示
// that.$message({
@@ -1515,7 +1473,6 @@
}
});
},
-
uploadGrade(formName) {
var that = this;
@@ -1545,7 +1502,6 @@
}
});
},
-
questionBankSelectionClear() {
this.questionBankSelectionList = [];
this.sort = "";
@@ -1553,7 +1509,7 @@
// this.$refs.questionBankCrud.toggleSelection();
},
questionBankSelectionChange(list) {
- // this.questionBankSelectionList = list;
+ this.questionBankSelectionList = list;
this.choiceList = [];
for (let k in list) {
this.choiceList.push({
@@ -1577,7 +1533,6 @@
questionBankSizeChange(pageSize) {
this.questionBankPage.pageSize = pageSize;
},
-
questionBankRowUpdate(row, index, done, loading) {
update({
theoryGrade: row.theoryGrade,
@@ -1601,8 +1556,7 @@
},
handleTemplate() {
window.open(
- `/api/examScore/export-template?${
- this.website.tokenHeader
+ `/api/examScore/export-template?${this.website.tokenHeader
}=${getToken()}&`
);
},
@@ -1659,8 +1613,7 @@
//序列号url形式,用&拼接
data = Qs.stringify(data);
window.open(
- `/api/examScore/export-examScore?${
- this.website.tokenHeader
+ `/api/examScore/export-examScore?${this.website.tokenHeader
}=${getToken()}&` + data
);
});
@@ -1673,6 +1626,7 @@
.morpheus-box {
position: relative;
}
+
.dialogVisiblezhengjian {
position: absolute;
background-color: #fff;
--
Gitblit v1.9.3