From 152a4702ec03ceec5f57b207a8d7d9ea5ccdbfe7 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 03 Nov 2021 10:05:22 +0800
Subject: [PATCH] 纸质证书样式修改
---
src/views/trainExam/performance.vue | 363 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 283 insertions(+), 80 deletions(-)
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index dc7adac..6655733 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,8 +1,8 @@
/*
* @Author: Morpheus
* @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-18 19:44:47
+ * @Last Modified by: liu
+ * @Last Modified time: 2021-10-26 15:44:52
* menu-name 成绩管理
*/
<template>
@@ -27,18 +27,29 @@
@current-change="questionBankCurrentChange"
@size-change="questionBankSizeChange"
@row-update="questionBankRowUpdate"
+ @refresh-change="refreshChange"
>
<template slot-scope="{ row }" slot="theoryGrade">
{{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
</template>
- <template slot-scope="{ row }" slot="learnGrade">
+ <template slot-scope="{ row }" slot="learnGrade">
{{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
</template>
<template slot-scope="{ row }" slot="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>
<!-- 自定义按钮 -->
@@ -64,16 +75,33 @@
@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>
</template>
<template slot-scope="{ type, size, row }" slot="menu">
- <el-button
- icon="el-icon-s-flag"
- @click="absent(row)"
- :size="size"
- :type="type"
- >缺考标记</el-button
- >
+ <el-button
+ 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
+ >
</template>
</avue-crud>
@@ -98,14 +126,33 @@
</div>
</el-card>
</el-col>
+ <!-- <el-dialog
+ title="打印证件"
+ :visible.sync="dialogVisiblezhengjian"
+ :modal-append-to-body="false"
+ > -->
+ <div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian">
+ <baoanz
+ :data="baoanzdata"
+ :close="1"
+ @close="closezhengjian"
+ :closePrint="1"
+ ></baoanz>
+ </div>
+ <!-- </el-dialog> -->
</el-row>
</template>
<script>
-import { getList, update,updateAbsent } from "@/api/examapi/performance";
+import baoanz from "../securityGuard/baoanz.vue";
+import { getList, update, updateAbsent } from "@/api/examapi/performance";
import { mapGetters } from "vuex";
import { getRoleDetail } from "@/api/system/role";
+import Qs from "qs";
export default {
+ components: {
+ baoanz,
+ },
data() {
var validatePass = (rule, value, callback) => {
console.log(value);
@@ -124,6 +171,8 @@
};
return {
+ dialogVisiblezhengjian: false,
+ baoanzdata: {},
obj: {
name: "张三",
},
@@ -135,8 +184,8 @@
addBtn: false,
selection: false,
// 导出按钮
- excelBtn: true,
- excelBtnText: "成绩导出",
+ // excelBtn: true,
+ // excelBtnText: "成绩导出",
viewBtn: true,
// title: '成绩',
align: "center",
@@ -151,17 +200,41 @@
dialogClickModal: false,
// 操作栏宽度
menu: true,
- menuWidth: 136,
+ menuWidth: 295,
labelWidth: 120,
-
column: [
+ {
+ label: "考试时间",
+ prop: "examDate",
+ type: "date",
+ hide: true,
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ width: 140,
+ slot: true,
+ search: true,
+ searchSpan: 4,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ viewDisplay: false,
+ },
{
label: "考试名称",
prop: "examName",
search: true,
- searchSpan: 4,
+ searchSpan: 5,
slot: true,
- viewDisplay:true,
+ viewDisplay: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -182,11 +255,41 @@
trigger: "blur",
},
],
- width:250,
+ width: 210,
// overHidden:true,
},
{
- label: "用户名",
+ label: "姓名",
+ prop: "securityName",
+ search: true,
+ searchSpan: 3,
+ slot: true,
+ viewDisplay: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ viewDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入试卷名称",
+ trigger: "blur",
+ },
+ ],
+ width: 80,
+ // overHidden:true,
+ },
+ {
+ label: "身份证号",
prop: "account",
search: true,
searchSpan: 4,
@@ -210,7 +313,34 @@
trigger: "blur",
},
],
- width:160,
+ width: 140,
+ },
+ {
+ label: "准考证号",
+ prop: "candidateNo",
+ search: true,
+ searchSpan: 4,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入保安姓名",
+ trigger: "blur",
+ },
+ ],
+ width: 140,
},
{
label: "所属公司",
@@ -242,7 +372,7 @@
trigger: "blur",
},
],
- width:230,
+ width: 230,
},
{
label: "考试开始时间",
@@ -251,7 +381,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,
@@ -273,7 +403,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,
@@ -294,7 +424,8 @@
type: "select",
slot: true,
search: true,
- searchSpan: 4,
+ searchSpan: 3,
+ width: 60,
dicData: [
{
label: "发布成绩",
@@ -341,6 +472,7 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ width: 68,
},
{
label: "实操成绩",
@@ -358,31 +490,35 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ width: 68,
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,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ width: 58,
+ rules: [
+ {
+ required: true,
+ message: "请输入考试名称",
+ trigger: "blur",
+ },
+ ],
},
{
label: "是否合格",
@@ -390,7 +526,8 @@
type: "select",
slot: true,
search: true,
- searchSpan: 4,
+ searchSpan: 3,
+ width: 68,
dicData: [
{
label: "合格",
@@ -497,19 +634,41 @@
},
created() {},
mounted() {},
- computed:{
+ computed: {
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
addBtn: this.vaildData(null, false),
- viewBtn: this.vaildData(this.permission.trainExam_performance_view, false),
+ viewBtn: this.vaildData(
+ this.permission.trainExam_performance_view,
+ false
+ ),
delBtn: this.vaildData(null, false),
- editBtn: this.vaildData(this.permission.trainExam_performance_edit, false),
- excelBtn: this.vaildData(this.permission.trainExam_performance_export, false),
+ editBtn: this.vaildData(
+ this.permission.trainExam_performance_edit,
+ false
+ ),
+ excelBtn: this.vaildData(
+ this.permission.trainExam_performance_export,
+ false
+ ),
};
},
},
methods: {
+ openzhengjian(row) {
+ this.baoanzdata = {
+ realName: row.securityName,
+ $sex: row.sex == 1 ? "男" : "女",
+ securitynumber: row.securityNumber,
+ paperTime: row.paperTime,
+ avatar: row.avatar,
+ };
+ this.dialogVisiblezhengjian = true;
+ },
+ closezhengjian() {
+ this.dialogVisiblezhengjian = false;
+ },
questionBankOnLoad(page, params = {}) {
//判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
var that = this;
@@ -517,36 +676,30 @@
var roleIds = this.userInfo.role_id.split(",");
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 == "保安") {
+ //如果是保安公司管理员
+ params["deptId"] = that.userInfo.dept_id;
+ }
+ if (roleAlias == "培训公司管理员") {
+ //如果是培训公司管理员
+ params["trainUnitId"] = that.userInfo.dept_id;
+ }
+ that.questionBankLoading = false;
+ params["examType"] = 2;
+ 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();
+ });
+ });
});
-
},
//缺考标记
absent(row, done, loading) {
@@ -600,7 +753,7 @@
update({
theoryGrade: row.theoryGrade,
learnGrade: row.learnGrade,
- examId:row.examId,
+ examId: row.examId,
id: row.id,
}).then(
() => {
@@ -626,15 +779,65 @@
uploadAfter(res, done, loading, column) {
window.console.log(column);
this.excelBox = false;
+ // this.$message({
+ // type: "success",
+ // message: "操作成功!",
+ // });
this.refreshChange();
done();
},
refreshChange() {
- this.questionBankOnLoad(this.page, this.query);
+ 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,
+ examName: this.questionBankSearch.examName,
+ };
+ //导出
+ 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;
+ //序列号url形式,用&拼接
+ data = Qs.stringify(data);
+ window.open(`/api/examScore/export-examScore?` + data);
+ });
},
},
};
</script>
<style lang="scss" scoped>
+.morpheus-box {
+ position: relative;
+}
+.dialogVisiblezhengjian {
+ position: absolute;
+ background-color: #fff;
+ width: 100%;
+ height: 100%;
+ z-index: 10000 !important;
+}
</style>
--
Gitblit v1.9.3