From 8e2a42e4a2da78f9cda9fa3e7732a0ef72f0c906 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 12 Nov 2021 09:29:02 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises
---
src/views/trainingRegistration/index.vue | 552 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 467 insertions(+), 85 deletions(-)
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index a0b4b3a..b288021 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -5,6 +5,7 @@
:table-loading="loading"
:data="data"
:page.sync="page"
+ :search.sync="search"
ref="crud"
@row-del="rowDel"
v-model="form"
@@ -23,13 +24,31 @@
>
<template slot="menuLeft">
<el-button
- style="display:none"
+ style="display: none"
type="danger"
size="small"
plain
icon="el-icon-delete"
@click="handleDelete"
>删 除
+ </el-button>
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ @click="handleBatchExam"
+ v-if="permission.trainingRegistration_exam"
+ >考试申请
+ </el-button>
+ <el-button
+ type="primary"
+ size="small"
+ plain
+ icon="el-icon-folder-checked"
+ v-if="permission.trainingRegistration_import"
+ @click="handleImport"
+ >批量导入
</el-button>
</template>
<template slot-scope="{ type, size, row }" slot="menu">
@@ -38,19 +57,64 @@
@click="revoke(row)"
:size="size"
:type="type"
- :disabled="row.cancel==2"
+ v-if="permission.trainingRegistration_cancel"
+ :disabled="row.cancel == 2"
>取消报名</el-button
>
<el-button
+ :type="type"
+ size="small"
+ icon="el-icon-receiving"
+ v-if="permission.trainingRegistration_print"
+ :disabled="row.candidateNo == '' || row.cancel == 2"
+ @click="handlePrint(row)"
+ >准考证打印
+ </el-button>
+ <el-button
icon="el-icon-folder-checked"
- style="display:none"
+ style="display: none"
@click="affirmApply(row)"
:size="size"
:type="type"
- >确认报名</el-button>
+ >确认报名</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>
+
+ <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>
@@ -61,12 +125,175 @@
adddata,
update,
remove,
+ cancelTrain,
+ addExam,
} from "@/api/trainingRegistration/trainingRegistration";
-
+import { mapGetters } from "vuex";
+import { getRoleDetail } from "@/api/system/role";
export default {
data() {
return {
+ choiceName: [],
loading: true,
+ excelBox: false,
+ dialogExamFormVisible: false,
+ search: {},
+ examApply: {
+ number: 0,
+ },
+ optionExamApply: {
+ height: "auto",
+ filterBtn: true,
+ calcHeight: 30,
+ dialogWidth: 950,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true, //liu
+ index: true,
+ stripe: true,
+ viewBtn: true,
+ selection: false,
+ excelBtn: false,
+ menuWidth: 380,
+ dialogClickModal: false,
+ column: [
+ {
+ label: "所选保安人数",
+ prop: "number",
+ span: 24,
+ value: 0,
+ disabled: true,
+ labelWidth: 110,
+ },
+ // {
+ // label: "序号开始",
+ // prop: "serialStart",
+ // span: 12,
+ // value: 1,
+ // mock: {
+ // type: "number",
+ // max: 1000,
+ // min: 1,
+ // precision: 0,
+ // },
+ // minRows: 1,
+ // maxRows: 1000,
+ // type: "number",
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入序号",
+ // trigger: "blur",
+ // },
+ // ],
+ // },
+ // {
+ // label: "序号结束",
+ // prop: "serialEnd",
+ // span: 12,
+ // value: 50,
+ // mock: {
+ // type: "number",
+ // max: 1000,
+ // min: 1,
+ // precision: 0,
+ // },
+ // minRows: 1,
+ // maxRows: 1000,
+ // type: "number",
+ // rules: [
+ // {
+ // required: true,
+ // message: "请输入序号",
+ // trigger: "blur",
+ // },
+ // ],
+ // },
+ {
+ label: "考试开始时间",
+ prop: "startTime",
+ type: "datetime",
+ format: "yyyy-MM-dd HH:mm",
+ valueFormat: "yyyy-MM-dd HH:mm",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择考试时间",
+ trigger: "blur",
+ },
+ ],
+ span: 12,
+ labelWidth: 110,
+ },
+ {
+ label: "考试开始截止时间",
+ prop: "endTime",
+ type: "datetime",
+ format: "yyyy-MM-dd HH:mm",
+ valueFormat: "yyyy-MM-dd HH:mm",
+ // 表单新增时是否禁止
+ addDisabled: false,
+ // 表单新增时是否可见
+ addDisplay: true,
+ // 表单新增时是否为查看模式
+ addDetail: false,
+ // 表单编辑时是否禁止
+ editDisabled: false,
+ // 表单编辑时是否可见
+ editDisplay: true,
+ // 表单编辑时是否为查看模式
+ editDetail: false,
+ rules: [
+ {
+ required: true,
+ message: "请选择考试时间",
+ trigger: "blur",
+ },
+ ],
+ span: 12,
+ labelWidth: 140,
+ },
+ ],
+ },
+ 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,
@@ -77,19 +304,28 @@
data: [],
option: {
// card: true,
- tip: false,
- searchSize: "mini",
+ // tip: false,
+ // searchSize: "mini",
searchMenuSpan: 6,
- height: 693,
- index: true,
+ height: 563,
+ index: false,
+ selectable: (row, index) => {
+ console.log(row, index);
+ if (row.auditStatus == 4 && row.cancel == 1) {
+ return true;
+ } else {
+ return false;
+ }
+ },
labelWidth: "120",
- menuWidth: 100,
+ menuWidth: 200,
align: "center",
+ reserveSelection: true,
selection: true,
column: column,
delBtn: false,
editBtn: false,
- addBtn:false
+ addBtn: false,
},
};
},
@@ -101,38 +337,68 @@
});
return ids.join(",");
},
+ ...mapGetters(["userInfo", "permission"]),
+ permissionList() {
+ return {
+ addBtn: this.vaildData(this.permission.notice_add, false),
+ viewBtn: this.vaildData(this.permission.notice_view, false),
+ delBtn: this.vaildData(this.permission.notice_delete, false),
+ editBtn: this.vaildData(this.permission.notice_edit, false),
+ };
+ },
+ },
+ created() {
+ this.search["cancel"] = 1;
+ this.search["auditStatus"] = 4;
+ },
+ mounted() {
+ // if (window.name == "baoming") {
+ // let old = JSON.parse(window.localStorage.getItem("baoming"));
+ // this.choiceName = old;
+ // console.log(old);
+ // console.log("刷新");
+ // } else {
+ // window.name = "baoming";
+ // console.log("不刷新");
+ // }
},
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;
- this.getData();
- // this.$message.success("行数" + val);
+ this.page.pageSize = val;
+ // this.getData();
},
currentChange(val) {
- this.page1.currentPage = val;
- this.getData();
- // this.$message.success("页码" + val);
+ this.page.currentPage = val;
+ // this.getData();
},
rowSave(form, done, loading) {
var that = this;
adddata(form).then(
(res) => {
this.onLoad(this.page);
- if(res.data.data==201){
+ if (res.data.data == 201) {
this.$message({
type: "warning",
- message:"已报名,不能重复报名",
+ message: "已报名,不能重复报名",
});
- }else if(res.data.data==201){
+ } else if (res.data.data == 201) {
this.$message({
type: "warning",
- message:"报名失败",
+ message: "报名失败",
});
- }else{
+ } else {
this.$message({
type: "success",
- message:"报名成功",
+ message: "报名成功",
});
}
done();
@@ -154,8 +420,6 @@
this.onLoad(this.page);
},
rowUpdate(row, index, done, loading) {
- // console.log(row);
-
update(row).then(
() => {
this.onLoad(this.page);
@@ -172,54 +436,51 @@
);
},
//确认报名
- affirmApply(row,done,loading){
+ affirmApply(row, done, loading) {
this.$confirm("确认报名?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
- })
- .then(() => {
- row.cancel = 3;
- update(row).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "确认报名成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
- })
+ }).then(() => {
+ row.cancel = 3;
+ update(row).then(
+ () => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "确认报名成功!",
+ });
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ });
},
- revoke(row,done,loading) {
+ revoke(row, done, loading) {
this.$confirm("确定取消报名?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
- })
- .then(() => {
- row.cancel = 2;
- update(row).then(
- () => {
- this.onLoad(this.page);
- this.$message({
- type: "success",
- message: "取消报名成功!",
- });
- done();
- },
- (error) => {
- window.console.log(error);
- loading();
- }
- );
- })
-
+ }).then(() => {
+ row.cancel = 2;
+ cancelTrain(row).then(
+ () => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "取消报名成功!",
+ });
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ });
},
rowDel(row) {
this.$confirm("确定将选择数据删除?", {
@@ -239,7 +500,18 @@
});
},
selectionChange(list) {
- this.selectionList = list;
+ // this.selectionList = list;
+ this.choiceName = [];
+ // console.log(window.name);
+ for (let k in list) {
+ this.choiceName.push({
+ label: list[k].realName,
+ value: list[k].id,
+ });
+ }
+
+ // window.localStorage.setItem("baoming", JSON.stringify(this.choiceName));
+ // console.log(this.choiceName);
},
handleDelete() {
if (this.selectionList.length === 0) {
@@ -268,27 +540,137 @@
},
onLoad(page, params = {}) {
this.loading = true;
- getdata(
- page.currentPage,
- page.pageSize,
- Object.assign(params, this.query)
- ).then((res) => {
- // console.log(res);
- const data = res.data.data;
- this.page.total = data.total;
- this.data = data.records;
- console.log(this.data);
- this.loading = false;
+ //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
+ var that = this;
+ //获取当前登录人员的角色信息
+ var roleIds = this.userInfo.role_id.split(",");
+ params = this.search;
+ roleIds.forEach((roleId) => {
+ getRoleDetail(roleId).then((res) => {
+ var roleAlias = res.data.data.roleAlias;
+ if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+ //如果是保安公司管理员
+ params["deptId"] = that.userInfo.dept_id;
+ }
+ if (roleAlias == "培训公司管理员") {
+ //如果是培训公司管理员
+ params["trainingUnitId"] = that.userInfo.dept_id;
+ }
+ params["isExam"] = 1;
+ getdata(
+ page.currentPage,
+ page.pageSize,
+ Object.assign(params, this.query)
+ ).then((res) => {
+ // console.log(res);
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ // console.log(this.data);
+ this.loading = false;
+ });
+ });
});
},
- },
- mounted() {
- // this.Ourdata = data;
- // this.getData();
- // this.onLoad(this.page);
- // var dept_id = JSON.parse(
- // window.localStorage.getItem("saber-userInfo")
- // ).content.dept_id;
+ 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() {
+ if (this.choiceName.length == 0) {
+ this.$message({
+ message: "未选择保安员",
+ type: "warning",
+ });
+ return;
+ }
+ this.dialogExamFormVisible = true;
+ this.examApply.number = this.choiceName.length;
+
+ // if (this.selectionList.length === 0) {
+ // this.ids = "";
+ // }
+ },
+ //生成考试
+ submitExamApply(row, done, loading) {
+ var that = this;
+ row.startTime = row.startTime + ":00";
+ row.endTime = row.endTime + ":00";
+ // if(row.number!=((row.serialEnd-row.serialStart)+1)){
+ // this.$message({
+ // type: "error",
+ // message: "考试人数与序号不匹配!",
+ // });
+ // done();
+ // return;
+ // }
+
+ // var s = new Date(row.startTime);
+ // var e = new Date(row.endTime);
+ // if (s > e) {
+ // this.$message({
+ // type: "error",
+ // message: "考试开始截止时间不能早于考试考试开始时间!",
+ // });
+ // done();
+ // return;
+ // }
+
+ if (that.userInfo.role_name == "培训公司管理员") {
+ //如果是培训公司管理员
+ row["trainingUnitId"] = that.userInfo.dept_id;
+ }
+
+ // row["number"] = row.serialEnd - row.serialStart + 1;
+ // //创建人
+ row["creator"] = this.userInfo.Id;
+ let cho = this.choiceName;
+ let str = "";
+ for (let k in cho) {
+ str += cho[k].value;
+ if (k != cho.length - 1) {
+ str += ",";
+ }
+ }
+ row["ids"] = str;
+ //提交申请
+ let overData = Object.assign(row);
+ console.log(overData, "overData");
+ // done();
+ // return;
+ addExam(overData).then(
+ () => {
+ this.onLoad(this.page);
+ that.$refs.formExamApply.resetFields();
+ that.dialogExamFormVisible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功",
+ });
+ this.$refs.crud.toggleSelection();
+ done();
+ },
+ (error) => {
+ window.console.log(error);
+ loading();
+ }
+ );
+ },
+ //关闭窗口清除数据
+ closeDialog() {
+ this.$refs.formExamApply.resetFields();
+ },
},
};
</script>
--
Gitblit v1.9.3