From 0caae4016eb87ea3a5d5ee472c1ddd22c38fe0c9 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sun, 25 Jun 2023 17:41:09 +0800
Subject: [PATCH] 晋城保安系统

---
 src/views/trainExam/performance.vue |  372 +++++++++++++++++++++++-----------------------------
 1 files changed, 163 insertions(+), 209 deletions(-)

diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index f53f93c..c3953c9 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,53 +1,37 @@
 /* * @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>
-  <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"
-    >
+  <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="learnGrade">
+         {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade==0?'合格':'不合格'}}
+      </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 == 0
             ? "合格"
             : row.qualified == 1
-            ? "不合格"
-            : row.qualified == 3
-            ? "缺考,成绩无效"
-            : ""
+              ? "不合格"
+              : row.qualified == 3
+                ? "缺考,成绩无效"
+                : ""
         }}
       </template>
 
@@ -65,90 +49,36 @@
                                        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 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 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 type="danger" size="small" plain icon="el-icon-delete" v-if="permission.trainExam_performance_delete"
+          @click="handleDelete">删 除
         </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 type="primary" size="small" plain v-if="permission.trainExam_performance_paper_apply"
+          style="display: none;" icon="el-icon-collection-tag" @click="handleSecurityPaperApply">证书制证申请
+        </el-button>
+        <el-button type="primary" size="small" plain v-if="permission.trainExam_performance_worker_paper_apply"
+          style="display: none;" icon="el-icon-collection-tag" @click="handleWorkerPaperApply">上岗证制证申请
         </el-button>
       </template>
 
       <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
-        >
+        <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"
-    >
-      <avue-form
-        :option="excelOption"
-        v-model="excelForm"
-        :upload-after="uploadAfter"
-      >
+    <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>
@@ -157,17 +87,9 @@
       </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"
-    >
+    <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"
@@ -303,13 +225,7 @@
             <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 ref="form" :option="option" v-model="form" @reset-change="emptytChange" @submit="submit">
         </avue-form>
       </div>
     </el-dialog>
@@ -320,12 +236,7 @@
       :modal-append-to-body="false"
     > -->
     <div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian">
-      <baoanz
-        :data="baoanzdata"
-        :close="1"
-        @close="closezhengjian"
-        :closePrint="1"
-      ></baoanz>
+      <baoanz :data="baoanzdata" :close="1" @close="closezhengjian" :closePrint="1"></baoanz>
     </div>
   </basic-container>
 </template>
@@ -337,6 +248,7 @@
   update,
   updateAbsent,
   updateGrade,
+  remove,
   getNowDate
 } from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
@@ -482,6 +394,7 @@
             label: "实操成绩",
             prop: "learnGrade",
             labelWidth: 110,
+            type: "select",
             disabled: true,
             rules: [
               {
@@ -489,21 +402,35 @@
                 message: "请输入实操成绩",
                 trigger: "blur"
               }
-            ]
-          },
-          {
-            label: "总成绩",
-            prop: "allGrade",
-            labelWidth: 110,
-            disabled: true,
-            rules: [
+            ],
+            dicData: [
               {
-                required: false,
-                message: "请输入总成绩",
-                trigger: "blur"
+                label: "合格",
+                value: 0
+              },
+              {
+                label: "不合格",
+                value: 1
+              },
+              {
+                label: "暂未录实操成绩",
+                value: 2
               }
-            ]
+            ],
           },
+          // {
+          //   label: "总成绩",
+          //   prop: "allGrade",
+          //   labelWidth: 110,
+          //   disabled: true,
+          //   rules: [
+          //     {
+          //       required: false,
+          //       message: "请输入总成绩",
+          //       trigger: "blur"
+          //     }
+          //   ]
+          // },
           {
             label: "笔试答题图片",
             prop: "url",
@@ -571,7 +498,7 @@
         selection: true,
         reserveSelection: true,
         selectable: row => {
-          if (row.qualified != "0" || row.isPaper == 6) {
+          if (row.isExam == 3) {
             return false;
           } else {
             return true;
@@ -750,17 +677,10 @@
             editDetail: false
           },
           {
-            label: "所属公司",
-            prop: "companyName",
-            sortable: true,
+            label: "从业单位",
+            prop: "unitName",
             search: true,
             searchSpan: 4,
-            // dicUrl: '/api/blade-system/dept/tree',
-            // props: {
-            //     label: "title",
-            //     value: "id",
-            // },
-            slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -776,7 +696,7 @@
             rules: [
               {
                 required: true,
-                message: "请输入所属公司",
+                message: "请输入从业单位",
                 trigger: "blur"
               }
             ],
@@ -895,8 +815,9 @@
           {
             label: "实操成绩",
             prop: "learnGrade",
-            slot: true,
-            sortable: true,
+            type: "select",
+            // slot: true,
+            // sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -910,29 +831,36 @@
             // 表单编辑时是否为查看模式
             editDetail: false,
             width: 95,
-            rules: [
-              { validator: validatePass, required: true, trigger: "blur" }
-            ]
+            dicData: [
+              {
+                label: "合格",
+                value: 0
+              },
+              {
+                label: "不合格",
+                value: 1
+              }
+            ],
           },
-          {
-            label: "总成绩",
-            prop: "allGrade",
-            slot: true,
-            sortable: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: true,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            width: 80
-          },
+          // {
+          //   label: "总成绩",
+          //   prop: "allGrade",
+          //   slot: true,
+          //   sortable: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: true,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: true,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   width: 80
+          // },
           {
             label: "是否合格",
             prop: "qualified",
@@ -1080,6 +1008,7 @@
         ...this.$store.state.control.changePageSize
       },
       questionBankQuery: {},
+      selectionList: [],
       questionBankSelectionList: [],
       excelForm: {},
       excelOption: {
@@ -1136,12 +1065,19 @@
       choiceList: []
     };
   },
-  created() {},
+  created() { },
   mounted() {
     this.$store.commit("setWindowSizeHeightAdd");
   },
   computed: {
     ...mapGetters(["userInfo", "permission"]),
+    ids() {
+      let ids = [];
+      this.questionBankSelectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
     permissionList() {
       return {
         addBtn: this.vaildData(null, false),
@@ -1162,6 +1098,29 @@
     }
   },
   methods: {
+    // 批量删除
+    handleDelete() {
+      if (this.questionBankSelectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择考试成绩删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
     //提交考试成绩修改申请
     submit(row, done, loading) {
       var that = this;
@@ -1197,9 +1156,9 @@
           name: res.data.data.name,
           url: res.data.data.url
         });
-        console.log(that.gradeForm.fileList, 365441);
+        // console.log(that.gradeForm.fileList, 365441);
       });
-      console.log(that.gradeForm.fileList, 11122222);
+      // console.log(that.gradeForm.fileList, 11122222);
     },
     //图片展示
     handlePictureCardPreview(file) {
@@ -1210,7 +1169,7 @@
     handleRemove(file) {
       var index = [];
       //遍历图片集合,获取下标
-      this.gradeForm.fileList.forEach(function(img, i) {
+      this.gradeForm.fileList.forEach(function (img, i) {
         if (img.name == file.name) {
           index.push(i);
           //存储对象中删除
@@ -1224,7 +1183,7 @@
       }
     },
     selectionChange(list) {
-      // this.selectionList = list;
+      this.selectionList = list;
       this.choiceList = [];
       for (let k in list) {
         this.choiceList.push({
@@ -1278,8 +1237,8 @@
       }
       this.$confirm(
         "共选择上岗证制证申请人数" +
-          this.choiceList.length +
-          "人,确定申请制证?",
+        this.choiceList.length +
+        "人,确定申请制证?",
         {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
@@ -1465,7 +1424,6 @@
         );
       });
     },
-
     // 修改考试成绩
     modifiedGrades(row) {
       var that = this;
@@ -1480,18 +1438,18 @@
         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;
+          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({
@@ -1515,7 +1473,6 @@
         }
       });
     },
-
     uploadGrade(formName) {
       var that = this;
 
@@ -1545,7 +1502,6 @@
         }
       });
     },
-
     questionBankSelectionClear() {
       this.questionBankSelectionList = [];
       this.sort = "";
@@ -1553,7 +1509,7 @@
       // this.$refs.questionBankCrud.toggleSelection();
     },
     questionBankSelectionChange(list) {
-      // this.questionBankSelectionList = list;
+      this.questionBankSelectionList = list;
       this.choiceList = [];
       for (let k in list) {
         this.choiceList.push({
@@ -1577,7 +1533,6 @@
     questionBankSizeChange(pageSize) {
       this.questionBankPage.pageSize = pageSize;
     },
-
     questionBankRowUpdate(row, index, done, loading) {
       update({
         theoryGrade: row.theoryGrade,
@@ -1601,8 +1556,7 @@
     },
     handleTemplate() {
       window.open(
-        `/api/examScore/export-template?${
-          this.website.tokenHeader
+        `/api/examScore/export-template?${this.website.tokenHeader
         }=${getToken()}&`
       );
     },
@@ -1659,8 +1613,7 @@
         //序列号url形式,用&拼接
         data = Qs.stringify(data);
         window.open(
-          `/api/examScore/export-examScore?${
-            this.website.tokenHeader
+          `/api/examScore/export-examScore?${this.website.tokenHeader
           }=${getToken()}&` + data
         );
       });
@@ -1673,6 +1626,7 @@
 .morpheus-box {
   position: relative;
 }
+
 .dialogVisiblezhengjian {
   position: absolute;
   background-color: #fff;

--
Gitblit v1.9.3