From d3362d895ef977fb5f116a6deeffac4434810c45 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Tue, 23 Nov 2021 15:36:39 +0800
Subject: [PATCH] +

---
 src/views/trainExam/performance.vue |  258 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 231 insertions(+), 27 deletions(-)

diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index c4fc148..ea07c97 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -2,14 +2,25 @@
  * @Author: Morpheus
  * @Date: 2021-07-05 16:31:54
  * @Last Modified by: liu
- * @Last Modified time: 2021-10-26 15:44:52
+ * @Last Modified time: 2021-11-23 14:11:41
  * menu-name 成绩管理
  */
 <template>
   <el-row class="morpheus-box">
-    <el-col :span="24" class="recruitmentManagement">
+    <el-col
+      :span="24"
+      :class="[
+        'recruitmentManagement',
+        $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
+      ]"
+    >
       <el-card>
-        <div class="exam-card-body">
+        <div
+          :class="[
+            'exam-card-body',
+            $store.state.control.windowWidth >= 1024 ? 'tooRowSearch' : '',
+          ]"
+        >
           <avue-crud
             v-model="obj"
             class="company-box"
@@ -30,17 +41,17 @@
             @refresh-change="refreshChange"
           >
             <template slot-scope="{ row }" slot="theoryGrade">
-              {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
+              {{ row.theoryGrade }}
             </template>
             <template slot-scope="{ row }" slot="learnGrade">
-              {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
+              {{ row.learnGrade == "" ? "暂未录入" : row.learnGrade }}
             </template>
             <template slot-scope="{ row }" slot="allGrade">
               {{ row.allGrade == -1 ? "" : row.allGrade }}
             </template>
             <template slot-scope="{ row }" slot="qualified">
               {{
-                row.qualified == -1
+                row.qualified == ""
                   ? ""
                   : row.qualified == 0
                   ? "合格"
@@ -95,12 +106,19 @@
                 >缺考标记</el-button
               >
               <el-button
-                icon="el-icon-s-flag"
+                icon="el-icon-s-promotion"
                 @click="openzhengjian(row)"
                 :disabled="row.qualified != 0"
                 :size="size"
                 :type="type"
-                >打印证件</el-button
+                >查看证件</el-button
+              >
+              <el-button
+                icon="el-icon-edit"
+                @click="modifiedGrades(row)"
+                :size="size"
+                :type="type"
+                >申请修改成绩</el-button
               >
             </template>
           </avue-crud>
@@ -126,13 +144,117 @@
         </div>
       </el-card>
     </el-col>
+
+    <el-dialog
+      title="申请修改成绩"
+      :visible.sync="gradeBoxVisible"
+      width="width"
+      :modal="true"
+      :modal-append-to-body="true"
+      :append-to-body="true"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :before-close="dialogBeforeClose"
+    >
+      <div>
+        <el-form
+          ref="gradeForm"
+          :model="gradeForm"
+          :rules="rules"
+          label-width="80px"
+          label-position="left"
+        >
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="考试名称" label-width="108px">
+                <el-input v-model="gradeForm.examName" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="姓名" label-width="108px">
+                <el-input v-model="gradeForm.securityName" disabled></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="身份证号" label-width="108px">
+                <el-input v-model="gradeForm.account" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="准考证号" label-width="108px">
+                <el-input v-model="gradeForm.candidateNo" disabled></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="原理论成绩" label-width="108px">
+                <el-input v-model="gradeForm.theoryGrade" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item
+                label="修改考试成绩"
+                label-width="108px"
+                prop="editGrades"
+              >
+                <el-input
+                  v-model.number="gradeForm.editGrades"
+                  autocomplete="off"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="实操成绩" label-width="108px">
+                <el-input v-model="gradeForm.learnGrade" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="总成绩" label-width="108px">
+                <el-input v-model="gradeForm.allGrade" disabled></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-form-item label="修改理由" label-width="108px">
+            <el-input
+              type="textarea"
+              :rows="3"
+              placeholder="请输入修改理由"
+              resize="none"
+              v-model="gradeForm.editReason"
+            ></el-input>
+          </el-form-item>
+
+          <el-form-item style="text-align: center" label-width="0">
+            <el-button type="primary" @click="uploadGrade('gradeForm')"
+              >确 定</el-button
+            >
+            <el-button @click="gradeBoxVisible = false">取 消</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-dialog>
+
     <!-- <el-dialog
       title="打印证件"
       :visible.sync="dialogVisiblezhengjian"
       :modal-append-to-body="false"
     > -->
     <div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian">
-      <baoanz :data="baoanzdata" :close="1" @close="closezhengjian"></baoanz>
+      <baoanz
+        :data="baoanzdata"
+        :close="1"
+        @close="closezhengjian"
+        :closePrint="1"
+      ></baoanz>
     </div>
     <!-- </el-dialog> -->
   </el-row>
@@ -140,7 +262,12 @@
 
 <script>
 import baoanz from "../securityGuard/baoanz.vue";
-import { getList, update, updateAbsent } from "@/api/examapi/performance";
+import {
+  getList,
+  update,
+  updateAbsent,
+  updateGrade,
+} from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
 import Qs from "qs";
@@ -150,7 +277,6 @@
   },
   data() {
     var validatePass = (rule, value, callback) => {
-      console.log(value);
       if (value == undefined || value == "") {
         callback(new Error("请输入实操成绩"));
         return;
@@ -166,6 +292,24 @@
     };
 
     return {
+      rules: {
+        editGrades: [
+          { validator: validatePass, required: true, trigger: "blur" },
+        ],
+      },
+      gradeForm: {
+        id: null,
+        examName: "",
+        securityName: "",
+        account: "",
+        candidateNo: "",
+        theoryGrade: "",
+        learnGrade: "",
+        allGrade: "",
+        editGrades: "",
+        editReason: "",
+      },
+      gradeBoxVisible: false,
       dialogVisiblezhengjian: false,
       baoanzdata: {},
       obj: {
@@ -197,6 +341,7 @@
         menu: true,
         menuWidth: 295,
         labelWidth: 120,
+        ...this.$store.state.control.clearOtherBut,
         column: [
           {
             label: "考试时间",
@@ -507,13 +652,6 @@
             // 表单编辑时是否为查看模式
             editDetail: false,
             width: 58,
-            rules: [
-              {
-                required: true,
-                message: "请输入考试名称",
-                trigger: "blur",
-              },
-            ],
           },
           {
             label: "是否合格",
@@ -553,13 +691,6 @@
             editDisplay: true,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请输入考试名称",
-                trigger: "blur",
-              },
-            ],
           },
         ],
       },
@@ -570,6 +701,7 @@
         pageSize: 10,
         currentPage: 1,
         total: 16,
+        ...this.$store.state.control.changePageSize,
       },
       questionBankQuery: {},
       questionBankSelectionList: [],
@@ -688,6 +820,16 @@
             Object.assign(params, this.questionBankQuery)
           ).then((res) => {
             const data = res.data.data;
+
+            data.records.forEach((item) => {
+              if (item.theoryGrade == null && item.learnGrade == -1) {
+                item.qualified = "";
+              }
+              item.theoryGrade == null
+                ? (item.theoryGrade = "")
+                : item.theoryGrade;
+              item.learnGrade == -1 ? (item.learnGrade = "") : item.learnGrade;
+            });
             that.questionBankPage.total = data.total;
             that.questionBankData = data.records;
             that.questionBankLoading = false;
@@ -706,7 +848,7 @@
         row.qualified = 3;
         updateAbsent(row).then(
           () => {
-            this.onLoad(this.page);
+            this.questionBankOnLoad(this.questionBankPage);
             this.$message({
               type: "success",
               message: "操作成功!",
@@ -720,6 +862,64 @@
         );
       });
     },
+
+    // 修改考试成绩
+    modifiedGrades(row) {
+      var {
+        id,
+        examName,
+        securityName,
+        account,
+        candidateNo,
+        theoryGrade,
+        learnGrade,
+        allGrade,
+      } = row;
+
+      this.gradeForm.examName = examName;
+      this.gradeForm.securityName = securityName;
+      this.gradeForm.account = account;
+      this.gradeForm.candidateNo = candidateNo;
+      this.gradeForm.theoryGrade = theoryGrade;
+      this.gradeForm.learnGrade = learnGrade;
+      this.gradeForm.allGrade = allGrade;
+      this.gradeForm.editGrades = "";
+      this.gradeForm.editReason = "";
+      this.gradeForm.id = id;
+
+      this.gradeBoxVisible = true;
+    },
+
+    uploadGrade(formName) {
+      var that = this;
+
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          var obj = {};
+          obj.oldScore = this.gradeForm.theoryGrade;
+          obj.newScore = this.gradeForm.editGrades;
+          obj.applyCause = this.gradeForm.editReason;
+          obj.examScoreId = this.gradeForm.id;
+          obj.createUser = this.userInfo.Id;
+
+          updateGrade(obj).then(
+            () => {
+              that.questionBankOnLoad(that.questionBankPage);
+              that.$message({
+                type: "success",
+                message: "操作成功!",
+              });
+
+              that.gradeBoxVisible = false;
+            },
+            (error) => {
+              window.console.log(error);
+            }
+          );
+        }
+      });
+    },
+
     questionBankSelectionClear() {
       this.questionBankSelectionList = [];
       this.$refs.questionBankCrud.toggleSelection();
@@ -774,6 +974,10 @@
     uploadAfter(res, done, loading, column) {
       window.console.log(column);
       this.excelBox = false;
+      // this.$message({
+      //   type: "success",
+      //   message: "操作成功!",
+      // });
       this.refreshChange();
       done();
     },
@@ -788,7 +992,7 @@
         type: "warning",
       }).then(() => {
         //获取查询条件
-        console.log(this.questionBankSearch, 456);
+        // console.log(this.questionBankSearch, 456);
         var data = {
           account: this.questionBankSearch.account,
           companyName: this.questionBankSearch.companyName,

--
Gitblit v1.9.3