From 79d9fc857559982b00b68b2d709807bdc4cd286f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 11 Apr 2022 10:58:17 +0800
Subject: [PATCH] minio 地址修改

---
 src/views/exam/performance.vue |  426 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 280 insertions(+), 146 deletions(-)

diff --git a/src/views/exam/performance.vue b/src/views/exam/performance.vue
index 1c9f5d8..7a57a66 100644
--- a/src/views/exam/performance.vue
+++ b/src/views/exam/performance.vue
@@ -1,92 +1,120 @@
-/*
- * @Author: Morpheus
- * @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-18 19:44:47
- * menu-name 成绩管理
- */
+/* * @Author: Morpheus * @Date: 2021-07-05 16:31:54 * @Last Modified by: liu *
+@Last Modified time: 2021-11-23 14:17:22 * menu-name 成绩管理 */
 <template>
-  <el-row class="morpheus-box">
-    <el-col :span="24" class="recruitmentManagement">
-      <el-card>
-        <div class="exam-card-body">
-          <avue-crud
-            v-model="obj"
-            class="company-box"
-            :option="questionBankOption"
-            :search.sync="questionBankSearch"
-            :table-loading="questionBankLoading"
-            :data="questionBankData"
-            ref="questionBankCrud"
-            :page.sync="questionBankPage"
-            @on-load="questionBankOnLoad"
-            @selection-change="questionBankSelectionChange"
-            @search-change="questionBankSearchChange"
-            @search-reset="questionBankSearchReset"
-            @current-change="questionBankCurrentChange"
-            @size-change="questionBankSizeChange"
-            @row-update="questionBankRowUpdate"
-          >
-            <template slot-scope="{ row }" slot="learnGrade">
-              {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
-            </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"
+      :permission="permissionList"
+      :search.sync="questionBankSearch"
+      :table-loading="questionBankLoading"
+      :data="questionBankData"
+      ref="questionBankCrud"
+      :page.sync="questionBankPage"
+      @on-load="questionBankOnLoad"
+      @selection-change="questionBankSelectionChange"
+      @search-change="questionBankSearchChange"
+      @search-reset="questionBankSearchReset"
+      @current-change="questionBankCurrentChange"
+      @size-change="questionBankSizeChange"
+      @row-update="questionBankRowUpdate"
+    >
+      <template slot-scope="{ row }" slot="theoryGrade">
+        {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
+      </template>
+      <template slot-scope="{ row }" slot="learnGrade">
+        {{ row.learnGrade == -1 ? "暂未录入" : 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 == 0
+            ? "合格"
+            : row.qualified == 1
+            ? "不合格"
+            : ""
+        }}
+      </template>
 
-            <!-- 自定义按钮 -->
-            <template slot="menuLeft">
-              <!-- <el-button type="danger"
+      <!-- 自定义按钮 -->
+      <template slot="menuLeft">
+        <!-- <el-button type="danger"
                                        size="mini"
                                        icon="el-icon-delete"
                                        plain
                                        @click="handleDelete">新增
                             </el-button> -->
-              <!-- <el-button type="danger"
+        <!-- <el-button type="danger"
                                        size="mini"
                                        icon="el-icon-delete"
                                        plain
                                        @click="handleDelete">删除
                             </el-button> -->
-              <el-button
-                type="success"
-                size="small"
-                plain
-                icon="el-icon-upload2"
-                @click="handleImport"
-                >实操成绩导入
-              </el-button>
-            </template>
-          </avue-crud>
+        <el-button
+          type="success"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          v-if="permission.performance_import"
+          @click="handleImport"
+          >实操成绩导入
+        </el-button>
+      </template>
 
-          <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>
-                </el-button>
-              </template>
-            </avue-form>
-          </el-dialog>
-        </div>
-      </el-card>
-    </el-col>
-  </el-row>
+      <template slot-scope="{ row }" slot="menu">
+        <el-button
+          type="text"
+          size="mini"
+          icon="el-icon-collection"
+          class="start-kaoshi"
+          v-if="permission.performance_print"
+          :disabled="row.qualified == 1"
+          @click="securityPrint(row)"
+          >保安证打印
+        </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"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog>
+  </basic-container>
 </template>
 
 <script>
 import { getList, update } from "@/api/examapi/performance";
+import { mapGetters } from "vuex";
+import { getRoleDetail } from "@/api/system/role";
 
 export default {
   data() {
     var validatePass = (rule, value, callback) => {
-      console.log(value);
       if (value == undefined || value == "") {
         callback(new Error("请输入实操成绩"));
         return;
@@ -103,7 +131,7 @@
 
     return {
       obj: {
-        name: "张三",
+        name: "张三"
       },
       excelBox: false,
       questionBankOption: {
@@ -115,7 +143,7 @@
         // 导出按钮
         excelBtn: true,
         excelBtnText: "成绩导出",
-        viewBtn: true,
+        viewBtn: false,
         // title: '成绩',
         align: "center",
         height: "auto",
@@ -129,16 +157,17 @@
         dialogClickModal: false,
         // 操作栏宽度
         menu: true,
-        menuWidth: 136,
+        menuWidth: 186,
         labelWidth: 120,
-
+        ...this.$store.state.control.clearOtherBut,
         column: [
           {
-            label: "试卷名称",
+            label: "考试名称",
             prop: "examName",
             search: true,
             searchSpan: 4,
             slot: true,
+            viewDisplay: false,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -146,23 +175,24 @@
             // 表单新增时是否为查看模式
             addDetail: false,
             // 表单编辑时是否禁止
-            editDisabled: true,
+            editDisabled: false,
             // 表单编辑时是否可见
-            editDisplay: true,
+            editDisplay: false,
             // 表单编辑时是否为查看模式
             editDetail: false,
             rules: [
               {
                 required: true,
                 message: "请输入试卷名称",
-                trigger: "blur",
-              },
+                trigger: "blur"
+              }
             ],
-            overHidden:true,
+            // overHidden: true,
+            width: 230
           },
           {
-            label: "保安姓名",
-            prop: "securityName",
+            label: "用户名",
+            prop: "account",
             search: true,
             searchSpan: 4,
             slot: true,
@@ -182,9 +212,10 @@
               {
                 required: true,
                 message: "请输入保安姓名",
-                trigger: "blur",
-              },
+                trigger: "blur"
+              }
             ],
+            width: 160
           },
           {
             label: "所属公司",
@@ -213,18 +244,19 @@
               {
                 required: true,
                 message: "请输入所属公司",
-                trigger: "blur",
-              },
+                trigger: "blur"
+              }
             ],
+            width: 250
           },
           {
-            label: "考试时间",
+            label: "考试开始时间",
             prop: "examTime",
             type: "datetime",
             // span: 24,
             format: "yyyy-MM-dd HH:mm:ss",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
-            width: 250,
+            width: 160,
             slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
@@ -237,7 +269,66 @@
             // 表单编辑时是否可见
             editDisplay: true,
             // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "考试结束时间",
+            prop: "examEndTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 160,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "状态",
+            prop: "isExam",
+            type: "select",
+            slot: true,
+            search: true,
+            searchSpan: 4,
+            dicData: [
+              {
+                label: "发布成绩",
+                value: 2
+              },
+              {
+                label: "考试中",
+                value: 3
+              }
+            ],
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
             editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入考试名称",
+                trigger: "blur"
+              }
+            ]
           },
           {
             label: "理论成绩",
@@ -254,7 +345,7 @@
             // 表单编辑时是否可见
             editDisplay: true,
             // 表单编辑时是否为查看模式
-            editDetail: false,
+            editDetail: false
           },
           {
             label: "实操成绩",
@@ -273,32 +364,32 @@
             // 表单编辑时是否为查看模式
             editDetail: false,
             rules: [
-              { validator: validatePass, required: true, trigger: "blur" },
-            ],
+              { validator: validatePass, required: true, trigger: "blur" }
+            ]
           },
           {
-              label: "总成绩",
-              prop: "allGrade",
-              slot: true,
-              // hide:true,
-              // 表单新增时是否禁止
-              addDisabled: false,
-              viewDisplay:false,
-              // 表单新增时是否可见
-              addDisplay: false,
-              // 表单新增时是否为查看模式
-              addDetail: false,
-              // 表单编辑时是否禁止
-              editDisabled: false,
-              // 表单编辑时是否可见
-              editDisplay: false,
-              // 表单编辑时是否为查看模式
-              editDetail: false,
-              rules: [{
-                  required: true,
-                  message: "请输入考试名称",
-                  trigger: "blur"
-              }]
+            label: "总成绩",
+            prop: "allGrade",
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入考试名称",
+                trigger: "blur"
+              }
+            ]
           },
           {
             label: "是否合格",
@@ -310,16 +401,16 @@
             dicData: [
               {
                 label: "合格",
-                value: 0,
+                value: 0
               },
               {
                 label: "不合格",
-                value: 1,
+                value: 1
               },
               {
                 label: "暂未录实操成绩",
-                value: 2,
-              },
+                value: 2
+              }
             ],
             // 表单新增时是否禁止
             addDisabled: false,
@@ -337,11 +428,11 @@
               {
                 required: true,
                 message: "请输入考试名称",
-                trigger: "blur",
-              },
-            ],
-          },
-        ],
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
       },
       questionBankSearch: {},
       questionBankLoading: true,
@@ -350,6 +441,7 @@
         pageSize: 10,
         currentPage: 1,
         total: 16,
+        ...this.$store.state.control.changePageSize
       },
       questionBankQuery: {},
       questionBankSelectionList: [],
@@ -366,10 +458,10 @@
             loadText: "模板上传中,请稍等",
             span: 24,
             propsHttp: {
-              res: "data",
+              res: "data"
             },
             tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/examScore/import-examScore",
+            action: "/api/examScore/import-examScore"
           },
           // {
           //     label: "数据覆盖",
@@ -401,28 +493,60 @@
             label: "模板下载",
             prop: "excelTemplate",
             formslot: true,
-            span: 24,
-          },
-        ],
-      },
+            span: 24
+          }
+        ]
+      }
     };
   },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(null, false),
+        viewBtn: this.vaildData(null, false),
+        delBtn: this.vaildData(null, false),
+        editBtn: this.vaildData(this.permission.performance__edit, false),
+        excelBtn: this.vaildData(this.permission.performance_export, false)
+      };
+    }
+  },
   created() {},
-  mounted() {},
+  mounted() {
+    this.$store.commit("setWindowSizeHeightAdd");
+  },
   methods: {
     questionBankOnLoad(page, params = {}) {
-      this.questionBankLoading = false;
-      params["examType"] = 1;
-      getList(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params, this.query)
-      ).then((res) => {
-        const data = res.data.data;
-        this.questionBankPage.total = data.total;
-        this.questionBankData = data.records;
-        this.questionBankLoading = false;
-        this.questionBankSelectionClear();
+      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
+      var that = this;
+      //获取当前登录人员的角色信息
+      var roleIds = this.userInfo.role_id.split(",");
+      roleIds.forEach(roleId => {
+        getRoleDetail(roleId).then(res => {
+          var roleAlias = res.data.data.roleAlias;
+          if (
+            roleAlias == "保安公司管理员" ||
+            roleAlias == "保安" ||
+            roleAlias == "未持证保安"
+          ) {
+            //如果是保安公司管理员
+            params["deptId"] = that.userInfo.dept_id;
+          }
+          that.questionBankLoading = false;
+          params["examType"] = 1;
+          getList(
+            page.currentPage,
+            page.pageSize,
+            Object.assign(params, this.query)
+          ).then(res => {
+            const data = res.data.data;
+            that.questionBankPage.total = data.total;
+            that.questionBankData = data.records;
+            that.questionBankLoading = false;
+            that.$store.commit("setWindowSizeHeightAdd");
+            that.questionBankSelectionClear();
+          });
+        });
       });
     },
     questionBankSelectionClear() {
@@ -448,22 +572,33 @@
     questionBankSizeChange(pageSize) {
       this.questionBankPage.pageSize = pageSize;
     },
+    //保安证证查看
+    securityPrint(row) {
+      var obj = row;
+      obj["name"] = "保安证";
+      this.$router.push({
+        path: `/exam/papers`,
+        query: obj
+      });
+    },
 
     questionBankRowUpdate(row, index, done, loading) {
+      // debugger;
       update({
         theoryGrade: row.theoryGrade,
         learnGrade: row.learnGrade,
-        id: row.id,
+        examId: row.examId,
+        id: row.id
       }).then(
         () => {
           this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
-            message: "操作成功!",
+            message: "操作成功!"
           });
           done();
         },
-        (error) => {
+        error => {
           window.console.log(error);
           loading();
         }
@@ -483,10 +618,9 @@
     },
     refreshChange() {
       this.questionBankOnLoad(this.page, this.query);
-    },
-  },
+    }
+  }
 };
 </script>
 
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

--
Gitblit v1.9.3