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