From d56d2182f0f886f748130d39a24d69028e8bd960 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 19 Oct 2021 22:13:36 +0800
Subject: [PATCH] 成绩管理可以按天导出成绩,保安员批量导入,个人照片批量导入修改
---
src/views/securityGuard/securityGuard.vue | 210 +++++++++++++++++-----------------
src/views/trainExam/performance.vue | 68 ++++++++++
src/router/axios.js | 39 +++---
3 files changed, 190 insertions(+), 127 deletions(-)
diff --git a/src/router/axios.js b/src/router/axios.js
index 7b0a00d..15c6d44 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -8,33 +8,34 @@
import axios from 'axios';
import store from '@/store/';
import router from '@/router/router';
-import {serialize} from '@/util/util';
-import {getToken} from '@/util/auth';
-import {Message} from 'element-ui';
+import { serialize } from '@/util/util';
+import { getToken } from '@/util/auth';
+// import { Message } from 'element-ui';
+import { MessageBox } from 'element-ui';
import website from '@/config/website';
-import {Base64} from 'js-base64';
+import { Base64 } from 'js-base64';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
//默认超时时间
-axios.defaults.timeout = 10000;
+axios.defaults.timeout = 60000;
//返回其他状态码
-axios.defaults.validateStatus = function (status) {
- return status >= 200 && status <= 500;
+axios.defaults.validateStatus = function(status) {
+ return status >= 200 && status <= 500;
};
//跨域请求,允许保存cookie
axios.defaults.withCredentials = true;
// NProgress 配置
NProgress.configure({
- showSpinner: false
+ showSpinner: false
});
//http request拦截
axios.interceptors.request.use(config => {
- //开启 progress bar
- NProgress.start();
- const meta = (config.meta || {});
- const isToken = meta.isToken === false;
- config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+ //开启 progress bar
+ NProgress.start();
+ const meta = (config.meta || {});
+ const isToken = meta.isToken === false;
+ config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
//让每个请求携带token
if (getToken() && !isToken) {
config.headers[website.tokenHeader] = 'bearer ' + getToken()
@@ -65,10 +66,12 @@
if (status === 401) store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
// 如果请求为非200否者默认统一处理
if (status !== 200) {
- Message({
- message: message,
- type: 'error'
- });
+ // Message({
+ // message: message,
+ // type: 'error'
+ // });
+ MessageBox.alert(message);
+ // alert(message);
return Promise.reject(new Error(message))
}
return res;
@@ -77,4 +80,4 @@
return Promise.reject(new Error(error));
});
-export default axios;
+export default axios;
\ No newline at end of file
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index f6580bc..3cf9e0d 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -46,7 +46,7 @@
icon="el-icon-upload2"
v-if="permission.securityGuard_import"
@click="handleImport1"
- >批量导入
+ >保安员批量导入
</el-button>
<el-button
type="success"
@@ -311,30 +311,30 @@
export default {
data() {
- const validatePass = (rule, value, callback) => {
- if (value === "") {
- callback(new Error("请输入密码"));
- } else {
- callback();
- }
- };
- const validatePass2 = (rule, value, callback) => {
- if (value === "") {
- callback(new Error("请再次输入密码"));
- } else if (value !== this.form.password) {
- callback(new Error("两次输入密码不一致!"));
- } else {
- callback();
- }
- };
- const validatePassNumber = (rule, value, callback) => {
- var test = /^[0-9]*$/gm;
- if (!test.test(value)) {
- callback(new Error("请输入数字"));
- } else {
- callback();
- }
- };
+ // const validatePass = (rule, value, callback) => {
+ // if (value === "") {
+ // callback(new Error("请输入密码"));
+ // } else {
+ // callback();
+ // }
+ // };
+ // const validatePass2 = (rule, value, callback) => {
+ // if (value === "") {
+ // callback(new Error("请再次输入密码"));
+ // } else if (value !== this.form.password) {
+ // callback(new Error("两次输入密码不一致!"));
+ // } else {
+ // callback();
+ // }
+ // };
+ // const validatePassNumber = (rule, value, callback) => {
+ // var test = /^[0-9]*$/gm;
+ // if (!test.test(value)) {
+ // callback(new Error("请输入数字"));
+ // } else {
+ // callback();
+ // }
+ // };
const validatePassCardid = (rule, value, callback) => {
var test = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/g;
if (!test.test(value) && value.length < 17) {
@@ -514,49 +514,6 @@
],
},
{
- label: "登录账号",
- prop: "account",
- editDisabled: true,
- rules: [
- {
- required: true,
- message: "请输入登录账号",
- trigger: "blur",
- },
- ],
- // disabled: true,
- },
- {
- label: "密码",
- prop: "password",
- type: "password",
- hide: true,
- editDisplay: false,
- viewDisplay: false,
- rules: [
- { required: true, validator: validatePass, trigger: "blur" },
- ],
- },
- {
- label: "确认密码",
- prop: "password2",
- type: "password",
- hide: true,
- editDisplay: false,
- viewDisplay: false,
- rules: [
- { required: true, validator: validatePass2, trigger: "blur" },
- ],
- },
- ],
- },
- {
- label: "详细信息",
- prop: "detailInfo",
- labelWidth: "110",
- icon: "el-icon-s-order",
- column: [
- {
label: "姓名",
prop: "realName",
rules: [
@@ -572,10 +529,88 @@
},
],
},
+ // {
+ // label: "登录账号",
+ // prop: "account",
+ // editDisabled: true,
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入登录账号",
+ // trigger: "blur",
+ // },
+ // ],
+ // // disabled: true,
+ // },
+ // {
+ // label: "密码",
+ // prop: "password",
+ // type: "password",
+ // hide: true,
+ // editDisplay: false,
+ // viewDisplay: false,
+ // rules: [
+ // { required: true, validator: validatePass, trigger: "blur" },
+ // ],
+ // },
+ // {
+ // label: "确认密码",
+ // prop: "password2",
+ // type: "password",
+ // hide: true,
+ // editDisplay: false,
+ // viewDisplay: false,
+ // rules: [
+ // { required: true, validator: validatePass2, trigger: "blur" },
+ // ],
+ // },
+ ],
+ },
+ {
+ label: "详细信息",
+ prop: "detailInfo",
+ labelWidth: "110",
+ icon: "el-icon-s-order",
+ column: [
{
- label: "昵称",
- prop: "name",
+ label: "身份证号",
+ prop: "cardid",
+ hide: true,
+ overHidden: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入身份证号",
+ trigger: "blur",
+ },
+ {
+ required: true,
+ validator: validatePassCardid,
+ trigger: "blur",
+ },
+ ],
},
+ {
+ label: "手机号码",
+ prop: "phone",
+ overHidden: true,
+ rules: [
+ {
+ required: true,
+ message: "请输入手机号",
+ trigger: "blur",
+ },
+ {
+ required: true,
+ validator: validatePassPhone,
+ trigger: "blur",
+ },
+ ],
+ },
+ // {
+ // label: "昵称",
+ // prop: "name",
+ // },
{
label: "个人照片",
type: "upload",
@@ -647,41 +682,6 @@
label: "保安员证编号",
prop: "securitynumber",
hide: true,
- },
- {
- label: "身份证号",
- prop: "cardid",
- hide: true,
- overHidden: true,
- rules: [
- {
- required: true,
- message: "请输入身份证号",
- trigger: "blur",
- },
- {
- required: true,
- validator: validatePassCardid,
- trigger: "blur",
- },
- ],
- },
- {
- label: "手机号码",
- prop: "phone",
- overHidden: true,
- rules: [
- {
- required: true,
- message: "请输入手机号",
- trigger: "blur",
- },
- {
- required: true,
- validator: validatePassPhone,
- trigger: "blur",
- },
- ],
},
{
label: "电子邮箱",
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index f66c85d..66b3304 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -75,6 +75,15 @@
@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">
@@ -146,8 +155,8 @@
addBtn: false,
selection: false,
// 导出按钮
- excelBtn: true,
- excelBtnText: "成绩导出",
+ // excelBtn: true,
+ // excelBtnText: "成绩导出",
viewBtn: true,
// title: '成绩',
align: "center",
@@ -167,10 +176,35 @@
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,
+ // search: true,
+ // searchSpan: 4,
slot: true,
viewDisplay: true,
// 表单新增时是否禁止
@@ -474,6 +508,7 @@
},
],
},
+
],
},
questionBankSearch: {},
@@ -680,6 +715,31 @@
refreshChange() {
this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
},
+ //成绩导出
+ handleExport() {
+ this.$confirm("是否导出成绩数据?", "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ }).then(() => {
+ //获取查询条件
+ console.log(this.questionBankSearch,456);
+ //导出
+ const account = this.questionBankSearch.account;
+ const companyName = this.questionBankSearch.companyName;
+ const examDate = this.questionBankSearch.examDate;
+ const isExam = this.questionBankSearch.isExam;
+ const qualified = this.questionBankSearch.qualified;
+ const securityName = this.questionBankSearch.securityName;
+ window.open(
+ `/api/examScore/export-examScore?examDate=`+ examDate +"&account="+account+
+ "&companyName="+companyName+
+ "&isExam="+isExam+
+ "&qualified="+qualified+
+ "&securityName="+securityName
+ );
+ });
+ },
},
};
</script>
--
Gitblit v1.9.3