diff --git a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
index dd4b55b..c9e6ad0 100644
--- a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
+++ b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
@@ -45,6 +45,12 @@
         model.addAttribute("userId", userId);
         return "apph5/remoteH5";
     }
+    @RequestMapping("/doorappindex")
+    public String doorappindex(@RequestParam(value = "custid")String custid,Model model){
+        model.addAttribute("userId", custid);
+        return "apph5/doorappindex";
+    }
+
     @RequestMapping("/qrcodevisitor")
     public String qrcodevisitor(@RequestParam(value = "inoutflag")String inoutflag,HttpServletRequest request, HttpServletResponse response,Model model){
         String code = request.getParameter("code");
@@ -108,7 +114,8 @@
         String qrcode="";
         String appid = visitorConfig.getAppid();
         String redirect = visitorConfig.getRedirect();
-        qrcode="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri="+redirect+"%2fapp%2fqrcodevisitor%3finoutflag%3d"+inoutflag+"&response_type=code&scope=snsapi_userinfo&state=&connect_redirect=1#wechat_redirect";
+        //qrcode="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri="+redirect+"%2fapp%2fqrcodevisitor%3finoutflag%3d"+inoutflag+"&response_type=code&scope=snsapi_userinfo&state=&connect_redirect=1#wechat_redirect";
+        qrcode="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri="+redirect+"%2fapp%2fqrcodevisitor%3finoutflag%3d"+inoutflag+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
         model.addAttribute("qrcode", qrcode);
         return "apph5/visitorcode";
     }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
index 564d5c8..c40e224 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
@@ -10,16 +10,27 @@
 public class EVisitorCheckDtl {
 
     private int id;
+    //访客姓名
     private String visitorname;
+    //访客身份证号
     private String idno;
+    //访客状态
     private Integer status;
+    //访客联系方式
     private String phone;
+    //时间
     private String transtime;
+    //日期
     private String transdate;
+    //性别 1-男   2-女
     private String sex;
+    //部门编号
     private String deptcode;
+    //受访者id
     private String custid;
+    //访客单位
     private String company;
+    //备注
     private String remarks;
 
 
diff --git a/src/main/resources/templates/apph5/applyforvisitor.html b/src/main/resources/templates/apph5/applyforvisitor.html
index 054f6b6..8c9d7ae 100644
--- a/src/main/resources/templates/apph5/applyforvisitor.html
+++ b/src/main/resources/templates/apph5/applyforvisitor.html
@@ -32,9 +32,53 @@
         <span class="demonstration" style="text-align: center;display:block; font-size: 20px;color: #9932CC">访客申请</span><br><br>
         <!--动态将图片轮播图的容器高度设置成与图片一致-->
         <div class="el-message-box__input">
-            <label class="label-fade-enter">姓名</label><input type="text" class="el-input" id="name">
-            <label class="label-fade-enter">部门</label><input type="text" class="el-input" id="deptcode">
-            <label class="label-fade-enter">时间</label><select  class="el-select-dropdown__list" id="starttime">
+            <el-row>
+                <table>
+                    <tr>
+                        <el-label class="label-fade-enter">访问人姓名</el-label>
+                        <input type="text" class="el-input" id="visitorname">
+                    </tr>
+                    <tr>
+                        <el-label class="label-fade-enter">访问人身份证号</el-label>
+                        <input type="text" class="el-input" id="idno">
+                    </tr>
+                    <tr><el-label class="label-fade-enter">访问人性别</el-label>
+                        <input type="text" class="el-input" id="sex"></tr>
+                    <tr><el-label class="label-fade-enter">访问人联系方式</el-label>
+                        <input type="text" class="el-input" id="phone"></tr>
+                    <tr><el-label class="label-fade-enter">访问人单位</el-label>
+                        <input type="text" class="el-input" id="company"></tr>
+                    <tr> <el-label class="label-fade-enter">受访人姓名</el-label>
+                        <input type="text" class="el-input" id="custid"></tr>
+                    <tr>
+                        <td><el-label class="label-fade-enter">受访人部门</el-label>
+                            <input type="text" class="el-input" id="deptcode"></td>
+                    </tr>
+                </table>
+            </el-row>
+            <el-row>
+            </el-row>
+            <el-row>
+
+            </el-row>
+            <el-row>
+
+            </el-row>
+            <el-row>
+
+            </el-row>
+            <el-row>
+
+            </el-row>
+            <el-row>
+
+            </el-row>
+            <el-row>
+
+                <el-label class="label-fade-enter">备注</el-label>
+                <input type="text" class="el-input" id="deptcode">
+            </el-row>
+
         </div>
 
         <el-button type="success" @click="openDoor"
@@ -59,7 +103,18 @@
             bannerHeight: 1000,
             // 浏览器宽度
             screenWidth: 0,
-            userId: ''
+            userId: '',
+            searchDoorForm: {
+                visitorname: '',
+                idno: '',
+                time: '',
+                phone: '',
+                sex: '',
+                custid: '',
+                deptcode: '',
+                company: '',
+                remarks: '',
+            },
         },
 
         methods: {
diff --git a/src/main/resources/templates/visitormanage/addVisitorCheck.html b/src/main/resources/templates/visitormanage/addVisitorCheck.html
index c95e2d5..1fd0c67 100644
--- a/src/main/resources/templates/visitormanage/addVisitorCheck.html
+++ b/src/main/resources/templates/visitormanage/addVisitorCheck.html
@@ -121,7 +121,7 @@
                 </el-row>
 
                 <el-row>
-                    <el-col :span="8" :offset="16">
+                    <el-col :span="8" :offset="8">
                         <button type="button" style="margin-left: 48px" class="btn btn-info"
                                 @click="savevisitor(searchDoorForm)"
                                 id="searchDoorlist_qrybtn">
@@ -129,7 +129,7 @@
                         </button>
 
                     </el-col>
-                    <el-col :span="8" :offset="16">
+                    <el-col :span="8" :offset="8">
                         <button type="button" style="margin-left: 48px" class="btn btn-info"
                                 @click="getidcard(searchDoorForm)"
                                 id="searchDoorlist_qrycardbtn">
@@ -144,12 +144,6 @@
 
             <el-dialog title="时间段名称" :visible.sync="dialogFormVisible" center="true" top="3%" size="tiny"
                        :modal-append-to-body='false'>
-                <p>正在查看<span style="color:#f96" id="searchDoorlist_custNameId"></span>学生的时间段名称:</p>
-                <div style="width: 100%;">
-		            <span style="font-size: 16px!important;">时间段名称：
-                        {{alloTimeName}}
-                    </span>
-                </div>
 
                 <span slot="footer" class="dialog-footer">
                     <el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
@@ -430,25 +424,25 @@
         if(searchDoor.visitorname==null||searchDoor.visitorname.length==0){
             alert("请输入访客姓名");
             return;
-        }if(searchDoor.idno==null||searchDoor.idno.length<=18){
+        }if(searchDoor.idno==null||searchDoor.idno.length==0){
             alert("请输入访客身份证号");
             return;
-        }if(searchDoor.phone==null||searchDoor.phone<=11){
+        }if(searchDoor.phone==null||searchDoor.phone.length<=11){
             alert("请输入访客联系方式");
             return;
-        }if(searchDoor.sex==null||searchDoor.sex==0){
+        }if(searchDoor.sex==null||searchDoor.sex.length==0){
             alert("请选择性别");
             return;
-        }if(searchDoor.time==null||searchDoor.time==0){
+        }if(searchDoor.time==null||searchDoor.time.length==0){
             alert("请输入时间");
             return;
-        }if(searchDoor.company==null||searchDoor.company==0){
+        }if(searchDoor.company==null||searchDoor.company.length==0){
             alert("请输入访客单位");
             return;
-        }if(searchDoor.deptcode==null||searchDoor.deptcode==0){
+        }if(searchDoor.deptcode==null||searchDoor.deptcode.length==0){
             alert("请选择受访者部门");
             return;
-        }if(searchDoor.custid==null||searchDoor.custid==0){
+        }if(searchDoor.custid==null||searchDoor.custid.length==0){
             alert("请选择受访者姓名");
             return;
         }
