From 2ce82ded66de4a348dd8fd36bdd826290efbdb06 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 29 Jul 2021 18:09:48 +0800
Subject: [PATCH] 新增准考证打印

---
 src/views/applyexam/index.vue          |   55 ++++++---
 src/views/trainingRegistration/data.js |    2 
 src/router/views/index.js              |   13 ++
 public/papers.html                     |  200 +++++++++++++++++++++++++++++++++
 src/views/applyexam/papers.vue         |   40 ++++++
 5 files changed, 291 insertions(+), 19 deletions(-)

diff --git a/public/papers.html b/public/papers.html
new file mode 100644
index 0000000..09d177a
--- /dev/null
+++ b/public/papers.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <style>
+        #table {
+            color: #000;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            flex-direction: column;
+        }
+        
+        .user-info-table {
+            margin-top: 30px;
+            width: 60%;
+            height: 60%;
+            border: 1px solid #000;
+            background-color: #fff;
+        }
+        
+        .user-info-tr {
+            height: 50px;
+        }
+        
+        .avatar {
+            width: 140px;
+            height: 190px;
+        }
+        
+        .title {
+            margin-top: 20px;
+        }
+        
+        .avatar {
+            width: 140px;
+            height: 190px;
+        }
+    </style>
+    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
+</head>
+
+
+<body>
+    <div>
+        <div>
+            <button onclick="preview(1)">打印</button>
+        </div>
+        <!--startprint-->
+        <div id="table">
+            <!-- <span class="title">准考证信息</span>
+            <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
+                <tr class="user-info-tr">
+                    <td width="150px">姓名</td>
+                    <td width="150px"></td>
+                    <td width="150px">身份证号</td>
+                    <td width="150px"></td>
+                    <td rowspan="4" align="center" width="150px" v-if="data.avatar == ''">
+                        照片
+                    </td>
+                </tr>
+
+                <tr class="user-info-tr">
+                    <td>准考证号</td>
+                    <td></td>
+                    <td width="150px">性别</td>
+                    <td width="150px" v-if="data.sex == 1">男</td>
+                </tr>
+
+                <tr class="user-info-tr">
+                    <td>考点名称</td>
+                    <td colspan="3"></td>
+                </tr>
+
+                <tr class="user-info-tr">
+                    <td>考点地址</td>
+                    <td colspan="3"></td>
+                </tr>
+
+                <tr class="user-info-tr" style="height:5px">
+                    <td colspan="5"></td>
+                </tr>
+
+                <tr class="user-info-tr">
+                    <td>考试名称</td>
+                    <td>考试类型</td>
+                    <td>考试时间</td>
+                    <td>考场号</td>
+                    <td>座位号</td>
+                </tr>
+
+                <tr class="user-info-tr">
+                    <td>{{data.examName}}</td>
+                    <td></td>
+                    <td></td>
+                    <td></td>
+                    <td></td>
+                </tr>
+
+            </table>
+        </div> -->
+            <!--endprint-->
+
+        </div>
+        <script>
+            var getData = function(name) {
+                var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+                var r = window.location.search.substr(1).match(reg);
+                if (r != null) return unescape(r[2]);
+                return null;
+            };
+            var id = JSON.parse(getData("data")).id;
+
+            axios.get('http://192.168.0.114:81/apply/getApplyInfo?id=' + id).then(function(res) {
+                var data = res.data.data;
+                var str = `<span class="title">${data.examName}</span>
+                    <span class="title">准考证信息</span>
+                    <table class="user-info-table" border="1px" align="center" cellspacing="0" cellpadding="10">
+                        <tr class="user-info-tr">
+                            <td width="150px">姓名</td>
+                            <td width="150px">${data.realName}</td>
+                            <td width="150px">身份证号</td>
+                            <td width="150px">${data.idCardNo}</td>
+                            <td rowspan="4" align="center" width="150px"">
+                                照片
+                            </td>
+                        </tr>
+
+                        <tr class="user-info-tr">
+                            <td>准考证号</td>
+                            <td>${data.candidateNo}</td>
+                            <td width="150px">性别</td>
+                            <td width="150px">${data.sex==1?"男":(data.sex==2?"女":"")}</td>
+                        </tr>
+
+                        <tr class="user-info-tr">
+                            <td>考点名称</td>
+                            <td colspan="3"></td>
+                        </tr>
+
+                        <tr class="user-info-tr">
+                            <td>考点地址</td>
+                            <td colspan="3"></td>
+                        </tr>
+
+                        <tr class="user-info-tr" style="height:5px">
+                            <td colspan="5"></td>
+                        </tr>
+
+                        <tr class="user-info-tr">
+                            <td>考试名称</td>
+                            <td width="120px">考试类型</td>
+                            <td width="180px">考试时间</td>
+                            <td>考场号</td>
+                            <td>座位号</td>
+                        </tr>
+
+                        <tr class="user-info-tr">
+                            <td>${data.examName}</td>
+                            <td width="120px"></td>
+                            <td width="180px">${data.stringTime}</td>
+                            <td></td>
+                            <td></td>
+                        </tr>
+
+                    </table>
+                </div>`
+
+                var dom = $('#table');
+                dom.empty();
+                dom.append(str);
+            })
+
+            function preview(oper) {
+                if (oper < 10) {
+                    bdhtml = window.document.body.innerHTML;
+                    // 打印开始的标志
+                    sprnstr = "<!--startprint-->";
+                    // 打印结束的标志
+                    eprnstr = "<!--endprint-->";
+                    // 从打印开始的位置截取到末尾
+                    prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr));
+                    // 从开始截取到打印结束的位置
+                    prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
+                    // 替换html
+                    window.document.body.innerHTML = prnhtml;
+                    // 打印
+                    window.print();
+                    window.document.body.innerHTML = bdhtml;
+                } else {
+                    window.print();
+                }
+            }
+        </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/router/views/index.js b/src/router/views/index.js
index c142848..2e38e8c 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -549,6 +549,19 @@
             component: () =>
                 import ( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
         }]
+    }, {
+        path: '/applyexam',
+        redirect: '/applyexam/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '准考证信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
+        }]
     },
     // {
     //     path: '/equipments',
diff --git a/src/views/applyexam/index.vue b/src/views/applyexam/index.vue
index 7c69bc5..02e65dd 100644
--- a/src/views/applyexam/index.vue
+++ b/src/views/applyexam/index.vue
@@ -58,6 +58,16 @@
                             </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>
@@ -110,7 +120,7 @@
                 //dialogType: 'drawer',
                 dialogClickModal: false,
                 // 操作栏宽度
-                menuWidth: 100,
+                menuWidth: 200,
 
                 column: [
                     {
@@ -263,23 +273,23 @@
                             trigger: "blur"
                         }],
                     },
-                    {
-                        label: "试卷分数",
-                        prop: "paperScore",
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: false,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false
-                    },
+                    // {
+                    //     label: "试卷分数",
+                    //     prop: "paperScore",
+                    //     slot: true,
+                    //     // 表单新增时是否禁止
+                    //     addDisabled: false,
+                    //     // 表单新增时是否可见
+                    //     addDisplay: false,
+                    //     // 表单新增时是否为查看模式
+                    //     addDetail: false,
+                    //     // 表单编辑时是否禁止
+                    //     editDisabled: true,
+                    //     // 表单编辑时是否可见
+                    //     editDisplay: true,
+                    //     // 表单编辑时是否为查看模式
+                    //     editDetail: false
+                    // },
                     {
                         label: "报名时间",
                         prop: "applyTime",
@@ -406,6 +416,15 @@
         },
     },
     methods: {
+        //准考证查看
+        handlePrint(row) {
+            var obj = row;
+            obj["name"] = "准考证信息";
+            this.$router.push({
+                path: `/applyexam/papers`,
+                query: obj,
+            });
+        },
         questionBankOnLoad (page, params = {}) {
             this.questionBankLoading = false;
             getApplyList(page.currentPage, page.pageSize, Object.assign(params, this.questionBankQuery)).then(res => {
diff --git a/src/views/applyexam/papers.vue b/src/views/applyexam/papers.vue
new file mode 100644
index 0000000..70fee4a
--- /dev/null
+++ b/src/views/applyexam/papers.vue
@@ -0,0 +1,40 @@
+<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/trainingRegistration/data.js b/src/views/trainingRegistration/data.js
index 77c5cdb..a53d540 100644
--- a/src/views/trainingRegistration/data.js
+++ b/src/views/trainingRegistration/data.js
@@ -98,7 +98,7 @@
             message: "请输入培训公司名称",
             trigger: "blur"
         }],
-        searchSpan: 5,
+        searchSpan: 6,
         searchLabelWidth: 110,
         search: true,
         overHidden: true

--
Gitblit v1.9.3