From afbf287f31db7e14f7fc890f2674f281fdbef3bd Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 13 Aug 2021 08:43:00 +0800
Subject: [PATCH] 报名考试修改
---
src/views/trainExam/index.vue | 686 +++++++++++++++++++++-------
src/views/trainingRegistration/data.js | 70 +-
public/securityPrint.html | 2
src/views/securityUnit/index.vue | 3
public/papers.html | 1
src/api/trainingRegistration/trainingRegistration.js | 14
src/views/trainApply/index.vue | 78 ++-
src/views/trainingRegistration/index.vue | 193 +++++++
public/papersApply.html | 1
src/views/applydetailed/index.vue | 2
src/views/securityEquipment/equipments.vue | 6
src/views/exam/startexam.vue | 1
src/api/examapi/examination.js | 61 +-
src/views/trainExam/data.js | 294 ++++++------
14 files changed, 997 insertions(+), 415 deletions(-)
diff --git a/public/papers.html b/public/papers.html
index f4829ce..b39f705 100644
--- a/public/papers.html
+++ b/public/papers.html
@@ -121,6 +121,7 @@
var examType = JSON.parse(getData("data")).examType;
// console.log(JSON.parse(getData("data")), 111);
+ // axios.get('http://223.82.109.183:2080/apply/getApplyInfo?id=' + id + "&applyExamType=" + examType).then(function(res) {
axios.get('http://localhost:81/apply/getApplyInfo?id=' + id + "&applyExamType=" + examType).then(function(res) {
var data = res.data.data;
var str = `<span class="title">${data.examName}</span>
diff --git a/public/papersApply.html b/public/papersApply.html
index 2df373c..3682b04 100644
--- a/public/papersApply.html
+++ b/public/papersApply.html
@@ -77,6 +77,7 @@
var name = JSON.parse(getData("data")).name;
// console.log(JSON.parse(getData("data")), 111);
+ // axios.get('http://223.82.109.183:2080/apply/getApplyDetailList?examId=' + id).then(function(res) {
axios.get('http://localhost:81/apply/getApplyDetailList?examId=' + id).then(function(res) {
var data = res.data;
var list = data.applyList;
diff --git a/public/securityPrint.html b/public/securityPrint.html
index f03c34a..6935f39 100644
--- a/public/securityPrint.html
+++ b/public/securityPrint.html
@@ -199,7 +199,7 @@
var securityName = JSON.parse(getData("data")).securityName;
// console.log(JSON.parse(getData("data")), 111);
- axios.get('http://localhost:81/apply/userDetail?id=' + id).then(function(res) {
+ axios.get('http://223.82.109.183:2080/apply/userDetail?id=' + id).then(function(res) {
var data = res.data.data;
var str = `<div id="table1"></div>
<div id="table">
diff --git a/src/api/examapi/examination.js b/src/api/examapi/examination.js
index c1fe666..5112045 100644
--- a/src/api/examapi/examination.js
+++ b/src/api/examapi/examination.js
@@ -1,39 +1,48 @@
import request from '@/router/axios';
export const getList = (current, size, params) => {
- return request({
- url: '/api/exampaper/page',
- method: 'get',
- params: {
- ...params,
- current,
- size
- }
- })
+ return request({
+ url: '/api/exampaper/page',
+ method: 'get',
+ params: {
+ ...params,
+ current,
+ size
+ }
+ })
}
export const remove = (ids) => {
- return request({
- url: '/api/exampaper/remove',
- method: 'post',
- params: {
- ids,
- }
- })
+ return request({
+ url: '/api/exampaper/remove',
+ method: 'post',
+ params: {
+ ids,
+ }
+ })
}
export const add = (row) => {
- return request({
- url: '/api/exampaper/submit',
- method: 'post',
- data: row
- })
+ return request({
+ url: '/api/exampaper/submit',
+ method: 'post',
+ data: row
+ })
}
export const update = (row) => {
- return request({
- url: '/api/exampaper/update',
- method: 'post',
- data: row
- })
+ return request({
+ url: '/api/exampaper/update',
+ method: 'post',
+ data: row
+ })
}
+
+
+export const updateAudit = (row) => {
+ return request({
+ url: '/api/exampaper/update-audit',
+ method: 'post',
+ data: row
+ })
+}
\ No newline at end of file
diff --git a/src/api/trainingRegistration/trainingRegistration.js b/src/api/trainingRegistration/trainingRegistration.js
index 5049a88..9b93056 100644
--- a/src/api/trainingRegistration/trainingRegistration.js
+++ b/src/api/trainingRegistration/trainingRegistration.js
@@ -54,4 +54,18 @@
ids,
}
})
+}
+
+
+export const addExam = (ids, examTime, startTime, endTime) => {
+ return request({
+ url: '/api/trainingRegistration/batchExam',
+ method: 'post',
+ params: {
+ ids,
+ examTime,
+ startTime,
+ endTime
+ }
+ })
}
\ No newline at end of file
diff --git a/src/views/applydetailed/index.vue b/src/views/applydetailed/index.vue
index 813d19a..58bfe60 100644
--- a/src/views/applydetailed/index.vue
+++ b/src/views/applydetailed/index.vue
@@ -36,7 +36,7 @@
plain
icon="el-icon-download"
@click="handleExport"
- >清册生成
+ >清册打印
</el-button>
<el-button
style="display:none"
diff --git a/src/views/exam/startexam.vue b/src/views/exam/startexam.vue
index 07cfd3d..0a343d4 100644
--- a/src/views/exam/startexam.vue
+++ b/src/views/exam/startexam.vue
@@ -338,6 +338,7 @@
methods: {
questionBankOnLoad(page, params = {}) {
this.questionBankLoading = false;
+ params['examType'] = 1;
getList(
page.currentPage,
page.pageSize,
diff --git a/src/views/securityEquipment/equipments.vue b/src/views/securityEquipment/equipments.vue
index 399fed4..e2b3ebe 100644
--- a/src/views/securityEquipment/equipments.vue
+++ b/src/views/securityEquipment/equipments.vue
@@ -36,7 +36,7 @@
</template>
</avue-crud>
<el-dialog
- title="题库导入"
+ title="装备附件批量导入"
append-to-body
:visible.sync="excelBox"
width="555px"
@@ -81,7 +81,7 @@
res: "data",
},
tip: "请上传 .xls,.xlsx 标准格式文件",
- action: "/api/examSubjectChoices/import-examSubject",
+ action: "/api/equipage/import-equipage",
},
{
label: "模板下载",
@@ -135,7 +135,7 @@
done();
},
handleTemplate() {
- window.open(`/api/examSubjectChoices/export-template`);
+ window.open(`/api/equipage/export-template`);
},
sizeChange(val) {
this.page1.currentPage = 1;
diff --git a/src/views/securityUnit/index.vue b/src/views/securityUnit/index.vue
index 624bc9d..aa0a674 100644
--- a/src/views/securityUnit/index.vue
+++ b/src/views/securityUnit/index.vue
@@ -19,6 +19,7 @@
>
<template slot-scope="{ type, size, row }" slot="menu">
<el-button
+ style="display:none"
:size="size"
:type="type"
@click="handleUploadPage(row)"
@@ -285,7 +286,7 @@
searchSize: "mini",
searchMenuSpan: 6,
height: 583,
- menuWidth: 290,
+ menuWidth: 160,
align: "center",
selection: true,
column: column,
diff --git a/src/views/trainApply/index.vue b/src/views/trainApply/index.vue
index 57af7a2..f5bc5e0 100644
--- a/src/views/trainApply/index.vue
+++ b/src/views/trainApply/index.vue
@@ -31,6 +31,7 @@
<!-- 自定义按钮 -->
<template slot="menuLeft">
<el-button
+ style="display:none"
type="warning"
size="small"
plain
@@ -39,12 +40,21 @@
>导出
</el-button>
<el-button
+ style="display:none"
type="success"
size="small"
plain
icon="el-icon-upload2"
@click="handleImport"
>导入
+ </el-button>
+ <el-button
+ type="warning"
+ size="small"
+ plain
+ icon="el-icon-download"
+ @click="handleExport"
+ >清册打印
</el-button>
</template>
@@ -142,7 +152,7 @@
prop: "userId",
type: 'tree',
dicUrl: '',
- search: true,
+
hide:true,
slot: true,
// 表单新增时是否禁止
@@ -174,6 +184,7 @@
addDisabled: false,
// 表单新增时是否可见
addDisplay: false,
+ search: true,
// 表单新增时是否为查看模式
addDetail: false,
// 表单编辑时是否禁止
@@ -385,26 +396,27 @@
// 表单编辑时是否为查看模式
editDetail: false,
width: 160
- },{
- label: "报名状态",
- prop: "cancel",
- slot: true,
- // 表单新增时是否禁止
- addDisabled: false,
- // 表单新增时是否可见
- addDisplay: false,
- // 表单新增时是否为查看模式
- addDetail: false,
- // 表单编辑时是否禁止
- editDisabled: false,
- // 表单编辑时是否可见
- editDisplay: true,
- // 表单编辑时是否为查看模式
- editDetail: false,
- dicData:DIC.cancel,
- search:true,
- type:"select"
},
+ // {
+ // label: "报名状态",
+ // prop: "cancel",
+ // slot: true,
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: false,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: false,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+ // dicData:DIC.cancel,
+ // search:true,
+ // type:"select"
+ // },
]
},
questionBankSearch: {},
@@ -620,17 +632,27 @@
this.$refs.questionBankCrud.toggleSelection();
});
},
-
- //导出数据
+ //清册生成
handleExport() {
- this.$confirm("是否导出清册数据?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- }).then(() => {
- window.open(`/api/trainingRegistration/export-apply?examId=${this.$route.query.id}`);
+ var obj ={};
+ obj["name"] = "报名清册信息";
+ obj["examId"] = this.$route.query.id;
+ this.$router.push({
+ path: `/applydetailed/papers`,
+ query: obj,
});
},
+
+ //导出数据
+ // handleExport() {
+ // this.$confirm("是否导出清册数据?", "提示", {
+ // confirmButtonText: "确定",
+ // cancelButtonText: "取消",
+ // type: "warning",
+ // }).then(() => {
+ // window.open(`/api/trainingRegistration/export-apply?examId=${this.$route.query.id}`);
+ // });
+ // },
handleImport() {
this.excelBox = true;
},
diff --git a/src/views/trainExam/data.js b/src/views/trainExam/data.js
index d206338..5b314b3 100644
--- a/src/views/trainExam/data.js
+++ b/src/views/trainExam/data.js
@@ -1,160 +1,164 @@
export var infoColumn = [{
- label: "申请单位名称",
+ label: "申请单位名称",
- prop: "deptId",
- type: "tree",
- dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569",
- width: 180,
- hide: true,
- viewDisplay: false,
- props: {
- label: "title",
- value: "id"
- },
- rules: [{
- required: true,
- message: "请选择申请单位名称",
- trigger: "blur"
- }]
-}, {
- label: "申请单位名称",
- prop: "deptName",
- type: "select",
- dicUrl: "/api/blade-system/dept/tree",
- width: 180,
- editDisplay: false,
- addDisplay: false
-},
-{
- label: "考试名称",
- searchSpan: 4,
- width: 180,
- prop: "trainExamName",
- search: true,
-},
-
-{
- label: "开始时间",
- prop: "startTime",
- type: "datetime",
- format: "yyyy-MM-dd HH:mm:ss",
- valueFormat: "yyyy-MM-dd HH:mm:ss",
- width: 180,
- rules: [{
- required: true,
- message: "请选择开始时间",
- trigger: "blur"
- }]
-},
-{
- label: "结束时间",
- prop: "endTime",
- type: "datetime",
- width: 180,
- format: "yyyy-MM-dd HH:mm:ss",
- valueFormat: "yyyy-MM-dd HH:mm:ss",
- rules: [{
- required: true,
- message: "请选择结束时间",
- trigger: "click"
- }]
-},
-{
- label: "申请时间",
- prop: "createTime",
- type: "datetime",
- width: 180,
- editDisplay: false,
- addDisplay: false,
- format: "yyyy-MM-dd HH:mm:ss",
- valueFormat: "yyyy-MM-dd HH:mm:ss",
- rules: [{
- required: true,
- message: "请选择结束时间",
- trigger: "click"
- }]
-},
-{
- label: "审核时间",
- prop: "auditTime",
- type: "datetime",
- width: 180,
- editDisplay: false,
- addDisplay: false,
- format: "yyyy-MM-dd HH:mm:ss",
- valueFormat: "yyyy-MM-dd HH:mm:ss",
- rules: [{
- required: true,
- message: "请选择结束时间",
- trigger: "click"
- }]
-},
-{
- label: "审核状态",
- search: true,
- searchSpan: 4,
- prop: "auditStatus",
- slot: true,
- editDisplay: false,
- addDisplay: false,
- type: "select",
- rules: [{
- required: true,
- message: "请选择审核类型",
- trigger: "blur"
- }],
- dicData: [{
- label: "审核通过",
- value: 1
+ prop: "deptId",
+ type: "tree",
+ dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569",
+ width: 180,
+ hide: true,
+ viewDisplay: false,
+ props: {
+ label: "title",
+ value: "id"
+ },
+ rules: [{
+ required: true,
+ message: "请选择申请单位名称",
+ trigger: "blur"
+ }]
+ }, {
+ label: "申请单位名称",
+ prop: "deptName",
+ type: "select",
+ dicUrl: "/api/blade-system/dept/tree",
+ width: 180,
+ editDisplay: false,
+ addDisplay: false
},
{
- label: "不通过",
- value: 2
+ label: "考试名称",
+ searchSpan: 4,
+ width: 180,
+ prop: "trainExamName",
+ search: true,
+ },
+
+ {
+ label: "开始时间",
+ prop: "startTime",
+ type: "datetime",
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ width: 180,
+ rules: [{
+ required: true,
+ message: "请选择开始时间",
+ trigger: "blur"
+ }]
},
{
- label: "待审核",
- value: 3
+ label: "结束时间",
+ prop: "endTime",
+ type: "datetime",
+ width: 180,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ rules: [{
+ required: true,
+ message: "请选择结束时间",
+ trigger: "click"
+ }]
+ },
+ {
+ label: "申请时间",
+ prop: "createTime",
+ type: "datetime",
+ width: 180,
+ editDisplay: false,
+ addDisplay: false,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ rules: [{
+ required: true,
+ message: "请选择结束时间",
+ trigger: "click"
+ }]
+ },
+ {
+ label: "审核时间",
+ prop: "auditTime",
+ type: "datetime",
+ width: 180,
+ editDisplay: false,
+ addDisplay: false,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ rules: [{
+ required: true,
+ message: "请选择结束时间",
+ trigger: "click"
+ }]
+ },
+ {
+ label: "审核状态",
+ search: true,
+ searchSpan: 4,
+ prop: "auditStatus",
+ slot: true,
+ editDisplay: false,
+ addDisplay: false,
+ type: "select",
+ rules: [{
+ required: true,
+ message: "请选择审核类型",
+ trigger: "blur"
+ }],
+ dicData: [{
+ label: "审核通过",
+ value: 1
+ },
+ {
+ label: "不通过",
+ value: 2
+ },
+ {
+ label: "待审核",
+ value: 3
+ }
+ ]
+ },
+ {
+ label: "审核明细",
+ editDisplay: false,
+ addDisplay: false,
+ prop: "auditDetail"
}
- ]
-},
-{
- label: "审核明细",
- editDisplay: false,
- addDisplay: false,
- prop: "auditDetail"
-}
]
export var auditColumn = [{
- label: "审核状态",
- search: true,
- searchSpan: 5,
- span: 24,
- prop: "auditStatus",
- slot: true,
- editDisplay: false,
- addDisplay: false,
- type: "select",
- rules: [{
- required: true,
- message: "请选择审核类型",
- trigger: "blur"
- }],
- dicData: [{
- label: "审核通过",
- value: 1
+ label: "审核状态",
+ search: true,
+ searchSpan: 5,
+ span: 24,
+ prop: "auditStatus",
+ slot: true,
+ editDisplay: false,
+ addDisplay: false,
+ type: "select",
+ rules: [{
+ required: true,
+ message: "请选择审核类型",
+ trigger: "blur"
+ }],
+ dicData: [{
+ label: "审核通过",
+ value: 1
+ },
+ {
+ label: "不通过",
+ value: 2
+ },
+ {
+ label: "待审核",
+ value: 3
+ }
+ ]
},
{
- label: "不通过",
- value: 2
+ label: "审核明细",
+ span: 24,
+ type: "textarea",
+ prop: "auditDetail"
}
- ]
-},
-{
- label: "审核明细",
- span: 24,
- type: "textarea",
- prop: "auditDetail"
-}
]
\ No newline at end of file
diff --git a/src/views/trainExam/index.vue b/src/views/trainExam/index.vue
index 4aa7515..bae15c3 100644
--- a/src/views/trainExam/index.vue
+++ b/src/views/trainExam/index.vue
@@ -1,77 +1,134 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-07-18 17:09:52
+ * menu-name 考试管理
+ */
<template>
- <basic-container class="hasButOne">
- <avue-crud
- :option="option"
- :table-loading="loading"
- :data="data"
- :page.sync="page"
- ref="crud"
- @row-del="rowDel"
- v-model="form"
- :permission="permissionList"
- @row-update="rowUpdate"
- @row-save="rowSave"
- :before-open="beforeOpen"
- @filter="filterChange"
- @search-change="searchChange"
- @search-reset="searchReset"
- @selection-change="selectionChange"
- @current-change="currentChange"
- @size-change="sizeChange"
- @refresh-change="refreshChange"
- @on-load="onLoad"
- >
- <template slot-scope="{ type,row }" slot="menu">
- <el-button
- :type="type"
- size="small"
- icon="el-icon-folder-checked"
- @click="handleAudit(row)"
- >审核
- </el-button>
- </template>
- </avue-crud>
+ <el-row class="morpheus-box-paper">
+ <el-col :span="24">
+ <el-card>
+ <div class="exam-card-body">
+ <avue-crud
+ v-model="form"
+ 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-save="questionBankRowSave"
+ @row-update="questionBankRowUpdate"
+ @row-del="questionBankRowDel"
+ >
+ <!-- 自定义按钮 -->
+ <!-- <template slot="menuLeft">
+ <el-button type="danger"
+ size="mini"
+ icon="el-icon-delete"
+ plain
+ @click="handleDelete">新增
+ </el-button>
+ <el-button type="danger"
+ size="mini"
+ icon="el-icon-delete"
+ plain
+ @click="handleDelete">删除
+ </el-button>
+ <el-button type="danger"
+ size="mini"
+ icon="el-icon-delete"
+ plain
+ @click="handleDelete">导出
+ </el-button>
+ </template> -->
- <el-dialog title="考试申请审核"
- :visible.sync="dialogFormVisible"
- modal-append-to-body='false'
- append-to-body='true'
- :close-on-click-model="true">
- <avue-form ref="formAudit" v-model="Audit" :option="optionAudit" @reset-change="emptytChange" @submit="submit"></avue-form>
- </el-dialog>
- </basic-container>
+ <template slot="menuLeft">
+ <el-button
+ type="danger"
+ size="small"
+ icon="el-icon-delete"
+ @click="questionBankHandleDelete"
+ >删 除
+ </el-button>
+ </template>
+
+ <template slot-scope="{ row }" slot="examStatus">
+ <el-tag>{{ row.examStatus == 0 ? "已发布" : "草稿" }}</el-tag>
+ </template>
+
+ <template slot-scope="{ row }" slot="menu">
+ <el-button
+ type="text"
+ size="mini"
+ icon="el-icon-collection"
+ class="start-kaoshi"
+ @click="startExam(row)"
+ >报名清册
+ </el-button>
+ <el-button
+ type="text"
+ size="mini"
+ icon="el-icon-folder-checked"
+ @click="handleAudit(row)"
+ >审核
+ </el-button>
+ </template>
+ </avue-crud>
+
+ <el-dialog
+ title="考试申请审核"
+ :visible.sync="dialogFormVisible"
+ modal-append-to-body="false"
+ append-to-body="true"
+ :close-on-click-model="true"
+ >
+ <avue-form
+ ref="formAudit"
+ v-model="Audit"
+ :option="optionAudit"
+ @reset-change="emptytChange"
+ @submit="submit"
+ ></avue-form>
+ </el-dialog>
+ </div>
+ </el-card>
+ </el-col>
+ </el-row>
</template>
<script>
-import { infoColumn,auditColumn } from "./data";
-import {
- getList,
- remove,
- update,
- updateAudit,
- add,
- getDetail,
-} from "@/api/trainExam/trainExam";
-import { mapGetters } from "vuex";
-
+import { getList, add, remove, update,updateAudit } from "@/api/examapi/examination";
+import { auditColumn } from "./data";
export default {
data() {
+ var validatePass = (rule, value, callback) => {
+ console.log(value);
+ if (value == undefined || value == "") {
+ callback(new Error("请输入分数"));
+ return;
+ } else if (value !== "" && isNaN(value) == true) {
+ callback(new Error("请输入数字"));
+ } else if (value <= 0) {
+ callback(new Error("分数设置请大于0"));
+ } else {
+ callback();
+ }
+ };
+
return {
form: {},
- Audit:{},
- query: {},
- loading: true,
- deptCategory: "",
- deptId: "",
- userId: "",
+ Audit: {},
dialogFormVisible: false,
- page: {
- pageSize: 10,
- currentPage: 1,
- total: 0,
- },
- selectionList: [],
- optionAudit:{
+ optionAudit: {
height: "auto",
calcHeight: 30,
dialogWidth: 1000,
@@ -89,54 +146,393 @@
dialogClickModal: false,
column: auditColumn,
},
- option: {
- height: "auto",
- calcHeight: 30,
- dialogWidth: 1000,
- tip: false,
- searchShow: true,
- searchMenuSpan: 6,
- border: false,
- index: true,
- stripe: true,
- viewBtn: true,
+ questionBankOption: {
+ // 操作栏多余按钮去除
+ delBtn: true,
+ editBtn: true,
addBtn: true,
selection: true,
+ menu: true,
+ // 导出按钮
excelBtn: false,
- menuWidth: 230,
- labelWidth: "120",
+ viewBtn: true,
+
+ // title: '题库',
+
+ align: "center",
+ height: "auto",
+ calcHeight: 80,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 4,
+ index: true,
+ indexLabel: "序号",
+ //dialogType: 'drawer',
dialogClickModal: false,
- column: infoColumn,
+ // 操作栏宽度
+ menuWidth: 280,
+
+ labelWidth: 140,
+
+ column: [
+ {
+ label: "考试名称",
+ prop: "examName",
+ search: true,
+ searchSpan: 4,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请输入试卷名称",
+ trigger: "blur",
+ },
+ ],
+ width:200,
+ },
+ // {
+ // label: "试卷分数",
+ // prop: "totalScore",
+ // slot: true,
+ // // 表单新增时是否禁止
+ // addDisabled: false,
+ // // 表单新增时是否可见
+ // addDisplay: true,
+ // // 表单新增时是否为查看模式
+ // addDetail: false,
+ // // 表单编辑时是否禁止
+ // editDisabled: false,
+ // // 表单编辑时是否可见
+ // editDisplay: true,
+ // // 表单编辑时是否为查看模式
+ // editDetail: false,
+
+ // rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
+ // width: 100
+ // },
+ {
+ label: "考试时间",
+ prop: "examTime",
+ type: "daterange",
+ // span: 24,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ startPlaceholder: "考试开始时间",
+ endPlaceholder: "考试结束时间",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ // display: false,
+ hide: true,
+ rules: [
+ {
+ required: true,
+ message: "请选择考试时间",
+ trigger: "blur",
+ },
+ ],
+ width: 160,
+ },
+ {
+ label: "考试开始时间",
+ prop: "startTime",
+ type: "datetime",
+ // span: 24,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ width: 160,
+ },
+ {
+ label: "考试结束时间",
+ prop: "endTime",
+ type: "datetime",
+ // span: 24,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ width: 160,
+ },
+ {
+ label: "创建人",
+ prop: "creator",
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: true,
+ // 表单新增时是否可见
+ addDisplay: false,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: true,
+ // 表单编辑时是否可见
+ editDisplay: false,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ hide: true,
+ display: false,
+ },
+ {
+ label: "备注",
+ prop: "remark",
+ span: 24,
+ hide:true,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ },
+ {
+ label: "注意事项",
+ prop: "examAttention",
+ type: "textarea",
+ span: 24,
+ slot: true,
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ width: 150,
+ },
+ {
+ label: "申请时间",
+ prop: "createTime",
+ type: "datetime",
+ width: 160,
+ editDisplay: false,
+ addDisplay: false,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ rules: [
+ {
+ required: true,
+ message: "请选择结束时间",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "审核时间",
+ prop: "auditTime",
+ type: "datetime",
+ width: 160,
+ editDisplay: false,
+ addDisplay: false,
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ rules: [
+ {
+ required: true,
+ message: "请选择结束时间",
+ trigger: "click",
+ },
+ ],
+ },
+ {
+ label: "审核状态",
+ search: true,
+ searchSpan: 4,
+ prop: "auditStatus",
+ slot: true,
+ editDisplay: false,
+ addDisplay: false,
+ type: "select",
+ rules: [
+ {
+ required: true,
+ message: "请选择审核类型",
+ trigger: "blur",
+ },
+ ],
+ dicData: [
+ {
+ label: "审核通过",
+ value: 1,
+ },
+ {
+ label: "不通过",
+ value: 2,
+ },
+ {
+ label: "待审核",
+ value: 3,
+ },
+ ],
+ },
+ {
+ label: "审核明细",
+ editDisplay: false,
+ addDisplay: false,
+ prop: "auditDetail",
+ },
+ ],
},
- data: [],
+ questionBankSearch: {},
+ questionBankLoading: true,
+ questionBankData: [],
+ questionBankPage: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 16,
+ },
+ questionBankQuery: {},
+ questionBankSelectionList: [],
};
},
+ created() {},
+ mounted() {},
computed: {
- ...mapGetters(["permission"]),
- permissionList() {
- return {
- addBtn: this.vaildData(this.permission.notice_add, false),
- viewBtn: this.vaildData(this.permission.notice_view, false),
- delBtn: this.vaildData(null, false),
- editBtn: this.vaildData(this.permission.notice_edit, false),
- };
- },
ids() {
let ids = [];
- this.selectionList.forEach((ele) => {
+ this.questionBankSelectionList.forEach((ele) => {
ids.push(ele.id);
});
return ids.join(",");
},
},
- mounted() {},
+ watch: {},
methods: {
- rowSave(row, done, loading) {
- row.category = 1;
- row.deptId = this.deptId;
+ questionBankOnLoad(page, params = {}) {
+ this.questionBankLoading = false;
+ params["examType"] = 2;
+ getList(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.questionBankQuery)
+ ).then((res) => {
+ const data = res.data.data;
+ this.questionBankPage.total = data.total;
+ this.questionBankData = data.records;
+ this.questionBankLoading = false;
+ this.questionBankSelectionClear();
+ });
+ },
+ questionBankSelectionClear() {
+ this.questionBankSelectionList = [];
+ this.$refs.questionBankCrud.toggleSelection();
+ },
+ questionBankSelectionChange(list) {
+ this.questionBankSelectionList = list;
+ },
+ questionBankSearchChange(params, done) {
+ this.questionBankQuery = params;
+ this.questionBankPage.currentPage = 1;
+ this.questionBankOnLoad(this.questionBankPage, params);
+ done();
+ },
+ questionBankSearchReset() {
+ this.questionBankQuery = {};
+ this.questionBankOnLoad(this.questionBankPage);
+ },
+ questionBankCurrentChange(currentPage) {
+ this.questionBankPage.currentPage = currentPage;
+ },
+ questionBankSizeChange(pageSize) {
+ this.questionBankPage.pageSize = pageSize;
+ },
+ //审核
+ submit(row,done,loading){
+ updateAudit(row).then(
+ () => {
+ this.dialogFormVisible = false;
+ this.questionBankOnLoad(this.questionBankPage);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+ startExam(row) {
+ //正式考试
+ if (row.examType == 1) {
+ this.$router.push({
+ path: `/applydetailed`,
+ query: row,
+ });
+ }
+
+ //模拟考试
+ if (row.examType == 2) {
+ this.$router.push({
+ path: `/trainApply`,
+ query: row,
+ });
+ }
+ },
+ // 新增
+ questionBankRowSave(row, done, loading) {
+ row.startTime = row.examTime[0];
+ row.endTime = row.examTime[1];
+ row.examTime = JSON.stringify(row.examTime);
add(row).then(
() => {
- this.onLoad(this.page);
+ this.questionBankOnLoad(this.questionBankPage);
this.$message({
type: "success",
message: "操作成功!",
@@ -149,10 +545,16 @@
}
);
},
- rowUpdate(row, index, done, loading) {
+ questionBankRowUpdate(row, index, done, loading) {
+ if (Array.isArray(row.examTime) != true) {
+ row.examTime = row.examTime.split(",");
+ }
+ row.startTime = row.examTime[0];
+ row.endTime = row.examTime[1];
+ row.examTime = JSON.stringify(row.examTime);
update(row).then(
() => {
- this.onLoad(this.page);
+ this.questionBankOnLoad(this.questionBankPage);
this.$message({
type: "success",
message: "操作成功!",
@@ -165,7 +567,7 @@
}
);
},
- rowDel(row) {
+ questionBankRowDel(row) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@@ -175,32 +577,15 @@
return remove(row.id);
})
.then(() => {
- this.onLoad(this.page);
+ this.questionBankOnLoad(this.questionBankPage);
this.$message({
type: "success",
message: "操作成功!",
});
});
},
- searchReset() {
- this.query = {};
- this.onLoad(this.page);
- },
- searchChange(params, done) {
- this.query = params;
- this.page.currentPage = 1;
- this.onLoad(this.page, params);
- done();
- },
- selectionChange(list) {
- this.selectionList = list;
- },
- selectionClear() {
- this.selectionList = [];
- this.$refs.crud.toggleSelection();
- },
- handleDelete() {
- if (this.selectionList.length === 0) {
+ questionBankHandleDelete() {
+ if (this.questionBankSelectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
}
@@ -213,76 +598,21 @@
return remove(this.ids);
})
.then(() => {
- this.onLoad(this.page);
+ this.questionBankOnLoad(this.questionBankPage);
this.$message({
type: "success",
message: "操作成功!",
});
- this.$refs.crud.toggleSelection();
+ this.$refs.questionBankCrud.toggleSelection();
});
},
- //审核
- submit(row,done,loading){
- updateAudit(row).then(
- () => {
- this.dialogFormVisible = false;
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "操作成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
- },
- handleAudit(row){
- this.dialogFormVisible = true;
- this.Audit = row;
- },
- beforeOpen(done, type) {
- if (["edit", "view"].includes(type)) {
- getDetail(this.form.id).then((res) => {
- this.form = res.data.data;
- });
- }
- done();
- },
- currentChange(currentPage) {
- this.page.currentPage = currentPage;
- },
- sizeChange(pageSize) {
- this.page.pageSize = pageSize;
- },
- refreshChange() {
- this.onLoad(this.page, this.query);
- },
- onLoad(page, params = {}) {
- this.deptId = JSON.parse(
- window.localStorage.getItem("saber-userInfo")
- ).content.dept_id;
-
- this.userId = JSON.parse(
- window.localStorage.getItem("saber-userInfo")
- ).content.user_id;
-
- this.loading = true;
- getList(page.currentPage, page.pageSize, params).then(
- (res) => {
- const data = res.data.data;
- this.page.total = data.total;
- this.data = data.records;
- this.loading = false;
- this.selectionClear();
- }
- );
+ handleAudit(row) {
+ this.dialogFormVisible = true;
+ this.Audit = row;
},
},
};
</script>
-<style>
+<style lang="scss" scoped>
</style>
diff --git a/src/views/trainingRegistration/data.js b/src/views/trainingRegistration/data.js
index f4ab8ac..f08ae3d 100644
--- a/src/views/trainingRegistration/data.js
+++ b/src/views/trainingRegistration/data.js
@@ -69,20 +69,32 @@
editDisplay: false,
addDisplay: false,
width: 160
- },
- {
- label: "电话",
- prop: "phone",
- // hide: true,
+ }, {
+ label: "准考证号",
+ prop: "candidateNo",
rules: [{
required: true,
- message: "请输入电话",
+ message: "请输入准考证号",
trigger: "blur"
}],
editDisplay: false,
addDisplay: false,
- width: 110,
- }, {
+ width: 160
+ },
+ // {
+ // label: "电话",
+ // prop: "phone",
+ // // hide: true,
+ // rules: [{
+ // required: true,
+ // message: "请输入电话",
+ // trigger: "blur"
+ // }],
+ // editDisplay: false,
+ // addDisplay: false,
+ // width: 110,
+ // },
+ {
label: "单位名称",
prop: "deptId",
// width: 70,
@@ -115,30 +127,28 @@
trigger: "blur"
}],
},
- // {
- // label: "考试名称",
- // prop: "trainExamId",
- // dicUrl: "/api/trainExam/page-tree?deptId={{key}}",
- // props: {
- // label: "trainExamName",
- // value: "id"
- // },
-
- // },
{
- label: "报名状态",
- prop: "cancel",
- // search: true,
- dicData: DIC1,
- props: {
- label: "label",
- value: "value"
- },
- editDisplay: false,
- addDisplay: false,
- searchSpan: 4,
- width: 100,
+ label: "考试名称",
+ prop: "trainExamName"
},
+ {
+ label: "考试证件",
+ prop: "applyCard"
+ },
+ // {
+ // label: "报名状态",
+ // prop: "cancel",
+ // // search: true,
+ // dicData: DIC1,
+ // props: {
+ // label: "label",
+ // value: "value"
+ // },
+ // editDisplay: false,
+ // addDisplay: false,
+ // searchSpan: 4,
+ // width: 100,
+ // },
// {
// label: "确认截止时间",
// prop: "remainingTime",
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index c0b9909..51fb7b9 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -40,6 +40,14 @@
>考试申请
</el-button>
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ @click="handleImport"
+ >清册导入
+ </el-button>
</template>
<template slot-scope="{ type, size, row }" slot="menu">
<el-button
@@ -50,6 +58,14 @@
>取消报名</el-button
>
<el-button
+ :type="type"
+ size="small"
+ icon="el-icon-receiving"
+ :disabled="row.candidateNo==''"
+ @click="handlePrint(row)"
+ >准考证打印
+ </el-button>
+ <el-button
icon="el-icon-folder-checked"
style="display: none"
@click="affirmApply(row)"
@@ -59,6 +75,42 @@
>
</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>
+
+
+ <el-dialog
+ title="考试申请"
+ append-to-body
+ :visible.sync="dialogExamFormVisible"
+ width="1000px"
+ @close='closeDialog'
+ >
+ <avue-form
+ ref="formExamApply"
+ v-model="examApply"
+ :option="optionExamApply"
+ @reset-change="emptytChange"
+ @submit="submitExamApply"
+ ></avue-form>
+ </el-dialog>
</basic-container>
</template>
@@ -69,13 +121,90 @@
adddata,
update,
remove,
- cancelTrain
+ cancelTrain,
+ addExam
} from "@/api/trainingRegistration/trainingRegistration";
export default {
data() {
return {
loading: true,
+ excelBox:false,
+ dialogExamFormVisible:false,
+ optionExamApply: {
+ height: "auto",
+ filterBtn: true,
+ calcHeight: 30,
+ dialogWidth: 950,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: false,
+ index: true,
+ stripe: true,
+ viewBtn: true,
+ selection: true,
+ excelBtn: false,
+ menuWidth: 380,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "考试时间",
+ prop: "examTime",
+ type: "daterange",
+ format: "yyyy-MM-dd HH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
+ startPlaceholder: "考试开始时间",
+ endPlaceholder: "考试结束时间",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择考试时间",
+ trigger: "blur",
+ },
+ ],
+ span: 24,
+ },
+ ],
+ },
+ excelForm: {},
+ excelOption: {
+ submitBtn: false,
+ emptyBtn: false,
+ column: [
+ {
+ label: "模板上传",
+ prop: "excelFile",
+ type: "upload",
+ drag: true,
+ loadText: "模板上传中,请稍等",
+ span: 24,
+ propsHttp: {
+ res: "data",
+ },
+ tip: "请上传 .xls,.xlsx 标准格式文件",
+ action: "/api/trainingRegistration/import-trainingRegistration",
+ },
+ {
+ label: "模板下载",
+ prop: "excelTemplate",
+ formslot: true,
+ span: 24,
+ },
+ ],
+ },
selectionList: [],
page: {
pageSize: 10,
@@ -92,7 +221,7 @@
height: 583,
index: true,
labelWidth: "120",
- menuWidth: 100,
+ menuWidth: 200,
align: "center",
selection: true,
column: column,
@@ -112,6 +241,15 @@
},
},
methods: {
+ //准考证查看
+ handlePrint(row) {
+ var obj = row;
+ obj["name"] = "准考证信息";
+ this.$router.push({
+ path: `/applyexam/papers`,
+ query: obj,
+ });
+ },
sizeChange(val) {
this.page1.currentPage = 1;
this.page1.pageSize = val;
@@ -287,6 +425,57 @@
this.loading = false;
});
},
+ handleImport() {
+ this.excelBox = true;
+ },
+
+ handleTemplate() {
+ window.open(
+ `/api/trainingRegistration/export-template`
+ );
+ },
+ uploadAfter(res, done, loading, column) {
+ window.console.log(column);
+ this.excelBox = false;
+ this.refreshChange();
+ done();
+ },
+
+ //生成考试弹窗
+ handleBatchExam(){
+ this.dialogExamFormVisible = true;
+ if (this.selectionList.length === 0) {
+ this.ids = "";
+ }
+ },
+ //生成考试
+ submitExamApply(row, done, loading){
+ var that = this;
+ var startTime = row.examTime[0];
+ var endTime = row.examTime[1];
+ var examTime = JSON.stringify(row.examTime);
+ console.log(this.ids,111);
+ addExam(this.ids, examTime, startTime, endTime).then(
+ () => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ that.$refs.formExamApply.resetFields();
+ that.dialogExamFormVisible = false;
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+ //关闭窗口清除数据
+ closeDialog(){
+ this.$refs.formExamApply.resetFields();
+ },
},
mounted() {
// this.Ourdata = data;
--
Gitblit v1.9.3