From 1cde4a2b16b7067f551393c3e712b101694d411f Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 06 Nov 2023 17:55:29 +0800
Subject: [PATCH] 重置考试按钮

---
 src/views/trainExam/performance.vue |  495 +++++++++++++++++++-----------
 src/api/trainExam/trainExam.js      |    3 
 src/api/examapi/performance.js      |   10 
 src/views/flow/model.vue            |  431 ++++++++++++--------------
 4 files changed, 517 insertions(+), 422 deletions(-)

diff --git a/src/api/examapi/performance.js b/src/api/examapi/performance.js
index 7b6e870..b456ce2 100644
--- a/src/api/examapi/performance.js
+++ b/src/api/examapi/performance.js
@@ -52,4 +52,14 @@
         method: 'get',
         params: {}
     })
+}
+
+export const reselfExamScore = (scoreId) => {
+    return request({
+        url: '/api/examScore/refreshTrainExamInfo',
+        method: 'post',
+        data: {
+            scoreId
+        }
+    })
 }
\ No newline at end of file
diff --git a/src/api/trainExam/trainExam.js b/src/api/trainExam/trainExam.js
index e2676b3..fbefcee 100644
--- a/src/api/trainExam/trainExam.js
+++ b/src/api/trainExam/trainExam.js
@@ -70,4 +70,5 @@
             id,
         }
     })
-}
\ No newline at end of file
+}
+
diff --git a/src/views/flow/model.vue b/src/views/flow/model.vue
index 850110b..b2db987 100644
--- a/src/views/flow/model.vue
+++ b/src/views/flow/model.vue
@@ -1,119 +1,138 @@
 <template>
-  <basic-container>
-    <avue-crud :option="option"
-               :table-loading="loading"
-               :data="data"
-               ref="crud"
-               v-model="form"
-               :page.sync="page"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @selection-change="selectionChange"
-               @current-change="currentChange"
-               @size-change="sizeChange"
-               @refresh-change="refreshChange"
-               @on-load="onLoad">
+  <basic-container
+    :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']"
+  >
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      ref="crud"
+      v-model="form"
+      :page.sync="page"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
       <template slot="menuLeft">
-        <el-button type="primary"
-                   size="mini"
-                   icon="el-icon-circle-plus"
-                   v-if="permission.flow_model_create"
-                   plain
-                   @click="handleCreate">创 建
+        <el-button
+          type="primary"
+          size="small"
+          icon="el-icon-circle-plus"
+          v-if="permission.flow_model_create"
+          plain
+          @click="handleCreate"
+          >创 建
         </el-button>
         <el-button
-                   size="mini"
-                   icon="el-icon-delete"
-                   v-if="permission.flow_model_delete"
-                   plain
-                   @click="handleDelete">删 除
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          v-if="permission.flow_model_delete"
+          plain
+          @click="handleDelete"
+          >删 除
         </el-button>
       </template>
-      <template slot-scope="scope"
-                slot="menu">
-        <el-button type="text"
-                   size="mini"
-                   icon="el-icon-setting"
-                   v-if="permission.flow_model_update"
-                   @click.stop="handleUpdate(scope.row,scope.index)">配置
+      <template slot-scope="scope" slot="menu">
+        <el-button
+          type="text"
+          size="small"
+          v-if="permission.flow_model_update"
+          plain
+          class="none-border"
+          @click.stop="handleUpdate(scope.row, scope.index)"
+          >配置
         </el-button>
-        <el-button type="text"
-                   size="mini"
-                   icon="el-icon-upload2"
-                   v-if="permission.flow_model_deploy"
-                   @click.stop="handleDeploy(scope.row,scope.index)">部署
+        <el-button
+          type="text"
+          size="small"
+          v-if="permission.flow_model_deploy"
+          plain
+          class="none-border"
+          @click.stop="handleDeploy(scope.row, scope.index)"
+          >部署
         </el-button>
-        <el-button type="text"
-                   size="mini"
-                   icon="el-icon-delete"
-                   v-if="permission.flow_model_delete"
-                   @click.stop="handleSlotDelete(scope.row,scope.index)">删除
+        <el-button
+          type="text"
+          size="small"
+          v-if="permission.flow_model_download"
+          plain
+          class="none-border"
+          @click.stop="handleDownload(scope.row, scope.index)"
+          >下载
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          v-if="permission.flow_model_delete"
+          plain
+          class="none-border"
+          @click.stop="handleSlotDelete(scope.row, scope.index)"
+          >删除
         </el-button>
       </template>
-      <template slot-scope="{row}"
-                slot="version">
+      <template slot-scope="{ row }" slot="version">
         <el-tag>v{{ row.version }}</el-tag>
       </template>
     </avue-crud>
-    <el-dialog title="流程配置"
-               append-to-body
-               destroy-on-close
-               :visible.sync="flowBox"
-               :close-on-press-escape="false"
-               :fullscreen="true"
-               :before-close="handleNutflowClose"
-               custom-class="wf-dialog">
-      <wf-design-base v-if="nutflowOption.step === 1"
-                      class="animated fadeIn"
-                      style="height: calc(100vh - 108px);"
-                      ref="wf-design"
-                      :options="nutflowOption.step1"></wf-design-base>
-      <wf-design-base v-if="nutflowOption.step === 2"
-                      class="animated fadeIn"
-                      style="height: calc(100vh - 108px);"
-                      ref="wf-design-view"
-                      :options="nutflowOption.step2"></wf-design-base>
-      <span slot="footer"
-            class="avue-dialog__footer">
-        <el-button size="small"
-                   @click="handleNutflowClose(() => {}, true)">取 消</el-button>
-        <el-button v-if="nutflowOption.step === 1"
-                   size="small"
-
-                   @click="handleStep(1)">下 一 步</el-button>
-        <el-button v-if="nutflowOption.step === 2"
-                   size="small"
-
-                   @click="handleStep(-1)">上 一 步</el-button>
-        <el-button v-if="nutflowOption.step === 2"
-                   size="small"
-                   type="primary"
-                   @click="handleSubmitModel">确 定</el-button>
+    <el-dialog
+      title="流程配置"
+      append-to-body
+      :visible.sync="flowBox"
+      :fullscreen="true"
+    >
+      <iframe
+        :src="flowUrl"
+        width="100%"
+        height="700"
+        title="流程设计器"
+        frameBorder="no"
+        border="0"
+        marginWidth="0"
+        marginHeight="0"
+        scrolling="no"
+        allowTransparency="yes"
+      >
+      </iframe>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="flowBox = false">取 消</el-button>
+        <el-button type="primary" @click="handleRefresh">确 定</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="流程部署"
-               append-to-body
-               :visible.sync="deployBox"
-               width="20%">
-      <avue-form ref="form"
-                 :option="optionDeploy"
-                 v-model="form"
-                 @submit="handleSubmit"/>
-      <span slot="footer"
-            class="dialog-footer">
+    <el-dialog
+      title="流程部署"
+      append-to-body
+      :visible.sync="deployBox"
+      width="20%"
+    >
+      <avue-form
+        ref="form"
+        :option="optionDeploy"
+        v-model="form"
+        @submit="handleSubmit"
+      />
+      <span slot="footer" class="dialog-footer">
         <el-button @click="deployBox = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="handleDoDeploy"
-                   :loading="deployLoading">确 定</el-button>
+        <el-button
+          type="primary"
+          @click="handleDoDeploy"
+          :loading="deployLoading"
+          >确 定</el-button
+        >
       </span>
     </el-dialog>
   </basic-container>
 </template>
 
 <script>
-import {mapGetters} from "vuex";
-import {modelList, removeModel, deployModel, submitModel, detail} from "@/api/flow/flow";
-import {flowCategory} from "@/util/flow";
+import { mapGetters } from "vuex";
+import website from "@/config/website";
+import { modelList, removeModel, deployModel } from "@/api/flow/flow";
+import { flowCategory } from "@/util/flow";
 
 export default {
   data() {
@@ -128,18 +147,20 @@
             dicUrl: "/api/blade-system/dict/dictionary?code=flow",
             props: {
               label: "dictValue",
-              value: "dictKey"
+              value: "dictKey",
             },
             dataType: "number",
             slot: true,
             prop: "categoryValue",
             search: true,
             span: 24,
-            rules: [{
-              required: true,
-              message: "请选择流程类型",
-              trigger: "blur"
-            }]
+            rules: [
+              {
+                required: true,
+                message: "请选择流程类型",
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "流程模式",
@@ -148,46 +169,46 @@
             dicData: [
               {
                 label: "通用流程",
-                value: 1
+                value: 1,
               },
               {
                 label: "定制流程",
-                value: 2
-              }
+                value: 2,
+              },
             ],
             value: 1,
             span: 24,
             rules: [
               {
                 required: true,
-                message: '请选择流程模式',
-                trigger: 'blur'
-              }
+                message: "请选择流程模式",
+                trigger: "blur",
+              },
             ],
           },
           {
-            label: "所属租户",
+            label: "所属保安单位",
             prop: "tenantId",
             type: "tree",
             multiple: true,
             dicUrl: "/api/blade-system/tenant/select",
             props: {
               label: "tenantName",
-              value: "tenantId"
+              value: "tenantId",
             },
             display: false,
             span: 24,
             rules: [
               {
                 required: true,
-                message: '请选择所属租户',
-                trigger: 'blur'
-              }
+                message: "请选择所属保安单位",
+                trigger: "blur",
+              },
             ],
           },
         ],
       },
-      selectionId: '',
+      selectionId: "",
       selectionList: [],
       query: {},
       loading: true,
@@ -195,12 +216,14 @@
       page: {
         pageSize: 10,
         currentPage: 1,
-        total: 0
+        total: 0,
+        ...this.$store.state.control.changePageSize,
       },
       deployBox: false,
       flowBox: false,
+      flowUrl: "",
       option: {
-        height: 'auto',
+        height: "auto",
         calcHeight: 30,
         tip: false,
         searchShow: true,
@@ -213,150 +236,79 @@
         viewBtn: false,
         delBtn: false,
         dialogWidth: 900,
-        menuWidth: 250,
+        menuWidth: 150,
         dialogClickModal: false,
-        size: 'mini',
-        searchSize: 'mini',
+        ...this.$store.state.control.clearOtherBut,
         column: [
           {
-            label: '模型主键',
-            prop: 'id',
+            label: "模型主键",
+            prop: "id",
           },
           {
-            label: '模型标识',
-            prop: 'modelKey',
+            label: "模型标识",
+            prop: "modelKey",
             search: true,
-            overHidden: true
+            width: 150,
           },
           {
-            label: '模型名称',
-            prop: 'name',
+            label: "模型名称",
+            prop: "name",
             search: true,
-            overHidden: true
+            width: 150,
           },
           {
-            label: '流程版本',
-            prop: 'version',
+            label: "流程版本",
+            prop: "version",
             slot: true,
-            overHidden: true
+            width: 80,
           },
           {
-            label: '创建时间',
-            prop: 'created',
-            overHidden: true
+            label: "创建时间",
+            prop: "created",
+            width: 165,
           },
           {
-            label: '更新时间',
-            prop: 'lastUpdated',
-            overHidden: true
+            label: "更新时间",
+            prop: "lastUpdated",
+            width: 165,
           },
-        ]
+        ],
       },
       data: [],
-      nutflowOption: {
-        process: {},
-        step: 1,
-        step1: {
-          toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'],
-        },
-        step2: {
-          mode: 'view',
-          simulation: true,
-          minimap: true,
-        }
-      }
     };
   },
   watch: {
-    'form.flowMode'() {
-      this.$refs.form.option.column.filter(item => {
+    "form.flowMode"() {
+      this.$refs.form.option.column.filter((item) => {
         if (item.prop === "tenantId") {
           item.display = this.form.flowMode === 2;
         }
       });
-    }
+    },
   },
   computed: {
     ...mapGetters(["permission"]),
     ids() {
       let ids = [];
-      this.selectionList.forEach(ele => {
+      this.selectionList.forEach((ele) => {
         ids.push(ele.id);
       });
       return ids.join(",");
-    }
-  },
-  created(){
-      console.log(this.nutflowOption,454545445545)
+    },
   },
   methods: {
-    handleSubmitModel() {
-      const registry = this.$refs['wf-design-view'].getElementRegistry().getAll()
-      const {businessObject} = registry[0]
-      const {id, name, documentation} = businessObject
-      const description = (documentation && documentation.length > 0) ? documentation[0].text : null
-      const params = {
-        ...this.nutflowOption.process,
-        modelKey: id,
-        name,
-        description,
-        modelEditorXml: this.nutflowOption.process.xml
-      }
-      submitModel(params).then(() => {
-        this.$message.success("操作成功")
-        this.handleNutflowClose()
-        this.onLoad(this.page, this.query)
-      })
-    },
-    handleStep(step) {
-      if (step === 1) { // 下一步
-        this.$refs['wf-design'].getData('xml').then(data => {
-          this.$set(this.nutflowOption.step1, 'xml', data)
-          this.$set(this.nutflowOption.step2, 'xml', data)
-          this.$set(this.nutflowOption.process, 'xml', data)
-          this.$set(this.nutflowOption, 'step', 2)
-        })
-      } else this.$set(this.nutflowOption, 'step', 1)
-    },
-    handleNutflowClose(done, flag) {
-      const initOption = {
-        process: {},
-        step: 1,
-        step1: {
-          toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'],
-        },
-        step2: {
-          mode: 'view',
-          simulation: true,
-          minimap: true,
-        }
-      }
-      if (done || flag) {
-        this.$confirm('确定要关闭吗?关闭未保存的修改都会丢失。', '警告', {
-          type: 'warning'
-        }).then(() => {
-          this.$set(this, 'nutflowOption', initOption)
-          if (typeof done == 'function') done()
-          this.flowBox = false
-        }).catch(() => {
-        })
-      } else {
-        this.$set(this, 'nutflowOption', initOption)
-        this.flowBox = false
-      }
-    },
     handleSubmit(form, done) {
       this.deployLoading = true;
       deployModel({
         modelId: this.selectionId,
         category: flowCategory(form.categoryValue),
-        tenantIds: form.tenantId.join(",")
-      }).then(res => {
+        tenantIds: form.tenantId.join(","),
+      }).then((res) => {
         const data = res.data;
         if (data.success) {
           this.$message({
             type: "success",
-            message: data.msg
+            message: data.msg,
           });
           done();
           this.$refs.form.resetForm();
@@ -367,10 +319,10 @@
           this.deployLoading = false;
           this.$message({
             type: "warn",
-            message: data.msg
+            message: data.msg,
           });
         }
-      })
+      });
     },
     searchReset() {
       this.query = {};
@@ -397,7 +349,7 @@
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return removeModel(this.ids);
@@ -405,23 +357,19 @@
         .then(() => {
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           this.$refs.crud.toggleSelection();
           this.onLoad(this.page);
         });
     },
     handleCreate() {
+      this.flowUrl = `${website.flowDesignUrl}/index.html`;
       this.flowBox = true;
     },
     handleUpdate(row) {
-      detail({id: row.id}).then(res => {
-        const data = res.data.data
-        const {modelEditorXml} = data
-        this.$set(this.nutflowOption.step1, 'xml', modelEditorXml)
-        this.$set(this.nutflowOption, 'process', data)
-        this.flowBox = true;
-      })
+      this.flowUrl = `${website.flowDesignUrl}/index.html#/editor/${row.id}`;
+      this.flowBox = true;
     },
     handleDeploy(row) {
       this.deployBox = true;
@@ -430,11 +378,14 @@
     handleDoDeploy() {
       this.$refs.form.submit();
     },
+    handleDownload(row) {
+      window.open(`${website.flowDesignUrl}/app/rest/models/${row.id}/bpmn20`);
+    },
     handleSlotDelete(row) {
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return removeModel(row.id);
@@ -442,11 +393,15 @@
         .then(() => {
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           this.$refs.crud.toggleSelection();
           this.onLoad(this.page);
         });
+    },
+    handleRefresh() {
+      this.flowBox = false;
+      this.onLoad(this.page);
     },
     currentChange(currentPage) {
       this.page.currentPage = currentPage;
@@ -459,27 +414,25 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
-      modelList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+      modelList(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
         const data = res.data.data;
         this.page.total = data.total;
         this.data = data.records;
         this.loading = false;
         this.selectionClear();
       });
-    }
-  }
+    },
+  },
 };
 </script>
 
-<style lang="scss">
-
-.wf-dialog {
-  .el-dialog__body {
-    padding: 5px;
-  }
-
-  .avue-dialog__footer {
-    text-align: center;
-  }
+<style>
+.none-border {
+  border: 0;
+  background-color: transparent !important;
 }
 </style>
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index 6317d1e..29e49bc 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,17 +1,33 @@
 /* * @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>
@@ -24,14 +40,14 @@
       <template slot-scope="{ row }" slot="qualified">
         {{
           row.qualified == ""
-          ? ""
-          : row.qualified == 0
+            ? ""
+            : row.qualified == 0
             ? "合格"
             : row.qualified == 1
-              ? "不合格"
-              : row.qualified == 3
-                ? "缺考,成绩无效"
-                : ""
+            ? "不合格"
+            : row.qualified == 3
+            ? "缺考,成绩无效"
+            : ""
         }}
       </template>
 
@@ -49,36 +65,109 @@
                                        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="danger" size="small" plain icon="el-icon-delete" v-if="permission.trainExam_performance_delete"
-          @click="handleDelete">删 除
+        <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_paper_apply"
-          style="display: none;" icon="el-icon-collection-tag" @click="handleSecurityPaperApply">证书制证申请
+        <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
+          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
+          v-show="row.theoryGrade < 60 && row.theoryGrade != null && row.theoryGrade != '' && row.theoryGrade > -1"
+          icon="el-icon-refresh"
+          @click="reself(row)"
+          :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>
@@ -87,9 +176,17 @@
       </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"
@@ -225,7 +322,13 @@
             <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>
@@ -236,7 +339,12 @@
       :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>
@@ -249,20 +357,21 @@
   updateAbsent,
   updateGrade,
   remove,
-  getNowDate
+  getNowDate,
+  reselfExamScore,
 } from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
 import {
   securityApply,
-  add
+  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
+    baoanz,
   },
   data() {
     var validatePass = (rule, value, callback) => {
@@ -322,9 +431,9 @@
               {
                 required: true,
                 message: "请输入考试名称",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "姓名",
@@ -335,9 +444,9 @@
               {
                 required: true,
                 message: "请输入姓名",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "身份证号",
@@ -348,9 +457,9 @@
               {
                 required: true,
                 message: "请输入身份证号",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "准考证号",
@@ -361,9 +470,9 @@
               {
                 required: false,
                 message: "请输入准考证号",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "原理论成绩",
@@ -374,9 +483,9 @@
               {
                 required: false,
                 message: "请输入原理论成绩",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "修改考试成绩",
@@ -386,9 +495,9 @@
               {
                 required: true,
                 message: "请输入修改考试成绩",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "实操成绩",
@@ -400,22 +509,22 @@
               {
                 required: false,
                 message: "请输入实操成绩",
-                trigger: "blur"
-              }
+                trigger: "blur",
+              },
             ],
             dicData: [
               {
                 label: "合格",
-                value: 0
+                value: 0,
               },
               {
                 label: "不合格",
-                value: 1
+                value: 1,
               },
               {
                 label: "暂未录实操成绩",
-                value: 2
-              }
+                value: 2,
+              },
             ],
           },
           // {
@@ -443,18 +552,18 @@
             tip: "只能上传jpg/png文件,最多上传5张",
             propsHttp: {
               res: "data",
-              url: "url"
+              url: "url",
             },
-            action: "/api/blade-resource/oss/endpoint/put-files"
+            action: "/api/blade-resource/oss/endpoint/put-files",
           },
           {
             label: "修改理由",
             labelWidth: 110,
             span: 24,
             type: "textarea",
-            prop: "editReason"
-          }
-        ]
+            prop: "editReason",
+          },
+        ],
       },
       form: {},
       limit: 5,
@@ -463,8 +572,8 @@
       disabled: false,
       rules: {
         editGrades: [
-          { validator: validatePass2, required: true, trigger: "blur" }
-        ]
+          { validator: validatePass2, required: true, trigger: "blur" },
+        ],
       },
       gradeForm: {
         id: null,
@@ -477,13 +586,13 @@
         allGrade: "",
         editGrades: "",
         editReason: "",
-        fileList: []
+        fileList: [],
       },
       gradeBoxVisible: false,
       dialogVisiblezhengjian: false,
       baoanzdata: {},
       obj: {
-        name: "张三"
+        name: "张三",
       },
       excelBox: false,
       questionBankOption: {
@@ -497,7 +606,7 @@
         viewBtn: false,
         selection: true,
         reserveSelection: true,
-        selectable: row => {
+        selectable: (row) => {
           if (row.isExam == 3) {
             return false;
           } else {
@@ -545,7 +654,7 @@
             editDisplay: false,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            viewDisplay: false
+            viewDisplay: false,
           },
           {
             label: "考试时间",
@@ -572,10 +681,10 @@
               {
                 required: true,
                 message: "请输入试卷名称",
-                trigger: "blur"
-              }
+                trigger: "blur",
+              },
             ],
-            overHidden: true
+            overHidden: true,
           },
           {
             label: "姓名",
@@ -603,10 +712,10 @@
               {
                 required: true,
                 message: "请输入试卷名称",
-                trigger: "blur"
-              }
+                trigger: "blur",
+              },
             ],
-            width: 80
+            width: 80,
             // overHidden:true,
           },
           {
@@ -631,10 +740,10 @@
               {
                 required: true,
                 message: "请输入保安姓名",
-                trigger: "blur"
-              }
+                trigger: "blur",
+              },
             ],
-            width: 140
+            width: 140,
           },
           {
             label: "准考证号",
@@ -659,10 +768,10 @@
               {
                 required: true,
                 message: "请输入保安姓名",
-                trigger: "blur"
-              }
+                trigger: "blur",
+              },
             ],
-            width: 110
+            width: 110,
           },
           {
             label: "照片",
@@ -674,7 +783,7 @@
             // 表单编辑时是否可见
             editDisplay: false,
             // 表单编辑时是否为查看模式
-            editDetail: false
+            editDetail: false,
           },
           {
             label: "从业单位",
@@ -697,11 +806,11 @@
               {
                 required: true,
                 message: "请输入从业单位",
-                trigger: "blur"
-              }
+                trigger: "blur",
+              },
             ],
             width: 180,
-            overHidden: true
+            overHidden: true,
           },
           {
             label: "考试开始时间",
@@ -723,7 +832,7 @@
             // 表单编辑时是否可见
             editDisplay: true,
             // 表单编辑时是否为查看模式
-            editDetail: false
+            editDetail: false,
           },
           {
             label: "考试结束时间",
@@ -745,7 +854,7 @@
             // 表单编辑时是否可见
             editDisplay: true,
             // 表单编辑时是否为查看模式
-            editDetail: false
+            editDetail: false,
           },
           {
             label: "考试状态",
@@ -758,20 +867,20 @@
             dicData: [
               {
                 label: "发布成绩",
-                value: 2
+                value: 2,
               },
               {
                 label: "考试中",
-                value: 3
+                value: 3,
               },
               {
                 label: "纸质考试",
-                value: 5
+                value: 5,
               },
               {
                 label: "缺考",
-                value: 4
-              }
+                value: 4,
+              },
             ],
             // 表单新增时是否禁止
             addDisabled: false,
@@ -789,9 +898,9 @@
               {
                 required: true,
                 message: "请输入考试名称",
-                trigger: "blur"
-              }
-            ]
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "理论成绩",
@@ -810,7 +919,7 @@
             editDisplay: true,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            width: 95
+            width: 95,
           },
           {
             label: "实操成绩",
@@ -834,12 +943,12 @@
             dicData: [
               {
                 label: "合格",
-                value: 0
+                value: 0,
               },
               {
                 label: "不合格",
-                value: 1
-              }
+                value: 1,
+              },
             ],
           },
           // {
@@ -873,20 +982,20 @@
             dicData: [
               {
                 label: "合格",
-                value: 0
+                value: 0,
               },
               {
                 label: "不合格",
-                value: 1
+                value: 1,
               },
               {
                 label: "暂未录实操成绩",
-                value: 2
+                value: 2,
               },
               {
                 label: "缺考,成绩无效",
-                value: 3
-              }
+                value: 3,
+              },
             ],
             // 表单新增时是否禁止
             addDisabled: false,
@@ -901,7 +1010,7 @@
             viewDetail: false,
             viewDisplay: false,
             // 表单编辑时是否为查看模式
-            editDetail: false
+            editDetail: false,
           },
           {
             label: "是否合格",
@@ -913,20 +1022,20 @@
             dicData: [
               {
                 label: "合格",
-                value: 0
+                value: 0,
               },
               {
                 label: "不合格",
-                value: 1
+                value: 1,
               },
               {
                 label: "暂未录实操成绩",
-                value: 2
+                value: 2,
               },
               {
                 label: "缺考,成绩无效",
-                value: 3
-              }
+                value: 3,
+              },
             ],
             // 表单新增时是否禁止
             addDisabled: false,
@@ -939,7 +1048,7 @@
             // 表单编辑时是否可见
             editDisplay: true,
             // 表单编辑时是否为查看模式
-            editDetail: false
+            editDetail: false,
           },
           // {
           //   label: "是否制证",
@@ -991,19 +1100,19 @@
             dicData: [
               {
                 label: "全部",
-                value: 3
+                value: 3,
               },
               {
                 label: "有",
-                value: 1
+                value: 1,
               },
               {
                 label: "无",
-                value: 2
-              }
-            ]
-          }
-        ]
+                value: 2,
+              },
+            ],
+          },
+        ],
       },
       questionBankSearch: {},
       questionBankLoading: true,
@@ -1014,7 +1123,7 @@
         pageSize: 10,
         currentPage: 1,
         total: 16,
-        ...this.$store.state.control.changePageSize
+        ...this.$store.state.control.changePageSize,
       },
       questionBankQuery: {},
       selectionList: [],
@@ -1032,10 +1141,10 @@
             loadText: "模板上传中,请稍等",
             span: 24,
             propsHttp: {
-              res: "data"
+              res: "data",
             },
             tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/examScore/import-examScore"
+            action: "/api/examScore/import-examScore",
           },
           // {
           //     label: "数据覆盖",
@@ -1067,14 +1176,14 @@
             label: "模板下载",
             prop: "excelTemplate",
             formslot: true,
-            span: 24
-          }
-        ]
+            span: 24,
+          },
+        ],
       },
-      choiceList: []
+      choiceList: [],
     };
   },
-  created() { },
+  created() {},
   mounted() {
     this.$store.commit("setWindowSizeHeightAdd");
   },
@@ -1082,7 +1191,7 @@
     ...mapGetters(["userInfo", "permission"]),
     ids() {
       let ids = [];
-      this.questionBankSelectionList.forEach(ele => {
+      this.questionBankSelectionList.forEach((ele) => {
         ids.push(ele.id);
       });
       return ids.join(",");
@@ -1102,11 +1211,31 @@
         excelBtn: this.vaildData(
           this.permission.trainExam_performance_export,
           false
-        )
+        ),
       };
-    }
+    },
   },
   methods: {
+    // 考试重置
+    reself({id}) {
+      reselfExamScore(id).then((res) => {
+          if (res.data.success == true) {
+            this.$message({
+              showClose: true,
+              message: "重置成功",
+              type: "success",
+            });
+
+            this.questionBankOnLoad(this.questionBankPage);
+          } else {
+            this.$message({
+              showClose: true,
+              message: "重置错误!请联系管理员",
+              type: "warning",
+            });
+          }
+        });
+    },
     // 批量删除
     handleDelete() {
       if (this.questionBankSelectionList.length === 0) {
@@ -1116,7 +1245,7 @@
       this.$confirm("确定将选择考试成绩删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       })
         .then(() => {
           return remove(this.ids);
@@ -1125,7 +1254,7 @@
           this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           this.$refs.crud.toggleSelection();
         });
@@ -1140,13 +1269,13 @@
           that.$refs.form.resetFields();
           that.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           that.gradeBoxVisible = false;
 
           done();
         },
-        error => {
+        (error) => {
           window.console.log(error);
           done();
         }
@@ -1160,10 +1289,10 @@
       const form = new FormData();
       // 文件对象
       form.append("file", file);
-      putFile(form).then(res => {
+      putFile(form).then((res) => {
         that.gradeForm.fileList.push({
           name: res.data.data.name,
-          url: res.data.data.url
+          url: res.data.data.url,
         });
         // console.log(that.gradeForm.fileList, 365441);
       });
@@ -1196,7 +1325,7 @@
       this.choiceList = [];
       for (let k in list) {
         this.choiceList.push({
-          id: list[k].userId
+          id: list[k].userId,
         });
       }
     },
@@ -1211,7 +1340,7 @@
         {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
-          type: "warning"
+          type: "warning",
         }
       )
         .then(() => {
@@ -1226,7 +1355,7 @@
           const data = {
             ids: str,
             createUser: this.userInfo.user_id,
-            type: 2
+            type: 2,
           };
           return securityApply(data);
         })
@@ -1234,7 +1363,7 @@
           this.$refs.questionBankCrud.toggleSelection();
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
         });
     },
@@ -1246,12 +1375,12 @@
       }
       this.$confirm(
         "共选择上岗证制证申请人数" +
-        this.choiceList.length +
-        "人,确定申请制证?",
+          this.choiceList.length +
+          "人,确定申请制证?",
         {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
-          type: "warning"
+          type: "warning",
         }
       )
         .then(() => {
@@ -1266,7 +1395,7 @@
           const data = {
             ids: str,
             createUser: this.userInfo.user_id,
-            type: 1
+            type: 1,
           };
           return securityApply(data);
         })
@@ -1274,7 +1403,7 @@
           this.$refs.questionBankCrud.toggleSelection();
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
         });
     },
@@ -1284,7 +1413,7 @@
         $sex: row.sex == 1 ? "男" : "女",
         securitynumber: row.securityNumber,
         paperTime: row.paperTime,
-        avatar: row.avatar
+        avatar: row.avatar,
       };
       this.dialogVisiblezhengjian = true;
     },
@@ -1328,8 +1457,8 @@
       var that = this;
       //获取当前登录人员的角色信息
       var roleIds = this.userInfo.role_id.split(",");
-      roleIds.forEach(roleId => {
-        getRoleDetail(roleId).then(res => {
+      roleIds.forEach((roleId) => {
+        getRoleDetail(roleId).then((res) => {
           var roleAlias = res.data.data.roleAlias;
           if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
             //如果是保安公司管理员
@@ -1351,10 +1480,10 @@
             page.currentPage,
             page.pageSize,
             Object.assign(params, this.questionBankQuery)
-          ).then(res => {
+          ).then((res) => {
             const data = res.data.data;
 
-            data.records.forEach(item => {
+            data.records.forEach((item) => {
               if (item.isPaper == null || item.isPaper == -1) {
                 item.isPaper = "";
               }
@@ -1386,23 +1515,23 @@
       this.$confirm("当前保安员已制证,确定要继续申请制证?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       }).then(() => {
         const data = {
           createUser: this.userInfo.user_id,
           type: 2,
-          userId: row.userId
+          userId: row.userId,
         };
         add(data).then(
           () => {
             this.questionBankOnLoad(this.questionBankPage);
             this.$message({
               type: "success",
-              message: "操作成功!"
+              message: "操作成功!",
             });
             done();
           },
-          error => {
+          (error) => {
             window.console.log(error);
             loading();
           }
@@ -1414,7 +1543,7 @@
       this.$confirm("确定缺考标记?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       }).then(() => {
         row.qualified = 3;
         updateAbsent(row).then(
@@ -1422,11 +1551,11 @@
             this.questionBankOnLoad(this.questionBankPage);
             this.$message({
               type: "success",
-              message: "操作成功!"
+              message: "操作成功!",
             });
             done();
           },
-          error => {
+          (error) => {
             window.console.log(error);
             loading();
           }
@@ -1443,7 +1572,7 @@
       //得到时间戳
       var longtime = new Date(endTime).getTime();
       // console.log(longtime,123466);
-      getNowDate().then(res => {
+      getNowDate().then((res) => {
         var num = 24 * 3600 * 1000;
         if (this.userInfo.role_name == "培训公司管理员") {
           // if (res.data.data - longtime <= num) {
@@ -1456,7 +1585,7 @@
             securityName: row.securityName,
             theoryGrade: row.theoryGrade,
             learnGrade: row.learnGrade,
-            allGrade: row.allGrade
+            allGrade: row.allGrade,
           };
           this.gradeBoxVisible = true;
           // } else {
@@ -1476,7 +1605,7 @@
             securityName: row.securityName,
             theoryGrade: row.theoryGrade,
             learnGrade: row.learnGrade,
-            allGrade: row.allGrade
+            allGrade: row.allGrade,
           };
           this.gradeBoxVisible = true;
         }
@@ -1485,7 +1614,7 @@
     uploadGrade(formName) {
       var that = this;
 
-      this.$refs[formName].validate(valid => {
+      this.$refs[formName].validate((valid) => {
         if (valid) {
           var obj = {};
           obj.oldScore = this.gradeForm.theoryGrade;
@@ -1499,12 +1628,12 @@
               that.questionBankOnLoad(that.questionBankPage);
               that.$message({
                 type: "success",
-                message: "操作成功!"
+                message: "操作成功!",
               });
 
               that.gradeBoxVisible = false;
             },
-            error => {
+            (error) => {
               window.console.log(error);
             }
           );
@@ -1522,7 +1651,7 @@
       this.choiceList = [];
       for (let k in list) {
         this.choiceList.push({
-          id: list[k].userId
+          id: list[k].userId,
         });
       }
     },
@@ -1547,17 +1676,17 @@
         theoryGrade: row.theoryGrade,
         learnGrade: row.learnGrade,
         examId: row.examId,
-        id: row.id
+        id: row.id,
       }).then(
         () => {
           this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
-            message: "操作成功!"
+            message: "操作成功!",
           });
           done();
         },
-        error => {
+        (error) => {
           window.console.log(error);
           loading();
         }
@@ -1565,7 +1694,8 @@
     },
     handleTemplate() {
       window.open(
-        `/api/examScore/export-template?${this.website.tokenHeader
+        `/api/examScore/export-template?${
+          this.website.tokenHeader
         }=${getToken()}&`
       );
     },
@@ -1590,7 +1720,7 @@
       this.$confirm("是否导出成绩数据?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       }).then(() => {
         //获取查询条件
         // console.log(this.questionBankSearch, 456);
@@ -1603,7 +1733,7 @@
           securityName: this.questionBankSearch.securityName,
           examName: this.questionBankSearch.examName,
           isAvatar: this.questionBankSearch.isAvatar,
-          isPaper: this.questionBankSearch.isPaper
+          isPaper: this.questionBankSearch.isPaper,
         };
         //导出
         if (
@@ -1622,12 +1752,13 @@
         //序列号url形式,用&拼接
         data = Qs.stringify(data);
         window.open(
-          `/api/examScore/export-examScore?${this.website.tokenHeader
+          `/api/examScore/export-examScore?${
+            this.website.tokenHeader
           }=${getToken()}&` + data
         );
       });
-    }
-  }
+    },
+  },
 };
 </script>
 

--
Gitblit v1.9.3