From 79d9fc857559982b00b68b2d709807bdc4cd286f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 11 Apr 2022 10:58:17 +0800
Subject: [PATCH] minio 地址修改
---
src/views/trainExam/performance.vue | 1509 +++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 1,276 insertions(+), 233 deletions(-)
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index dc7adac..f53f93c 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,114 +1,359 @@
-/*
- * @Author: Morpheus
- * @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-18 19:44:47
- * menu-name 成绩管理
- */
+/* * @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>
- <el-row class="morpheus-box">
- <el-col :span="24" class="recruitmentManagement">
- <el-card>
- <div class="exam-card-body">
- <avue-crud
- v-model="obj"
- class="company-box"
- :option="questionBankOption"
- :search.sync="questionBankSearch"
- :table-loading="questionBankLoading"
- :data="questionBankData"
- :permission="permissionList"
- ref="questionBankCrud"
- :page.sync="questionBankPage"
- @on-load="questionBankOnLoad"
- @selection-change="questionBankSelectionChange"
- @search-change="questionBankSearchChange"
- @search-reset="questionBankSearchReset"
- @current-change="questionBankCurrentChange"
- @size-change="questionBankSizeChange"
- @row-update="questionBankRowUpdate"
- >
- <template slot-scope="{ row }" slot="theoryGrade">
- {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
- </template>
- <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?"缺考,成绩无效":'' }}
- </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"
+ >
+ <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="allGrade">
+ {{ row.allGrade == -1 ? "" : row.allGrade }}
+ </template>
+ <template slot-scope="{ row }" slot="qualified">
+ {{
+ row.qualified == ""
+ ? ""
+ : row.qualified == 0
+ ? "合格"
+ : row.qualified == 1
+ ? "不合格"
+ : row.qualified == 3
+ ? "缺考,成绩无效"
+ : ""
+ }}
+ </template>
- <!-- 自定义按钮 -->
- <template slot="menuLeft">
- <!-- <el-button type="danger"
+ <!-- 自定义按钮 -->
+ <template slot="menuLeft">
+ <!-- <el-button type="danger"
size="mini"
icon="el-icon-delete"
plain
@click="handleDelete">新增
</el-button> -->
- <!-- <el-button type="danger"
+ <!-- <el-button type="danger"
size="mini"
icon="el-icon-delete"
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>
- </template>
+ <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>
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ v-if="permission.trainExam_performance_paper_apply"
+ icon="el-icon-collection-tag"
+ @click="handleSecurityPaperApply"
+ >证书制证申请
+ </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>
+ </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
- >
- </template>
- </avue-crud>
+ <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
+ >
+ </template>
+ </avue-crud>
- <el-dialog
- title="实操成绩导入"
- append-to-body
- :visible.sync="excelBox"
- width="555px"
+ <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>
+ </el-button>
+ </template>
+ </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"
+ >
+ <div>
+ <!-- <el-form
+ ref="gradeForm"
+ :model="gradeForm"
+ :rules="rules"
+ label-width="80px"
+ label-position="left"
+ >
+ <el-row :gutter="24">
+ <el-col :span="12">
+ <el-form-item label="考试名称" label-width="108px">
+ <el-input v-model="gradeForm.examName" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="姓名" label-width="108px">
+ <el-input v-model="gradeForm.securityName" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row :gutter="24">
+ <el-col :span="12">
+ <el-form-item label="身份证号" label-width="108px">
+ <el-input v-model="gradeForm.account" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="准考证号" label-width="108px">
+ <el-input v-model="gradeForm.candidateNo" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row :gutter="24">
+ <el-col :span="12">
+ <el-form-item label="原理论成绩" label-width="108px">
+ <el-input v-model="gradeForm.theoryGrade" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item
+ label="修改考试成绩"
+ label-width="108px"
+ prop="editGrades"
+ >
+ <el-input
+ v-model.number="gradeForm.editGrades"
+ autocomplete="off"
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row :gutter="24">
+ <el-col :span="12">
+ <el-form-item label="实操成绩" label-width="108px">
+ <el-input v-model="gradeForm.learnGrade" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="总成绩" label-width="108px">
+ <el-input v-model="gradeForm.allGrade" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-form-item
+ prop="businessLicense"
+ label="笔试答题图片"
+ label-width="108px"
>
- <avue-form
- :option="excelOption"
- v-model="excelForm"
- :upload-after="uploadAfter"
+ <el-upload
+ list-type="picture-card"
+ action=""
+ :show-file-list="true"
+ :file-list="gradeForm.fileList"
+ :limit="limit"
+ :auto-upload="true"
+ :http-request="httpRequest"
>
- <template slot="excelTemplate">
- <el-button type="primary" @click="handleTemplate">
- 点击下载<i class="el-icon-download el-icon--right"></i>
- </el-button>
- </template>
- </avue-form>
- </el-dialog>
- </div>
- </el-card>
- </el-col>
- </el-row>
+ <i class="el-icon-plus"></i>
+ <div slot="file" slot-scope="{ file }">
+ <img
+ class="el-upload-list__item-thumbnail"
+ :src="file.url"
+ alt=""
+ />
+ <span class="el-upload-list__item-actions">
+ <span
+ class="el-upload-list__item-preview"
+ @click="handlePictureCardPreview(file)"
+ >
+ <i class="el-icon-zoom-in"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleRemove(file)"
+ >
+ <i class="el-icon-delete"></i>
+ </span>
+ </span>
+ </div>
+ <div class="el-upload__tip" slot="tip">
+ 请上传笔试答题图片,只能上传jpg/png文件,最多上传5张图片
+ </div>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible"
+ :modal="true"
+ :modal-append-to-body="true"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false">
+ <img width="100%" :src="dialogImageUrl" alt="">
+ </el-dialog>
+ </el-form-item>
+
+ <el-form-item label="修改理由" label-width="108px">
+ <el-input
+ type="textarea"
+ :rows="3"
+ placeholder="请输入修改理由"
+ resize="none"
+ v-model="gradeForm.editReason"
+ ></el-input>
+ </el-form-item>
+
+ <el-form-item style="text-align: center" label-width="0">
+ <el-button type="primary" @click="uploadGrade('gradeForm')"
+ >确 定</el-button
+ >
+ <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>
+ </div>
+ </el-dialog>
+
+ <!-- <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>
+ </basic-container>
</template>
<script>
-import { getList, update,updateAbsent } from "@/api/examapi/performance";
+import baoanz from "../securityGuard/baoanz.vue";
+import {
+ getList,
+ update,
+ updateAbsent,
+ updateGrade,
+ getNowDate
+} from "@/api/examapi/performance";
import { mapGetters } from "vuex";
import { getRoleDetail } from "@/api/system/role";
+import {
+ securityApply,
+ add
+} from "@/api/accreditationRecords/accreditationRecords";
+import Qs from "qs";
+import { getToken } from "@/util/auth";
+import { putFile, removeFile } from "@/api/resource/oss";
export default {
+ components: {
+ baoanz
+ },
data() {
var validatePass = (rule, value, callback) => {
- console.log(value);
if (value == undefined || value == "") {
callback(new Error("请输入实操成绩"));
return;
@@ -122,10 +367,196 @@
callback();
}
};
+ var validatePass2 = (rule, value, callback) => {
+ if (value == undefined || value == "") {
+ callback(new Error("请输入理论成绩"));
+ return;
+ } else if (value !== "" && isNaN(value) == true) {
+ callback(new Error("请输入数字"));
+ } else if (value <= 0) {
+ callback(new Error("分数设置请大于0"));
+ } else if (value > 100) {
+ callback(new Error("分数设置请小于100"));
+ } else {
+ callback();
+ }
+ };
return {
+ option: {
+ height: "auto",
+ calcHeight: 30,
+ dialogWidth: 1000,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ stripe: true,
+ viewBtn: false,
+ addBtn: false,
+ editBtn: false,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 230,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "考试名称",
+ prop: "examName",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入考试名称",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "姓名",
+ prop: "securityName",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入姓名",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "身份证号",
+ prop: "account",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入身份证号",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "准考证号",
+ prop: "candidateNo",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: false,
+ message: "请输入准考证号",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "原理论成绩",
+ prop: "theoryGrade",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: false,
+ message: "请输入原理论成绩",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "修改考试成绩",
+ prop: "newScore",
+ labelWidth: 110,
+ rules: [
+ {
+ required: true,
+ message: "请输入修改考试成绩",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "实操成绩",
+ prop: "learnGrade",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: false,
+ message: "请输入实操成绩",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "总成绩",
+ prop: "allGrade",
+ labelWidth: 110,
+ disabled: true,
+ rules: [
+ {
+ required: false,
+ message: "请输入总成绩",
+ trigger: "blur"
+ }
+ ]
+ },
+ {
+ label: "笔试答题图片",
+ prop: "url",
+ labelWidth: 110,
+ type: "upload",
+ dataType: "string",
+ span: 24,
+ limit: 5,
+ listType: "picture-card",
+ tip: "只能上传jpg/png文件,最多上传5张",
+ propsHttp: {
+ res: "data",
+ url: "url"
+ },
+ action: "/api/blade-resource/oss/endpoint/put-files"
+ },
+ {
+ label: "修改理由",
+ labelWidth: 110,
+ span: 24,
+ type: "textarea",
+ prop: "editReason"
+ }
+ ]
+ },
+ form: {},
+ limit: 5,
+ dialogImageUrl: "",
+ dialogVisible: false,
+ disabled: false,
+ rules: {
+ editGrades: [
+ { validator: validatePass2, required: true, trigger: "blur" }
+ ]
+ },
+ gradeForm: {
+ id: null,
+ examName: "",
+ securityName: "",
+ account: "",
+ candidateNo: "",
+ theoryGrade: "",
+ learnGrade: "",
+ allGrade: "",
+ editGrades: "",
+ editReason: "",
+ fileList: []
+ },
+ gradeBoxVisible: false,
+ dialogVisiblezhengjian: false,
+ baoanzdata: {},
obj: {
- name: "张三",
+ name: "张三"
},
excelBox: false,
questionBankOption: {
@@ -133,16 +564,24 @@
delBtn: false,
editBtn: true,
addBtn: false,
- selection: false,
// 导出按钮
- excelBtn: true,
- excelBtnText: "成绩导出",
- viewBtn: true,
+ // excelBtn: true,
+ // excelBtnText: "成绩导出",
+ viewBtn: false,
+ selection: true,
+ reserveSelection: true,
+ selectable: row => {
+ if (row.qualified != "0" || row.isPaper == 6) {
+ return false;
+ } else {
+ return true;
+ }
+ },
// title: '成绩',
align: "center",
height: "auto",
calcHeight: 80,
- tip: false,
+ tip: true,
searchShow: true,
searchMenuSpan: 4,
index: true,
@@ -151,17 +590,44 @@
dialogClickModal: false,
// 操作栏宽度
menu: true,
- menuWidth: 136,
+ menuWidth: 330,
labelWidth: 120,
+ ...this.$store.state.control.clearOtherBut,
column: [
{
- label: "考试名称",
- prop: "examName",
+ label: "考试时间",
+ prop: "examDate",
+ type: "date",
+ hide: true,
+ format: "yyyy-MM-dd",
+ valueFormat: "yyyy-MM-dd",
+ width: 140,
+ slot: true,
search: true,
searchSpan: 4,
- slot: true,
- viewDisplay:true,
+ // 表单新增时是否禁止
+ 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,
// 表单新增时是否可见
@@ -179,14 +645,45 @@
{
required: true,
message: "请输入试卷名称",
- trigger: "blur",
- },
+ trigger: "blur"
+ }
],
- width:250,
+ overHidden: true
+ },
+ {
+ label: "姓名",
+ prop: "securityName",
+ search: true,
+ searchSpan: 3,
+ slot: true,
+ viewDisplay: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ viewDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ searchLabelWidth: 50,
+ searchSpan: 3,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入试卷名称",
+ trigger: "blur"
+ }
+ ],
+ width: 80
// overHidden:true,
},
{
- label: "用户名",
+ label: "身份证号",
prop: "account",
search: true,
searchSpan: 4,
@@ -207,14 +704,55 @@
{
required: true,
message: "请输入保安姓名",
- trigger: "blur",
- },
+ trigger: "blur"
+ }
],
- width:160,
+ width: 140
+ },
+ {
+ label: "准考证号",
+ prop: "candidateNo",
+ search: true,
+ searchSpan: 4,
+ hide: true,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入保安姓名",
+ trigger: "blur"
+ }
+ ],
+ width: 110
+ },
+ {
+ label: "照片",
+ prop: "avatar",
+ type: "upload",
+ listType: "picture-img",
+ width: 60,
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false
},
{
label: "所属公司",
prop: "companyName",
+ sortable: true,
search: true,
searchSpan: 4,
// dicUrl: '/api/blade-system/dept/tree',
@@ -239,10 +777,11 @@
{
required: true,
message: "请输入所属公司",
- trigger: "blur",
- },
+ trigger: "blur"
+ }
],
- width:230,
+ width: 180,
+ overHidden: true
},
{
label: "考试开始时间",
@@ -251,7 +790,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,
@@ -264,7 +803,7 @@
// 表单编辑时是否可见
editDisplay: true,
// 表单编辑时是否为查看模式
- editDetail: false,
+ editDetail: false
},
{
label: "考试结束时间",
@@ -273,7 +812,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,
@@ -286,24 +825,33 @@
// 表单编辑时是否可见
editDisplay: true,
// 表单编辑时是否为查看模式
- editDetail: false,
+ editDetail: false
},
{
- label: "状态",
+ label: "考试状态",
prop: "isExam",
type: "select",
slot: true,
search: true,
- searchSpan: 4,
+ searchSpan: 3,
+ width: 80,
dicData: [
{
label: "发布成绩",
- value: 2,
+ value: 2
},
{
label: "考试中",
- value: 3,
+ value: 3
},
+ {
+ label: "纸质考试",
+ value: 5
+ },
+ {
+ label: "缺考",
+ value: 4
+ }
],
// 表单新增时是否禁止
addDisabled: false,
@@ -321,14 +869,15 @@
{
required: true,
message: "请输入考试名称",
- trigger: "blur",
- },
- ],
+ trigger: "blur"
+ }
+ ]
},
{
label: "理论成绩",
prop: "theoryGrade",
slot: true,
+ sortable: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -341,11 +890,13 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ width: 95
},
{
label: "实操成绩",
prop: "learnGrade",
slot: true,
+ sortable: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -358,57 +909,16 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
+ width: 95,
rules: [
- { validator: validatePass, required: true, trigger: "blur" },
- ],
+ { 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: "qualified",
- type: "select",
+ label: "总成绩",
+ prop: "allGrade",
slot: true,
- search: true,
- searchSpan: 4,
- dicData: [
- {
- label: "合格",
- value: 0,
- },
- {
- label: "不合格",
- value: 1,
- },
- {
- label: "暂未录实操成绩",
- value: 2,
- },
- {
- label: "缺考,成绩无效",
- value: 3,
- },
- ],
+ sortable: true,
// 表单新增时是否禁止
addDisabled: false,
// 表单新增时是否可见
@@ -421,23 +931,153 @@
editDisplay: true,
// 表单编辑时是否为查看模式
editDetail: false,
- rules: [
- {
- required: true,
- message: "请输入考试名称",
- trigger: "blur",
- },
- ],
+ width: 80
},
- ],
+ {
+ label: "是否合格",
+ prop: "qualified",
+ type: "select",
+ slot: true,
+ hide: true,
+ search: true,
+ searchSpan: 4,
+ width: 90,
+ dicData: [
+ {
+ label: "合格",
+ value: 0
+ },
+ {
+ label: "不合格",
+ value: 1
+ },
+ {
+ label: "暂未录实操成绩",
+ value: 2
+ },
+ {
+ label: "缺考,成绩无效",
+ value: 3
+ }
+ ],
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ viewDetail: false,
+ viewDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false
+ },
+ {
+ label: "是否合格",
+ prop: "qualifieds",
+ type: "select",
+ sortable: true,
+ searchSpan: 3,
+ width: 100,
+ dicData: [
+ {
+ label: "合格",
+ value: 0
+ },
+ {
+ label: "不合格",
+ value: 1
+ },
+ {
+ label: "暂未录实操成绩",
+ value: 2
+ },
+ {
+ label: "缺考,成绩无效",
+ value: 3
+ }
+ ],
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false
+ },
+ {
+ label: "是否制证",
+ prop: "isPaper",
+ type: "select",
+ search: true,
+ width: 70,
+ searchSpan: 3,
+ addDisplay: false,
+ editDisplay: false,
+ // hide: true,
+ display: false,
+ dicData: [
+ {
+ label: "全部",
+ value: 10
+ },
+ {
+ label: "已制证",
+ value: 6
+ },
+ {
+ label: "未制证",
+ value: 7
+ }
+ ]
+ },
+ {
+ label: "有无照片",
+ prop: "isAvatar",
+ type: "select",
+ search: true,
+ searchLabelWidth: 90,
+ minWidth: 105,
+ searchSpan: 3,
+ addDisplay: false,
+ editDisplay: false,
+ hide: true,
+ display: false,
+ dicData: [
+ {
+ label: "全部",
+ value: 3
+ },
+ {
+ label: "有",
+ value: 1
+ },
+ {
+ label: "无",
+ value: 2
+ }
+ ]
+ }
+ ]
},
questionBankSearch: {},
questionBankLoading: true,
questionBankData: [],
+ sort: "",
+ sortName: "",
questionBankPage: {
pageSize: 10,
currentPage: 1,
total: 16,
+ ...this.$store.state.control.changePageSize
},
questionBankQuery: {},
questionBankSelectionList: [],
@@ -454,10 +1094,10 @@
loadText: "模板上传中,请稍等",
span: 24,
propsHttp: {
- res: "data",
+ res: "data"
},
tip: "请上传 .xls,.xlsx 标准格式文件",
- action: "/api/examScore/import-examScore",
+ action: "/api/examScore/import-examScore"
},
// {
// label: "数据覆盖",
@@ -489,95 +1129,437 @@
label: "模板下载",
prop: "excelTemplate",
formslot: true,
- span: 24,
- },
- ],
+ span: 24
+ }
+ ]
},
+ choiceList: []
};
},
created() {},
- mounted() {},
- computed:{
+ mounted() {
+ this.$store.commit("setWindowSizeHeightAdd");
+ },
+ 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: {
+ //提交考试成绩修改申请
+ submit(row, done, loading) {
+ var that = this;
+ row["createUser"] = this.userInfo.Id;
+ // console.log(row,1234660);
+ updateGrade(row).then(
+ () => {
+ that.$refs.form.resetFields();
+ that.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ that.gradeBoxVisible = false;
+
+ done();
+ },
+ error => {
+ window.console.log(error);
+ done();
+ }
+ );
+ },
+ //自定义上传
+ httpRequest(opt) {
+ var that = this;
+ const file = opt.file;
+ // 根据后台需求数据格式
+ const form = new FormData();
+ // 文件对象
+ form.append("file", file);
+ putFile(form).then(res => {
+ that.gradeForm.fileList.push({
+ name: res.data.data.name,
+ url: res.data.data.url
+ });
+ console.log(that.gradeForm.fileList, 365441);
+ });
+ console.log(that.gradeForm.fileList, 11122222);
+ },
+ //图片展示
+ handlePictureCardPreview(file) {
+ this.dialogImageUrl = file.url;
+ this.dialogVisible = true;
+ },
+ //图片删除
+ handleRemove(file) {
+ var index = [];
+ //遍历图片集合,获取下标
+ this.gradeForm.fileList.forEach(function(img, i) {
+ if (img.name == file.name) {
+ index.push(i);
+ //存储对象中删除
+ removeFile(img.name);
+ }
+ });
+ // console.log(index,222333);
+ //删除
+ for (var i = 0; i < index.length; i++) {
+ this.gradeForm.fileList.splice(index[i] - i, 1);
+ }
+ },
+ selectionChange(list) {
+ // this.selectionList = list;
+ this.choiceList = [];
+ for (let k in list) {
+ this.choiceList.push({
+ id: list[k].userId
+ });
+ }
+ },
+ //证书制证申请
+ handleSecurityPaperApply() {
+ if (this.choiceList.length === 0) {
+ this.$message.warning("请勾选至少一位持证保安员");
+ return;
+ }
+ this.$confirm(
+ "共选择制证申请人数" + this.choiceList.length + "人,确定申请制证?",
+ {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ }
+ )
+ .then(() => {
+ let cho = this.choiceList;
+ let str = "";
+ for (let k in cho) {
+ str += cho[k].id;
+ if (k != cho.length - 1) {
+ str += ",";
+ }
+ }
+ const data = {
+ ids: str,
+ createUser: this.userInfo.user_id,
+ type: 2
+ };
+ return securityApply(data);
+ })
+ .then(() => {
+ this.$refs.questionBankCrud.toggleSelection();
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ });
+ },
+ //上岗证制证申请
+ handleWorkerPaperApply() {
+ if (this.choiceList.length === 0) {
+ this.$message.warning("请勾选至少一位持证保安员");
+ return;
+ }
+ this.$confirm(
+ "共选择上岗证制证申请人数" +
+ this.choiceList.length +
+ "人,确定申请制证?",
+ {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ }
+ )
+ .then(() => {
+ let cho = this.choiceList;
+ let str = "";
+ for (let k in cho) {
+ str += cho[k].id;
+ if (k != cho.length - 1) {
+ str += ",";
+ }
+ }
+ const data = {
+ ids: str,
+ createUser: this.userInfo.user_id,
+ type: 1
+ };
+ return securityApply(data);
+ })
+ .then(() => {
+ this.$refs.questionBankCrud.toggleSelection();
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ });
+ },
+ openzhengjian(row) {
+ this.baoanzdata = {
+ realName: row.securityName,
+ $sex: row.sex == 1 ? "男" : "女",
+ securitynumber: row.securityNumber,
+ paperTime: row.paperTime,
+ avatar: row.avatar
+ };
+ this.dialogVisiblezhengjian = true;
+ },
+ //关闭dialog
+ dialogBeforeClose(done) {
+ this.gradeForm.fileList = [];
+ done();
+ },
+ closezhengjian() {
+ this.dialogVisiblezhengjian = false;
+ },
+ //排序
+ 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 == "qualifieds") {
+ this.sortName = "qualified";
+ }
+ if (value.prop == "companyName") {
+ this.sortName = "companyName";
+ }
+ this.questionBankOnLoad(this.questionBankPage);
+ },
questionBankOnLoad(page, params = {}) {
//判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
var that = this;
//获取当前登录人员的角色信息
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;
- }
- 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();
+ 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;
+ }
+ 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;
+
+ data.records.forEach(item => {
+ if (item.isPaper == null || item.isPaper == -1) {
+ item.isPaper = "";
+ }
+ if (item.theoryGrade == null && item.learnGrade == -1) {
+ item.qualified = "";
+ }
+ item.theoryGrade == null
+ ? (item.theoryGrade = "")
+ : item.theoryGrade;
+ item.learnGrade == -1 ? (item.learnGrade = "") : item.learnGrade;
});
- })
+ for (let k in data.records) {
+ data.records[k]["qualifieds"] =
+ data.records[k]["qualified"] == -1
+ ? ""
+ : data.records[k]["qualified"];
+ }
+ that.questionBankPage.total = data.total;
+ that.questionBankData = data.records;
+ that.questionBankLoading = false;
+ that.$store.commit("setWindowSizeHeightAdd");
+ that.questionBankSelectionClear();
+ });
+ });
});
-
},
- //缺考标记
- absent(row, done, loading) {
- this.$confirm("确定缺考标记?", {
+ //补证申请
+ securityPaperApply(row, done, loading) {
+ this.$confirm("当前保安员已制证,确定要继续申请制证?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
- type: "warning",
+ type: "warning"
}).then(() => {
- row.qualified = 3;
- updateAbsent(row).then(
+ const data = {
+ createUser: this.userInfo.user_id,
+ type: 2,
+ userId: row.userId
+ };
+ add(data).then(
() => {
- this.onLoad(this.page);
+ this.questionBankOnLoad(this.questionBankPage);
this.$message({
type: "success",
- message: "操作成功!",
+ message: "操作成功!"
});
done();
},
- (error) => {
+ error => {
window.console.log(error);
loading();
}
);
});
},
+ //缺考标记
+ absent(row, done, loading) {
+ this.$confirm("确定缺考标记?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ }).then(() => {
+ row.qualified = 3;
+ updateAbsent(row).then(
+ () => {
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+ done();
+ },
+ error => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ });
+ },
+
+ // 修改考试成绩
+ modifiedGrades(row) {
+ var that = this;
+ //判断时间,获取系统时间,减去考试结束时间,小于24小时则可以申请,超过则提示无法申请
+ var endTime = row.endTime;
+ //必须把日期'-'转为'/'
+ endTime = endTime.replace(/-/g, "/");
+ //得到时间戳
+ var longtime = new Date(endTime).getTime();
+ // console.log(longtime,123466);
+ getNowDate().then(res => {
+ 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;
+ // } else {
+ // //提示
+ // that.$message({
+ // type: "warning",
+ // message: "成绩修改申请只能在考试截止时间后的24小内提交!"
+ // });
+ // }
+ } else {
+ 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;
+ }
+ });
+ },
+
+ uploadGrade(formName) {
+ var that = this;
+
+ this.$refs[formName].validate(valid => {
+ if (valid) {
+ var obj = {};
+ obj.oldScore = this.gradeForm.theoryGrade;
+ obj.newScore = this.gradeForm.editGrades;
+ obj.applyCause = this.gradeForm.editReason;
+ obj.examScoreId = this.gradeForm.id;
+ obj.createUser = this.userInfo.Id;
+
+ updateGrade(obj).then(
+ () => {
+ that.questionBankOnLoad(that.questionBankPage);
+ that.$message({
+ type: "success",
+ message: "操作成功!"
+ });
+
+ that.gradeBoxVisible = false;
+ },
+ error => {
+ window.console.log(error);
+ }
+ );
+ }
+ });
+ },
+
questionBankSelectionClear() {
this.questionBankSelectionList = [];
- this.$refs.questionBankCrud.toggleSelection();
+ this.sort = "";
+ this.sortName = "";
+ // this.$refs.questionBankCrud.toggleSelection();
},
questionBankSelectionChange(list) {
- this.questionBankSelectionList = list;
+ // this.questionBankSelectionList = list;
+ this.choiceList = [];
+ for (let k in list) {
+ this.choiceList.push({
+ id: list[k].userId
+ });
+ }
},
questionBankSearchChange(params, done) {
this.questionBankQuery = params;
@@ -600,25 +1582,29 @@
update({
theoryGrade: row.theoryGrade,
learnGrade: row.learnGrade,
- examId:row.examId,
- id: row.id,
+ examId: row.examId,
+ id: row.id
}).then(
() => {
this.questionBankOnLoad(this.questionBankPage);
this.$message({
type: "success",
- message: "操作成功!",
+ message: "操作成功!"
});
done();
},
- (error) => {
+ error => {
window.console.log(error);
loading();
}
);
},
handleTemplate() {
- window.open(`/api/examScore/export-template`);
+ window.open(
+ `/api/examScore/export-template?${
+ this.website.tokenHeader
+ }=${getToken()}&`
+ );
},
handleImport() {
this.excelBox = true;
@@ -626,15 +1612,72 @@
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,
+ isAvatar: this.questionBankSearch.isAvatar,
+ isPaper: this.questionBankSearch.isPaper
+ };
+ //导出
+ 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,11225111);
+ //序列号url形式,用&拼接
+ data = Qs.stringify(data);
+ window.open(
+ `/api/examScore/export-examScore?${
+ this.website.tokenHeader
+ }=${getToken()}&` + 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