From 2c461eb9efb980d55dfd7407ee70088fc90a4a7a Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Tue, 08 Feb 2022 14:24:31 +0800
Subject: [PATCH] 保安员详情修改
---
src/views/trainExam/singleperformance.vue | 369 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 291 insertions(+), 78 deletions(-)
diff --git a/src/views/trainExam/singleperformance.vue b/src/views/trainExam/singleperformance.vue
index ad770e3..878fc07 100644
--- a/src/views/trainExam/singleperformance.vue
+++ b/src/views/trainExam/singleperformance.vue
@@ -1,15 +1,20 @@
/*
* @Author: Morpheus
* @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-18 21:02:10
+ * @Last Modified by: liu
+ * @Last Modified time: 2021-12-10 10:01:11
* menu-name 成绩查看
*/
<template>
<el-row class="morpheus-box-score">
<el-col :span="24">
<el-card>
- <div class="exam-card-body">
+ <div
+ :class="[
+ 'exam-card-body',
+ $store.state.control.windowWidth >= 1024 ? 'tooRowSearch' : '',
+ ]"
+ >
<avue-crud
v-model="obj"
class="company-box"
@@ -18,6 +23,7 @@
:table-loading="questionBankLoading"
:data="questionBankData"
ref="questionBankCrud"
+ @sort-change="sortChange"
:permission="permissionList"
:page.sync="questionBankPage"
@on-load="questionBankOnLoad"
@@ -27,27 +33,50 @@
@current-change="questionBankCurrentChange"
@size-change="questionBankSizeChange"
@row-update="questionBankRowUpdate"
+ @refresh-change="refreshChange"
>
<template slot-scope="{ row }" slot="learnGrade">
{{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
</template>
<template slot-scope="{ row }" slot="theoryGrade">
- {{ row.learnGrade == -1 ? "" : row.theoryGrade }}
+ {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
</template>
<template slot-scope="{ row }" slot="allGrade">
- {{ row.learnGrade == -1 ? "" : row.allGrade }}
+ {{ row.allGrade == -1 ? "" : row.allGrade }}
</template>
<template slot-scope="{ row }" slot="qualified">
- {{ row.qualified == -1 ? "" : row.qualified==0?"合格":row.qualified==1?"不合格":row.qualified==3?"缺考,成绩无效":'' }}
+ {{
+ row.qualified == -1
+ ? ""
+ : row.qualified == 0
+ ? "合格"
+ : row.qualified == 1
+ ? "不合格"
+ : row.qualified == 3
+ ? "缺考,成绩无效"
+ : ""
+ }}
</template>
+ <!-- 自定义按钮 -->
+ <template slot="menuLeft">
+ <el-button
+ type="warning"
+ size="small"
+ plain
+ icon="el-icon-download"
+ v-if="permission.trainExam_singleperformance_export"
+ @click="handleExport"
+ >成绩导出
+ </el-button>
+ </template>
<template slot-scope="{ row }" slot="menu">
<el-button
type="text"
size="mini"
icon="el-icon-collection"
class="start-kaoshi"
- :disabled="row.qualified==1"
+ :disabled="row.qualified == 1"
@click="securityPrint(row)"
>保安证打印
</el-button>
@@ -85,7 +114,8 @@
import { getList, update } from "@/api/examapi/performance";
import { mapGetters } from "vuex";
import { getRoleDetail } from "@/api/system/role";
-
+import Qs from "qs";
+import { getToken } from "@/util/auth";
export default {
data() {
var validatePass = (rule, value, callback) => {
@@ -115,13 +145,14 @@
addBtn: false,
selection: false,
// 导出按钮
- excelBtn: true,
- excelBtnText: "成绩导出",
+ // excelBtn: true,
+ // excelBtnText: "成绩导出",
viewBtn: false,
// title: '成绩',
-
align: "center",
height: "auto",
+ sort:"",
+ sortName:"",
calcHeight: 80,
tip: false,
searchShow: true,
@@ -134,14 +165,41 @@
menu: false,
menuWidth: 136,
labelWidth: 120,
+ ...this.$store.state.control.clearOtherBut,
column: [
{
- label: "考试名称",
- prop: "examName",
- search: true,
- searchSpan: 5,
+ label: "考试时间",
+ prop: "examDate",
+ type: "date",
+ hide: true,
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ width: 140,
slot: true,
- viewDisplay:false,
+ search: true,
+ searchSpan: 4,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ viewDisplay: false,
+ },
+ {
+ label: "考试时间",
+ prop: "startTime",
+ type: "datetime",
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ width: 90,
+ viewDisplay: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -150,8 +208,39 @@
addDetail: false,
// 表单编辑时是否禁止
editDisabled: true,
+ viewDisabled: true,
// 表单编辑时是否可见
- editDisplay: false,
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入考试时间",
+ trigger: "blur",
+ },
+ ],
+ overHidden:true,
+ },
+ {
+ label: "姓名",
+ prop: "securityName",
+ search: true,
+ searchSpan: 3,
+ searchLabelWidth: 50,
+ slot: true,
+ viewDisplay: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ viewDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
rules: [
@@ -161,12 +250,39 @@
trigger: "blur",
},
],
+ width: 80,
// overHidden:true,
- width:250,
},
{
- label: "用户名",
+ label: "身份证号",
prop: "account",
+ search: true,
+ searchSpan: 5,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入保安姓名",
+ trigger: "blur",
+ },
+ ],
+ width: 160,
+ },
+ {
+ label: "准考证号",
+ prop: "candidateNo",
search: true,
searchSpan: 4,
slot: true,
@@ -189,12 +305,13 @@
trigger: "blur",
},
],
- width:160,
+ width: 140,
},
{
label: "所属公司",
prop: "companyName",
search: true,
+ sortable: true,
searchSpan: 4,
// dicUrl: '/api/blade-system/dept/tree',
// props: {
@@ -214,6 +331,7 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ overHidden: true,
rules: [
{
required: true,
@@ -221,7 +339,7 @@
trigger: "blur",
},
],
- width:230,
+ minWidth: 230,
},
{
label: "考试开始时间",
@@ -230,7 +348,7 @@
// span: 24,
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
- width: 160,
+ width: 140,
slot: true,
// 表单新增时是否禁止
addDisabled: false,
@@ -252,7 +370,7 @@
// span: 24,
format: "yyyy-MM-dd HH:mm:ss",
valueFormat: "yyyy-MM-dd HH:mm:ss",
- width: 160,
+ width: 140,
slot: true,
// 表单新增时是否禁止
addDisabled: false,
@@ -268,12 +386,12 @@
editDetail: false,
},
{
- label: "状态",
+ label: "考试状态",
prop: "isExam",
type: "select",
slot: true,
search: true,
- searchSpan: 3,
+ searchSpan: 4,
dicData: [
{
label: "发布成绩",
@@ -283,7 +401,16 @@
label: "考试中",
value: 3,
},
+ {
+ label: "纸质考试",
+ value: 5,
+ },
+ {
+ label: "缺考",
+ value: 4,
+ },
],
+ width: 90,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -308,6 +435,7 @@
label: "理论成绩",
prop: "theoryGrade",
slot: true,
+ sortable: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -320,11 +448,13 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ width: 95,
},
{
label: "实操成绩",
prop: "learnGrade",
slot: true,
+ sortable: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -337,39 +467,46 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ width: 95,
rules: [
{ validator: validatePass, required: true, trigger: "blur" },
],
},
{
- label: "总成绩",
- prop: "allGrade",
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: true,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: true,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- rules: [{
- required: true,
- message: "请输入考试名称",
- trigger: "blur"
- }]
+ label: "总成绩",
+ prop: "allGrade",
+ slot: true,
+ sortable: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ width: 80,
+ rules: [
+ {
+ required: true,
+ message: "请输入考试名称",
+ trigger: "blur",
+ },
+ ],
},
{
label: "是否合格",
prop: "qualified",
type: "select",
+ sortable: true,
slot: true,
search: true,
- searchSpan: 3,
+ searchSpan: 4,
+ width: 120,
dicData: [
{
label: "合格",
@@ -412,7 +549,8 @@
questionBankPage: {
pageSize: 10,
currentPage: 1,
- total: 16,
+ total: 0,
+ ...this.$store.state.control.changePageSize,
},
questionBankQuery: {},
questionBankSelectionList: [],
@@ -420,10 +558,11 @@
},
created() {
// console.log(this.$route.query,111);
- this.questionBankSearch['examName'] = this.$route.query.examName;
+ this.questionBankSearch["examId"] = this.$route.query.id;
+ // console.log(this.$route.query,111);
},
mounted() {},
- computed:{
+ computed: {
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
@@ -431,7 +570,10 @@
viewBtn: this.vaildData(null, false),
delBtn: this.vaildData(null, false),
editBtn: this.vaildData(null, false),
- excelBtn: this.vaildData(this.permission.trainExam_performance_export, false),
+ excelBtn: this.vaildData(
+ this.permission.trainExam_performance_export,
+ false
+ ),
};
},
},
@@ -445,6 +587,30 @@
query: obj,
});
},
+ //排序
+ sortChange(value) {
+ if(value.order=="ascending"){
+ this.sort = "asc";
+ }
+ if(value.order=="descending"){
+ this.sort = "desc";
+ }
+ this.sortName = value.prop;
+ //字段匹配
+ if(value.prop=="theoryGrade"){
+ this.sortName = "theory_grade";
+ }
+ if(value.prop=="learnGrade"){
+ this.sortName = "learn_grade";
+ }
+ if(value.prop=="allGrade"){
+ this.sortName = "all_grade";
+ }
+ if(value.prop=="companyName"){
+ this.sortName = "companyName";
+ }
+ this.questionBankOnLoad(this.questionBankPage);
+ },
questionBankOnLoad(page, params = {}) {
//判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
var that = this;
@@ -453,36 +619,40 @@
params = this.questionBankSearch;
roleIds.forEach((roleId) => {
getRoleDetail(roleId).then((res) => {
- var roleAlias = res.data.data.roleAlias;
- if (
- roleAlias == "保安公司管理员" ||
- roleAlias == "保安"
- ) {
- //如果是保安公司管理员
- params["deptId"] = that.userInfo.dept_id;
- }
- if (
- roleAlias == "培训公司管理员"
- ) {
- //如果是培训公司管理员
- params["trainUnitId"] = that.userInfo.dept_id;
- }
+ var roleAlias = res.data.data.roleAlias;
+ if (
+ roleAlias == "保安公司管理员" ||
+ roleAlias == "保安" ||
+ roleAlias == "分公司管理员"
+ ) {
+ //如果是保安公司管理员
+ params["deptId"] = that.userInfo.dept_id;
+ }
+ if (roleAlias == "培训公司管理员") {
+ //如果是培训公司管理员
+ params["trainUnitId"] = that.userInfo.dept_id;
+ }
+ that.questionBankLoading = false;
+ params["examType"] = 2;
+ if(this.sort){
+ params["sort"] = this.sort;
+ }
+ if(this.sortName){
+ params["sortName"] = this.sortName;
+ }
+ getList(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.questionBankQuery)
+ ).then((res) => {
+ const data = res.data.data;
+ that.questionBankPage.total = data.total;
+ that.questionBankData = data.records;
that.questionBankLoading = false;
- params["examType"] = 2;
- getList(
- page.currentPage,
- page.pageSize,
- Object.assign(params, this.query)
- ).then((res) => {
- const data = res.data.data;
- that.questionBankPage.total = data.total;
- that.questionBankData = data.records;
- that.questionBankLoading = false;
- that.questionBankSelectionClear();
- });
- })
+ that.questionBankSelectionClear();
+ });
+ });
});
-
},
questionBankSelectionClear() {
this.questionBankSelectionList = [];
@@ -528,6 +698,49 @@
}
);
},
+ refreshChange() {
+ this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
+ },
+ //成绩导出
+ handleExport() {
+ this.$confirm("是否导出成绩数据?", "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ }).then(() => {
+ //获取查询条件
+ // console.log(this.questionBankSearch,456);
+ var data = {
+ account: this.questionBankSearch.account,
+ companyName: this.questionBankSearch.companyName,
+ examDate: this.questionBankSearch.examDate,
+ isExam: this.questionBankSearch.isExam,
+ qualified: this.questionBankSearch.qualified,
+ securityName: this.questionBankSearch.securityName,
+ examId:this.questionBankSearch.examId,
+ };
+ //导出
+ if (
+ this.userInfo.role_name == "保安公司管理员" ||
+ this.userInfo.role_name == "保安"
+ ) {
+ //如果是保安公司管理员
+ data["deptId"] = this.userInfo.dept_id;
+ }
+ if (this.userInfo.role_name == "培训公司管理员") {
+ //如果是培训公司管理员
+ data["trainUnitId"] = this.userInfo.dept_id;
+ }
+ data["examType"] = 2;
+ console.log(data,1234567989);
+ //序列号url形式,用&拼接
+ data = Qs.stringify(data);
+ window.open(`/api/examScore/export-examScore?${
+ this.website.tokenHeader
+ }=${getToken()}&` + data
+ );
+ });
+ },
},
};
</script>
--
Gitblit v1.9.3