Administrator
2021-08-02 3dc60960fc8a60188879ff3fad996b6c87a16d12
报名清册导入
4 files modified
1 files deleted
1 files added
610 ■■■■■ changed files
public/papers.html 4 ●●● patch | view | raw | blame | history
src/router/views/index.js 14 ●●●●● patch | view | raw | blame | history
src/views/applydetailed/index.vue 2 ●●● patch | view | raw | blame | history
src/views/applydetailed/papers.vue 40 ●●●●● patch | view | raw | blame | history
src/views/exam/startexam.vue 19 ●●●● patch | view | raw | blame | history
src/views/trainApply/index.vue 531 ●●●●● patch | view | raw | blame | history
public/papers.html
@@ -113,8 +113,10 @@
                return null;
            };
            var id = JSON.parse(getData("data")).id;
            var examType = JSON.parse(getData("data")).examType;
            // console.log(JSON.parse(getData("data")), 111);
            axios.get('http://192.168.0.114:81/apply/getApplyInfo?id=' + id).then(function(res) {
            axios.get('http://192.168.0.114:81/apply/getApplyInfo?id=' + id + "&applyExamType=" + examType).then(function(res) {
                var data = res.data.data;
                var str = `<span class="title">${data.examName}</span>
                    <span class="title">准考证信息</span>
src/router/views/index.js
@@ -690,6 +690,20 @@
        }]
    },
    {
        path: '/trainApply',
        redirect: '/trainApply/index',
        component: Layout,
        children: [{
            path: 'index',
            name: '报名清册',
            meta: {
                i18n: 'index',
            },
            component: () =>
                import ( /* webpackChunkName: "views" */ '@/views/trainApply/index')
        }]
    },
    {
        path: '/startexam',
        redirect: '/startexam/index',
        component: Layout,
src/views/applydetailed/index.vue
@@ -523,7 +523,7 @@
                cancelButtonText: "取消",
                type: "warning",
            }).then(() => {
                window.open(`/api/apply/export-apply}`);
                window.open(`/api/apply/export-apply?examId=${this.$route.query.id}`);
            });
        },
    }
src/views/applydetailed/papers.vue
File was deleted
src/views/exam/startexam.vue
@@ -388,10 +388,21 @@
        },
        startExam (row) {
            this.$router.push({
                path: `/applydetailed`,
                query: 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) {
src/views/trainApply/index.vue
New file
@@ -0,0 +1,531 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-19 19:39:45
 * menu-name 报名考试
 */
<template>
    <el-row class="morpheus-box-apply-exam">
        <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
                                type="warning"
                                size="small"
                                plain
                                icon="el-icon-download"
                                @click="handleExport"
                                >导出
                            </el-button>
                        </template>
                        <template slot-scope="{ type,row }" slot="menu">
                            <el-button
                            :type="type"
                            size="small"
                            icon="el-icon-receiving"
                            @click="handlePrint(row)"
                            >准考证打印
                            </el-button>
                        </template>
                    </avue-crud>
                </div>
            </el-card>
        </el-col>
    </el-row>
</template>
<script>
import {getdata,adddata,remove} from "@/api/trainingRegistration/trainingRegistration";
import { mapState } from 'vuex'
export default {
    data () {
        return {
            obj: {
                name: '张三',
            },
            questionBankOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: true,
                menu: true,
                // 导出按钮
                // excelBtn: true,
                viewBtn: false,
                // title: '题库',
                align: 'center',
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                indexLabel: '序号',
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 200,
                column: [
                    {
                        label: "保安姓名",
                        prop: "realName",
                        type: 'tree',
                        dicUrl: '',
                        search: true,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        props: {
                            label: "title",
                            value: "id",
                        },
                        rules: [{
                            required: true,
                            message: "请选择保安姓名",
                            trigger: "blur"
                        }]
                    },
                    {
                        label: "考试名称",
                        prop: "trainExamName",
                        type: 'tree',
                        dicUrl: '/api/exampaper/page-tree',
                        // search: true,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        props: {
                            label: "examName",
                            value: "id",
                        },
                        rules: [{
                            required: true,
                            message: "请选择试卷名称",
                            trigger: "blur"
                        }],
                        width: 220
                    },
                    {
                        label: "所属公司",
                        prop: "deptName",
                        search: true,
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择所属公司",
                            trigger: "blur"
                        }],
                        width: 220
                    },
                    {
                        label: "准考证号",
                        prop: "candidateNo",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }]
                    },
                    {
                        label: "身份证号",
                        prop: "idCardNo",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                        width: 200
                    },
                    {
                        label: "报考证件",
                        prop: "applyCard",
                        slot: true,
                        // 表单新增时是否禁止
                        addDisabled: false,
                        // 表单新增时是否可见
                        addDisplay: false,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: false,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        rules: [{
                            required: true,
                            message: "请选择准考证号",
                            trigger: "blur"
                        }],
                    },
                    // {
                    //     label: "试卷分数",
                    //     prop: "paperScore",
                    //     slot: true,
                    //     // 表单新增时是否禁止
                    //     addDisabled: false,
                    //     // 表单新增时是否可见
                    //     addDisplay: false,
                    //     // 表单新增时是否为查看模式
                    //     addDetail: false,
                    //     // 表单编辑时是否禁止
                    //     editDisabled: true,
                    //     // 表单编辑时是否可见
                    //     editDisplay: true,
                    //     // 表单编辑时是否为查看模式
                    //     editDetail: false
                    // },
                    {
                        label: "报名时间",
                        prop: "trainingTime",
                        type: "datetime",
                        // span: 24,
                        format: 'yyyy-MM-dd HH:mm:ss',
                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
                        // 表单新增时是否禁止
                        addDisabled: true,
                        // 表单新增时是否可见
                        addDisplay: true,
                        // 表单新增时是否为查看模式
                        addDetail: false,
                        // 表单编辑时是否禁止
                        editDisabled: true,
                        // 表单编辑时是否可见
                        editDisplay: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        value: (new Date().getFullYear() + '-' + (new Date().getMonth() + 1 < 10
                            ? "0" + (new Date().getMonth() + 1)
                            : new Date().getMonth() + 1) + '-' + (new Date().getDate() < 10
                                ? "0" + new Date().getDate()
                                : new Date().getDate()) + ' ' + (new Date().getHours() < 10
                                    ? "0" + new Date().getHours()
                                    : new Date().getHours()) + ':' + (new Date().getMinutes() < 10
                                        ? "0" + new Date().getMinutes()
                                        : new Date().getMinutes()) + ':' + (new Date().getSeconds() < 10
                                            ? "0" + new Date().getSeconds()
                                            : new Date().getSeconds())),
                        width: 180
                    },
                    {
                        label: "考试时间",
                        prop: "trainExamTime",
                        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: true,
                        // 表单编辑时是否为查看模式
                        editDetail: false,
                        width: 180
                    }
                ]
            },
            questionBankSearch: {},
            questionBankLoading: true,
            questionBankData: [
            ],
            questionBankPage: {
                pageSize: 10,
                currentPage: 1,
                total: 16
            },
            questionBankQuery: {},
            questionBankSelectionList: [],
        }
    },
    watch: {
        "form.examname": {
            // form是表单或者表格绑定的数据集,v-model='form'
            handler (val) {
                if (val) {
                    //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
                    var address = val.formattedAddress.toString();
                    if (address.search("县") != -1) {
                        this.form.address = address.substring(
                            address.indexOf("县") + 1,
                            address.length
                        );
                    }
                    if (address.search("区") != -1) {
                        this.form.address = address.substring(
                            address.indexOf("区") + 1,
                            address.length
                        );
                    }
                }
            },
            immediate: true,
        },
    },
    created () {
      console.log(this.userInfo)
      if (this.userInfo.role_name.indexOf('ksxtadmin') != -1) {
        this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId="
      } else {
        this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId=" + this.userInfo.dept_id
      }
    },
    mounted() {
        var flag = false,
        i = 0,
        ind = null;
        this.$store.state.tags.tagList.forEach((item, index) => {
        if (item.label == "报名清册") {
            if (flag == false) {
            ind = index;
            flag = true;
            }
            i++;
        }
        });
        if (i > 1) {
        this.$store.state.tags.tagList.splice(ind, 1);
        }
    },
    computed: {
        ...mapState({
            userInfo: state => state.user.userInfo
        }),
        ids () {
            let ids = [];
            this.questionBankSelectionList.forEach(ele => {
                ids.push(ele.id);
            });
            return ids.join(",");
        },
    },
    methods: {
        //准考证查看
        handlePrint(row) {
            var obj = row;
            obj["name"] = "准考证信息";
            this.$router.push({
                path: `/applyexam/papers`,
                query: obj,
            });
        },
        questionBankOnLoad (page, params = {}) {
            // debugger;
            params['examId'] = this.$route.query.id;
            this.questionBankLoading = false;
            getdata(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;
        },
        // 新增
        questionBankRowSave (row, done, loading) {
            adddata({ userId: row.name, examId: row.examName, applyTime: row.applyTime }).then(() => {
                this.questionBankOnLoad(this.questionBankPage);
                this.$message({
                    type: "success",
                    message: "操作成功!"
                });
                done();
            }, error => {
                window.console.log(error);
                loading();
            });
        },
        questionBankRowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(row.id);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                });
        },
        questionBankHandleDelete () {
            if (this.questionBankSelectionList.length === 0) {
                this.$message.warning("请选择至少一条数据");
                return;
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            })
                .then(() => {
                    return remove(this.ids);
                })
                .then(() => {
                    this.questionBankOnLoad(this.questionBankPage);
                    this.$message({
                        type: "success",
                        message: "操作成功!"
                    });
                    this.$refs.questionBankCrud.toggleSelection();
                });
        },
        //导出数据
        handleExport() {
            this.$confirm("是否导出清册数据?", "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            }).then(() => {
                window.open(`/api/trainingRegistration/export-apply?examId=${this.$route.query.id}`);
            });
        },
    }
}
</script>
<style lang="scss" scoped>
</style>