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