From 3dc60960fc8a60188879ff3fad996b6c87a16d12 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 02 Aug 2021 19:08:42 +0800
Subject: [PATCH] 报名清册导入

---
 /dev/null                         |   40 ---
 src/router/views/index.js         |   14 +
 src/views/exam/startexam.vue      |   19 +
 public/papers.html                |    4 
 src/views/trainApply/index.vue    |  531 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/applydetailed/index.vue |    2 
 6 files changed, 564 insertions(+), 46 deletions(-)

diff --git a/public/papers.html b/public/papers.html
index 09d177a..a3fba99 100644
--- a/public/papers.html
+++ b/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>
diff --git a/src/router/views/index.js b/src/router/views/index.js
index fe947e1..390b2eb 100644
--- a/src/router/views/index.js
+++ b/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,
diff --git a/src/views/applydetailed/index.vue b/src/views/applydetailed/index.vue
index 02e2789..313f5b8 100644
--- a/src/views/applydetailed/index.vue
+++ b/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}`);
             });
         },
     }
diff --git a/src/views/applydetailed/papers.vue b/src/views/applydetailed/papers.vue
deleted file mode 100644
index 70fee4a..0000000
--- a/src/views/applydetailed/papers.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-<template>
-  <!-- <iframe src="http://124.71.113.22/map/index.html?openid=PatrolManagement" style="width: 100%;height: 100%" frameborder="0"></iframe> -->
-  <iframe :src="url" style="width: 100%; height: 100%" frameborder="0"></iframe>
-</template>
-
-<script>
-//占位路由 巡逻管理
-export default {
-  data() {
-    return {
-      url: "/papers.html",
-    };
-  },
-  created(){
-      var d = this.$route.query;
-      this.url += "?data=" + JSON.stringify(d);
-    //   console.log(d);
-  },
-  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);
-    }
-  },
-};
-</script>
-
-<style>
-</style>
\ No newline at end of file
diff --git a/src/views/exam/startexam.vue b/src/views/exam/startexam.vue
index 9e78287..37abb00 100644
--- a/src/views/exam/startexam.vue
+++ b/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) {
diff --git a/src/views/trainApply/index.vue b/src/views/trainApply/index.vue
new file mode 100644
index 0000000..447281b
--- /dev/null
+++ b/src/views/trainApply/index.vue
@@ -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>

--
Gitblit v1.9.3