| | |
| | | * @Author: Morpheus |
| | | * @Date: 2021-07-05 16:31:54 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-10-26 15:33:54 |
| | | * @Last Modified time: 2021-11-30 10:23:40 |
| | | * menu-name 报名考试 |
| | | */ |
| | | <template> |
| | | <el-row class="morpheus-box-apply-exam-1"> |
| | | <el-col :span="24" class="hasButOne"> |
| | | <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-save="questionBankRowSave" |
| | | @row-del="questionBankRowDel" |
| | | > |
| | | <!-- 自定义按钮 --> |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | style="display: none" |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-download" |
| | | @click="handleExport" |
| | | >导出 |
| | | </el-button> |
| | | <el-button |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-receiving" |
| | | @click="handleExport" |
| | | >清册打印 |
| | | </el-button> |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | plain |
| | | v-if="false" |
| | | icon="el-icon-download" |
| | | @click="handleImport" |
| | | >清册导入 |
| | | </el-button> |
| | | </template> |
| | | <!-- class="exam-card-body" --> |
| | | <basic-container |
| | | :class="[ |
| | | $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize', |
| | | $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box tablesss" |
| | | :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-del="questionBankRowDel" |
| | | :row-style="rowStyle" |
| | | > |
| | | <!-- 自定义按钮 --> |
| | | <template slot="menuLeft"> |
| | | <el-button |
| | | style="display: none" |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-download" |
| | | @click="handleExport" |
| | | >导出 |
| | | </el-button> |
| | | <el-button |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-receiving" |
| | | @click="handleExport" |
| | | >清册打印 |
| | | </el-button> |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | plain |
| | | v-if="false" |
| | | icon="el-icon-download" |
| | | @click="handleImport" |
| | | >清册导入 |
| | | </el-button> |
| | | <el-button |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-download" |
| | | @click="handleApplyInfoExport" |
| | | >报名清册信息导出 |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template slot-scope="{ type, row }" slot="menu"> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-receiving" |
| | | :disabled="row.candidateNo == '' || row.cancel == 2" |
| | | @click="handlePrint(row)" |
| | | >准考证打印 |
| | | </el-button> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-refresh-left" |
| | | :disabled=" |
| | | row.cancel == 2 || row.isExam == 2 || row.isExam == 3 |
| | | " |
| | | @click="revoke(row)" |
| | | >取消报名 |
| | | </el-button> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-circle-check" |
| | | :disabled="row.auditStatus == 1" |
| | | @click="auditSucess(row)" |
| | | >审核通过 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <template slot-scope="{ type, row }" slot="menu"> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-receiving" |
| | | :disabled=" |
| | | row.candidateNo == '' || row.cancel == 2 || row.auditStatus == 2 |
| | | " |
| | | @click="handlePrint(row)" |
| | | >准考证打印 |
| | | </el-button> |
| | | <el-button |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-refresh-left" |
| | | :disabled="row.cancel == 2 || row.isExam == 2 || row.isExam == 3" |
| | | @click="revoke(row)" |
| | | >取消报名 |
| | | </el-button> |
| | | <el-button |
| | | style="display: none" |
| | | :type="type" |
| | | size="small" |
| | | icon="el-icon-circle-check" |
| | | :disabled="row.auditStatus == 1" |
| | | @click="auditSucess(row)" |
| | | >审核通过 |
| | | </el-button> |
| | | <el-button |
| | | v-if="row.vipStatus != 1 && permission.exam_vip" |
| | | icon="el-icon-folder-checked" |
| | | @click="usesVipConfirm(row)" |
| | | :size="size" |
| | | :type="type" |
| | | >缴费确认</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> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <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> |
| | |
| | | getdata, |
| | | adddata, |
| | | cancelTrainAudit, |
| | | cancelTrain, |
| | | auditSucess, |
| | | remove, |
| | | vipSign, |
| | | } from "@/api/trainingRegistration/trainingRegistration"; |
| | | |
| | | import Qs from "qs"; |
| | | import { getToken } from "@/util/auth"; |
| | | import { mapState } from "vuex"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | var DIC = { |
| | | cancel: [ |
| | |
| | | //dialogType: 'drawer', |
| | | dialogClickModal: false, |
| | | // 操作栏宽度 |
| | | menuWidth: 200, |
| | | |
| | | menuWidth: 280, |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: "保安姓名", |
| | |
| | | // 表单新增时是否可见 |
| | | addDisplay: false, |
| | | search: true, |
| | | searchSpan: 3, |
| | | // 表单新增时是否为查看模式 |
| | | addDetail: false, |
| | | // 表单编辑时是否禁止 |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 220, |
| | | width: 180, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "所属公司", |
| | | label: "所属企业", |
| | | prop: "deptName", |
| | | search: true, |
| | | searchSpan: 5, |
| | | slot: true, |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择所属公司", |
| | | message: "请选择所属企业", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 220, |
| | | width: 200, |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "报名状态", |
| | |
| | | search: true, |
| | | hide: true, |
| | | searchSpan: 4, |
| | | searchValue: 1, |
| | | dicData: [ |
| | | { |
| | | label: "全部", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "已报名", |
| | | value: 1, |
| | |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 200, |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: "报考证件", |
| | |
| | | type: "select", |
| | | searchSpan: 4, |
| | | prop: "auditStatus", |
| | | searchValue: 4, |
| | | dicData: [ |
| | | { |
| | | label: "全部", |
| | |
| | | addDisplay: false, |
| | | width: 100, |
| | | }, |
| | | // { |
| | | // label: "报名状态", |
| | | // prop: "cancel", |
| | | // slot: true, |
| | | // // 表单新增时是否禁止 |
| | | // addDisabled: false, |
| | | // // 表单新增时是否可见 |
| | | { |
| | | label: "考试状态", |
| | | search: true, |
| | | type: "select", |
| | | searchSpan: 4, |
| | | prop: "isExam", |
| | | dicData: [ |
| | | { |
| | | label: "全部", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "未考试", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "考试结束", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "考试中", |
| | | value: 3, |
| | | }, |
| | | { |
| | | label: "缺考", |
| | | value: 4, |
| | | }, |
| | | ], |
| | | props: { |
| | | label: "label", |
| | | value: "value", |
| | | }, |
| | | editDisplay: false, |
| | | addDisplay: false, |
| | | width: 100, |
| | | }, |
| | | // { |
| | | // label: "缴费状态", |
| | | // search: true, |
| | | // type: "select", |
| | | // searchSpan: 4, |
| | | // prop: "vipStatus", |
| | | // dicData: [ |
| | | // { |
| | | // label: '全部', |
| | | // value: 0, |
| | | // }, |
| | | // { |
| | | // label: '已缴费', |
| | | // value: 1, |
| | | // }, |
| | | // { |
| | | // label: '未缴费', |
| | | // value: 2, |
| | | // } |
| | | // ], |
| | | // props: { |
| | | // label: "label", |
| | | // value: "value" |
| | | // }, |
| | | // editDisplay: false, |
| | | // addDisplay: false, |
| | | // // 表单新增时是否为查看模式 |
| | | // addDetail: false, |
| | | // // 表单编辑时是否禁止 |
| | | // editDisabled: false, |
| | | // // 表单编辑时是否可见 |
| | | // editDisplay: true, |
| | | // // 表单编辑时是否为查看模式 |
| | | // editDetail: false, |
| | | // dicData:DIC.cancel, |
| | | // search:true, |
| | | // type:"select" |
| | | // }, |
| | | // width: 100, |
| | | // }, |
| | | ], |
| | | }, |
| | | questionBankSearch: {}, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | questionBankSelectionList: [], |
| | |
| | | "/api/blade-system/dept/lazy-tree-user?parentId=" + |
| | | this.userInfo.dept_id; |
| | | } |
| | | this.questionBankSearch["cancel"] = 1; |
| | | this.questionBankSearch["auditStatus"] = 0; |
| | | // this.questionBankSearch["cancel"] = 1; |
| | | // this.questionBankSearch["auditStatus"] = 0; |
| | | // this.questionBankSearch["isExam"] = 1; |
| | | }, |
| | | mounted() { |
| | | var flag = false, |
| | |
| | | if (i > 1) { |
| | | this.$store.state.tags.tagList.splice(ind, 1); |
| | | } |
| | | this.$store.commit("setWindowSizeHeightAdd"); |
| | | }, |
| | | computed: { |
| | | ...mapState({ |
| | |
| | | }); |
| | | 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), |
| | | }; |
| | | }, |
| | | }, |
| | | methods: { |
| | | //报名信息导出 |
| | | handleApplyInfoExport() { |
| | | this.$confirm("是否导出考试报名信息数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(() => { |
| | | //获取查询条件 |
| | | // const { releaseTimeRange } = this.questionBankSearch; |
| | | // if (releaseTimeRange) { |
| | | // this.questionBankSearch["startTime"] = releaseTimeRange[0]; |
| | | // this.questionBankSearch["endTime"] = releaseTimeRange[1]; |
| | | // } |
| | | var data = { |
| | | cancel: this.questionBankSearch.cancel, |
| | | auditStatus: this.questionBankSearch.auditStatus, |
| | | deptName: this.questionBankSearch.deptName, |
| | | isExam: this.questionBankSearch.isExam, |
| | | realName: this.questionBankSearch.realName, |
| | | }; |
| | | data["examId"] = this.$route.query.id; |
| | | //序列号url形式,用&拼接 |
| | | data = Qs.stringify(data); |
| | | window.open( |
| | | `/api/trainingRegistration/export-apply-info?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` + data |
| | | ); |
| | | }); |
| | | }, |
| | | //行样式调整 |
| | | rowStyle({ row, column, rowIndex }) { |
| | | if (row.auditStatus == "2") { |
| | | return { |
| | | color: "#ff2727", |
| | | }; |
| | | } |
| | | }, |
| | | //准考证查看 |
| | | handlePrint(row) { |
| | | var obj = row; |
| | | obj["name"] = "准考证信息"; |
| | | obj["token"] = getToken(); |
| | | // var data = Qs.stringify(obj); |
| | | this.$router.push({ |
| | | path: `/applyexam/papers`, |
| | | query: obj, |
| | |
| | | this.questionBankData = data.records; |
| | | this.questionBankLoading = false; |
| | | this.questionBankSelectionClear(); |
| | | this.$store.commit("setWindowSizeHeightAdd"); |
| | | }); |
| | | }, |
| | | questionBankSelectionClear() { |
| | |
| | | type: "warning", |
| | | }).then(() => { |
| | | row.cancel = 2; |
| | | cancelTrainAudit(row).then( |
| | | cancelTrain(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | |
| | | ); |
| | | }); |
| | | }, |
| | | |
| | | usesVipConfirm(row) { |
| | | this.$confirm("确定将选择当前人员确认已缴费?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | var data = { |
| | | id: row.id, |
| | | userId: row.userId, |
| | | vipStatus: 1, |
| | | }; |
| | | return vipSign(data); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | // 新增 |
| | | questionBankRowSave(row, done, loading) { |
| | | adddata({ |
| | |
| | | var obj = {}; |
| | | obj["name"] = "报名清册信息"; |
| | | obj["examId"] = this.$route.query.id; |
| | | obj["token"] = getToken(); |
| | | 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; |
| | | }, |