大理访客登记h5待测试
diff --git a/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java b/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java
index 6211967..d1bc2df 100644
--- a/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java
+++ b/src/main/java/com/supwisdom/dlpay/api/controller/DoorApiAction.java
@@ -6,7 +6,9 @@
 import com.supwisdom.dlpay.framework.data.SystemDateTime;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
 import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.HmacUtil;
 import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
 import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
 import com.supwisdom.dlpay.system.domain.TDept;
 import com.supwisdom.dlpay.system.service.SystemService;
@@ -93,6 +95,26 @@
   @ResponseBody
   public BaseResp visitorcheck(@RequestBody VisitorCheckBean postData) {
     BaseResp resp = new BaseResp();
+    Map<String,String> datamap=new HashMap<>();
+    datamap.put("visitorname",postData.getVisitorname());
+    datamap.put("idno",postData.getIdno());
+    datamap.put("phone",postData.getPhone());
+    datamap.put("time",postData.getPhone());
+    datamap.put("sex",postData.getSex());
+    datamap.put("deptcode",postData.getDeptcode());
+    datamap.put("custid",postData.getCustid());
+    datamap.put("company",postData.getCompany());
+    datamap.put("remarks",postData.getRemarks());
+    Map<String, String> paraFilter = HmacUtil.paraFilter(datamap);
+    String linkString = StringUtil.createLinkString(paraFilter);
+    String hmacsha1 = HmacUtil.HMACSHA1(linkString, "adc4ac6822fd462780f878b86cb94688");
+
+      if(postData.getSign()==null||!postData.getSign().toLowerCase().equals(hmacsha1.toLowerCase())){
+        resp.setRetcode("99");
+        resp.setRetmsg("校验失败");
+        return resp;
+      }
+
 
     SystemDateTime dt = systemUtilService.getSysdatetime();
     try{
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 887a8f1..cbc0a82 100644
--- a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
+++ b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
@@ -3,8 +3,12 @@
 import com.supwisdom.dlpay.app.domain.VisitorConfig;

 import com.supwisdom.dlpay.app.domain.WechatResp;

 import com.supwisdom.dlpay.app.service.AppService;

+import com.supwisdom.dlpay.doorlist.service.DoorlistMgrService;

 import com.supwisdom.dlpay.framework.util.DateUtil;

 import com.supwisdom.dlpay.framework.util.StringUtil;

+import com.supwisdom.dlpay.ncmgr.domain.TNcAllottime;

+import com.supwisdom.dlpay.ncmgr.domain.TNcAllottimeId;

+import com.supwisdom.dlpay.ncmgr.domain.TNcCardlist;

 import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;

 import com.supwisdom.dlpay.ncmgr.service.NcService;

 import com.supwisdom.dlpay.util.RedisUtil;

@@ -25,10 +29,7 @@
 import java.security.KeyPair;

 import java.security.PrivateKey;

 import java.security.PublicKey;

-import java.util.Arrays;

-import java.util.HashMap;

-import java.util.List;

-import java.util.Map;

+import java.util.*;

 

 @Controller

 @RequestMapping("/app")

@@ -42,11 +43,14 @@
     @Autowired

     private VisitorConfig visitorConfig;

     @Autowired

+    DoorlistMgrService doorlistMgrService;

+    @Autowired

     private VisitormanageService visitormanageService;

     private String wechatURL, redirect, appid, appsecret;

 

-    private final String privatekeystring="MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK9Zcfjepn4EJvCIvEa28UY6/PgZtyO1aRv9SXJmk3X9p4etO2MpWJUL6KLd6ZAIXuKn+qmejnrg3NiWpewvGqLOuz6x0PjA21AQlc/Gf+bVkRZfH8so/om6dv0w6KwDMuwZoXtVToM81Z1gNLdfVNBskOj7c1sEpNWOUOn6qY5DAgMBAAECgYEApJdEz+HOTcL/+g+fCpF18AI2qXsZ2L7Tpp4dbvCxwbMSqdwFPpL0vxKqjxXVwojY58/dDZHzE4w2QGdH32ZnjJKIfE5Li9xjPyS9V6fHe2Lttocns1QaFhMLzHA9tgnC+HK5bP9bAyd4SCsXkUIQDMf824ytkAPgxooYp0lF+aECQQDr+r7Gfjf/FjelxndTyxCaFXSO/DbTPeabzw2RXx/SARqlttABMi45R/JxIpny/5OVlgu4NbmApfRxTv2qaAJ1AkEAvjne/XOR7ojwO9DomTIaHyWQ2NotMltnQXjHo5+PlxS+s8elpiR6bIagv8OCvbXObRqkwm3Eu5LWFOd7vqXG1wJAU47YGqT64wJU9ghOnIcc+9J5EWBRcX9LtwQcA8uxEsV9UAxpnuLL51CIknL0HE1PTvpwb+vmIZ2h7rVPsRVfOQJBAJeXwMfUSNCCGohgpGwpTD3UDwlxXSFLTA8V9GrFpoVsx8i3ap/rZBCGfSY05UTP1NCHshMrrOMaUjbYfnng3IMCQApnWtHEMlDH/PVr4Ig0Jvf6NZ2VUSzM1lgcbE6L2M8w3hNZKYtM8oC0/PEGfh53KG7E+HpQa1m/flimvSNIFGs=";

-    private final String pubkeystring="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvWXH43qZ+BCbwiLxGtvFGOvz4GbcjtWkb/UlyZpN1/aeHrTtjKViVC+ii3emQCF7ip/qpno564NzYlqXsLxqizrs+sdD4wNtQEJXPxn/m1ZEWXx/LKP6Junb9MOisAzLsGaF7VU6DPNWdYDS3X1TQbJDo+3NbBKTVjlDp+qmOQwIDAQAB";

+    private final String privatekeystring = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAK9Zcfjepn4EJvCIvEa28UY6/PgZtyO1aRv9SXJmk3X9p4etO2MpWJUL6KLd6ZAIXuKn+qmejnrg3NiWpewvGqLOuz6x0PjA21AQlc/Gf+bVkRZfH8so/om6dv0w6KwDMuwZoXtVToM81Z1gNLdfVNBskOj7c1sEpNWOUOn6qY5DAgMBAAECgYEApJdEz+HOTcL/+g+fCpF18AI2qXsZ2L7Tpp4dbvCxwbMSqdwFPpL0vxKqjxXVwojY58/dDZHzE4w2QGdH32ZnjJKIfE5Li9xjPyS9V6fHe2Lttocns1QaFhMLzHA9tgnC+HK5bP9bAyd4SCsXkUIQDMf824ytkAPgxooYp0lF+aECQQDr+r7Gfjf/FjelxndTyxCaFXSO/DbTPeabzw2RXx/SARqlttABMi45R/JxIpny/5OVlgu4NbmApfRxTv2qaAJ1AkEAvjne/XOR7ojwO9DomTIaHyWQ2NotMltnQXjHo5+PlxS+s8elpiR6bIagv8OCvbXObRqkwm3Eu5LWFOd7vqXG1wJAU47YGqT64wJU9ghOnIcc+9J5EWBRcX9LtwQcA8uxEsV9UAxpnuLL51CIknL0HE1PTvpwb+vmIZ2h7rVPsRVfOQJBAJeXwMfUSNCCGohgpGwpTD3UDwlxXSFLTA8V9GrFpoVsx8i3ap/rZBCGfSY05UTP1NCHshMrrOMaUjbYfnng3IMCQApnWtHEMlDH/PVr4Ig0Jvf6NZ2VUSzM1lgcbE6L2M8w3hNZKYtM8oC0/PEGfh53KG7E+HpQa1m/flimvSNIFGs=";

+    private final String pubkeystring = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvWXH43qZ+BCbwiLxGtvFGOvz4GbcjtWkb/UlyZpN1/aeHrTtjKViVC+ii3emQCF7ip/qpno564NzYlqXsLxqizrs+sdD4wNtQEJXPxn/m1ZEWXx/LKP6Junb9MOisAzLsGaF7VU6DPNWdYDS3X1TQbJDo+3NbBKTVjlDp+qmOQwIDAQAB";

+

     @RequestMapping("/appindex")

     public String impdevindex(@RequestParam(value = "userid") String userId, Model model) {

         model.addAttribute("userId", userId);

@@ -56,8 +60,9 @@
     @RequestMapping("/doorappindex")

     public String doorappindex(@RequestParam(value = "custid") String custid, Model model) {

         model.addAttribute("userId", custid);

-        return "apph5/doorappindex";

+        return "apph5/leavehistory";

     }

+

     @RequestMapping("/doorappvisitor")

     public String doorappvisitor(@RequestParam(value = "custid") String custid, Model model) {

 

@@ -134,8 +139,8 @@
 

     @RequestMapping("/appvisitor")

     public String appvisitor(Model model) {

-

-        return "apph5/applyforvisitor";

+        model.addAttribute("issuccess", true);

+        return "apph5/visitorresult";

     }

 

     @RequestMapping("/getqrcode")

@@ -200,6 +205,38 @@
     }

 

     @ResponseBody

+    @RequestMapping("/getleavehistory")

+    public Map getUserList(

+            HttpServletRequest request,

+            HttpServletResponse response,

+            @RequestParam(value = "rtype", required = false) String rtype,

+            @RequestParam(value = "custtype", required = false) String custtype,

+            @RequestParam(value = "status", required = false) String status,

+            @RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,

+            @RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize) {

+        Map map = new HashMap();

+        try {

+            EVisitorCheckDtl a = new EVisitorCheckDtl();

+            a.setStatus(1);

+            a.setTransdate("20200304");

+            a.setCustid("1");

+            a.setCompany("aaaaaa");

+            EVisitorCheckDtl b = new EVisitorCheckDtl();

+            b.setStatus(2);

+            b.setTransdate("20200306");

+            b.setCustid("ccc");

+            b.setCompany("bbbbbbbb");

+            List<EVisitorCheckDtl> list = new ArrayList<>();

+            list.add(a);

+            list.add(b);

+            map.put("list", list);

+        } catch (Exception e) {

+            e.printStackTrace();

+        }

+        return map;

+    }

+

+    @ResponseBody

     @RequestMapping(value = "/apply/apply", method = {RequestMethod.POST})

     public Map applyforvisitor(@RequestBody VisitorCheckBean postData) {

         Map map = new HashMap();

@@ -220,30 +257,70 @@
             eVisitorCheckDtl.setSex(postData.getSex());

             eVisitorCheckDtl.setTranstime(time.substring(8));

             String s = StringUtil.getRandomString(18);

-            s+=time;

+            s += time;

             eVisitorCheckDtl.setSign(s);

             eVisitorCheckDtl.setTotalcount(3);

             eVisitorCheckDtl.setUsecount(0);

-            eVisitorCheckDtl.setQrcodetime(time);

+            int timeint = Integer.parseInt(time);

+            String lasttime = "";

+            if (Integer.parseInt(time.substring(8)) < 210000) {

+                timeint += 30000;

+                lasttime = time.substring(0, 8) + timeint;

+            } else {

+                lasttime = time.substring(0, 8) + "235959";

+            }

+            eVisitorCheckDtl.setQrcodetime(lasttime);

             eVisitorCheckDtl.setIsqrcode("1");

-            String sign="SIGNFORVISITOR"+s;

+            String sign = "SIGNFORVISITOR" + s;

             eVisitorCheckDtl.setQrcode(sign);

 

             boolean b = visitormanageService.saveVisitorCheck(eVisitorCheckDtl);

+            List<TNcCardlist> tNcCardlists = new ArrayList<TNcCardlist>();

+            if (b) {

+                //long listid = webInterfaceService.getNextSeqTDoorcardlst();

+                //从缓存读取列表值并加1

+                long listid = RedisUtil.incr("seq_cardlist");

+                TNcCardlist tmpCardlist = new TNcCardlist();

+                tmpCardlist.setListid(listid + "");

+                tmpCardlist.setCustid(sign);

+                tmpCardlist.setCustname(postData.getVisitorname());

+                tmpCardlist.setCardno("");

+                tmpCardlist.setBankcardno("");

+                tmpCardlist.setCardphyid("");

+                tmpCardlist.setClosedate(lasttime);

+                tmpCardlist.setDeviceid(3);

+                tmpCardlist.setOperflag("A");

+                tmpCardlist.setRectime(time);

+                tmpCardlist.setSynctime("");

+                tmpCardlist.setSyncflag("N");

+                tmpCardlist.setRtnflag("Y");

+                tmpCardlist.setRtntime(time);

+                tmpCardlist.setVersion(1);

+                tmpCardlist.setOperid("");

+                tmpCardlist.setReason("内部人员访客app申请");

 

+                tNcCardlists.add(tmpCardlist);

 

-            if(b){

+                //webInterfaceService.saveTDoorcardlst(tDoorcardlst);

+

+                doorlistMgrService.batchSaveCardList(tNcCardlists);

+                RedisUtil.incr("zcard_max_version");

+                tNcCardlists.clear();

+

+            }

+

+            if (b) {

                 EVisitorCheckDtl checkBySign = visitormanageService.getVisitorCheckBySign(sign);

                 int id = checkBySign.getId();

                 map.put("retcode", "0");

                 map.put("retmsg", "保存成功");

                 map.put("visitorid", id);

-            }else {

+            } else {

                 map.put("retcode", "99");

                 map.put("retmsg", "保存失败");

 

             }

-        }catch (Exception e){

+        } catch (Exception e) {

             e.printStackTrace();

             map.put("retcode", "99");

             map.put("retmsg", "系统错误!");

@@ -256,7 +333,7 @@
     public String getapplycode(@RequestParam(value = "visitorid") int visitorid, Model model) {

         String qrcode = "";

         EVisitorCheckDtl visitorCheckById = visitormanageService.getVisitorCheckById(visitorid);

-        if(visitorCheckById!=null){

+        if (visitorCheckById != null) {

             qrcode = visitorCheckById.getQrcode();

         }

         //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";

@@ -265,6 +342,7 @@
         model.addAttribute("isapply", 1);

         return "apph5/visitorcode";

     }

+

     //根据设备名称模糊查询

     @ResponseBody

     @RequestMapping("/searchByDevName")

diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
index 166106a..18415fd 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
@@ -97,7 +97,7 @@
     return false;
   }
 
- /* public static void main(String[] args) {
+  public static void main(String[] args) {
     String refno = DateUtil.getNow();
     Map<String, String> mapValue = new HashMap<String, String>();
     mapValue.put("tradeaccount", "10000097");
@@ -109,8 +109,10 @@
     mapValue.put("shopid", "68512084");
     String signstr = StringUtil.createLinkString(HmacUtil.paraFilter(mapValue));
     String sign = HmacUtil.HMACSHA1(signstr, "adc4ac6822fd462780f878b86cb94688");
+    System.out.println(signstr);
+    System.out.println(sign);
     System.out.println("{\"tradeaccount\":\"10000097\",\"tradename\":\"在线点餐\",\"tradeamount\":\"1\"," +
         "\"paidamount\": \"1\",\"outtradeno\":\"" + refno + "\",\"yktshopid\": \"2\",\"shopid\":\"68512084\",\"sign\": \"" + sign + "\"}");
-  }*/
+  }
 
 }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
index 2b465fc..88c2247 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
@@ -17,7 +17,7 @@
     private String custid;
     private String company;
     private String remarks;
-
+    private String sign;
 
     public String getVisitorname() {
         return visitorname;
@@ -91,5 +91,11 @@
         this.remarks = remarks;
     }
 
+    public String getSign() {
+        return sign;
+    }
 
+    public void setSign(String sign) {
+        this.sign = sign;
+    }
 }
diff --git a/src/main/resources/static/res/assets/images/visitorfail.jpg b/src/main/resources/static/res/assets/images/visitorfail.jpg
new file mode 100644
index 0000000..0341e25
--- /dev/null
+++ b/src/main/resources/static/res/assets/images/visitorfail.jpg
Binary files differ
diff --git a/src/main/resources/static/res/assets/images/visitorsuccess.jpg b/src/main/resources/static/res/assets/images/visitorsuccess.jpg
new file mode 100644
index 0000000..151584c
--- /dev/null
+++ b/src/main/resources/static/res/assets/images/visitorsuccess.jpg
Binary files differ
diff --git a/src/main/resources/static/res/images/visitorsuccess.jpg b/src/main/resources/static/res/images/visitorsuccess.jpg
new file mode 100644
index 0000000..151584c
--- /dev/null
+++ b/src/main/resources/static/res/images/visitorsuccess.jpg
Binary files differ
diff --git a/src/main/resources/templates/apph5/history.html b/src/main/resources/templates/apph5/history.html
index 053c769..b1a8646 100644
--- a/src/main/resources/templates/apph5/history.html
+++ b/src/main/resources/templates/apph5/history.html
@@ -1,5 +1,6 @@
 <!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"
+      xmlns:c="http://www.w3.org/1999/XSL/Transform">
 
 <head>
     <title>首页</title>
@@ -28,9 +29,7 @@
 </head>
 
 <script type="text/javascript">
-    setInterval(function () {
-        window.location.reload();
-    }, 60000);
+
 
     $(function () {
 
@@ -67,25 +66,70 @@
 </html>
 <body class="page" style="text-align: center">
 <div class="weui-cells">
-    <a class="weui-cell weui-cell_access" href="javascript:;">
-        <div class="weui-cell__bd">
-            <p>浴室</p>
-        </div>
-        <div class="weui-cell__ft">
-            <input class="weui-input" id="area" type="text" value="" placeholder="请选择">
-        </div>
-    </a>
-    <a class="weui-cell weui-cell_access" href="javascript:;">
-        <div class="weui-cell__bd">
-            <p>时间</p>
-        </div>
-        <div class="weui-cell__ft">
-            <input class="weui-input" id="ordertime" type="text" value="" placeholder="请选择">
-            <input id="endtime" type="hidden">
-        </div>
-    </a>
+    <div class="weui-panel weui-panel_access">
+        <div id="top">
+            <c:if test="${dtllist!=null}">
+                <c:forEach items="${dtllist}" var="dtl">
+                    <div class="weui-panel__bd">
+                        <div class="weui-media-box weui-media-box_text">
+                            <h4 class="weui-media-box__title" style="display: flex">
+                                <div style="flex: 1">${dtl.areaname}</div>
+                                <div>${dtl.ordercode}</div>
+                            </h4>
+                            <p class="weui-media-box__desc">
+                            <div class="weui-cell__bd">
+                                <span style="font-size:14px;color:#999; "></span>
+                            </div>
+                            <div style="display: flex;">
+                                <fmt:parseDate value="${dtl.orderdate}" var="orderdate" pattern="yyyyMMdd"/>
+                                <fmt:parseDate value="${dtl.ordertime}" var="ordertime" pattern="HHmmss"/>
+                                <div style="font-size:14px;color:#999;flex: 1"><fmt:formatDate value="${orderdate}"
+                                                                                               pattern="yyyy/MM/dd"/>
+                                    预约时间<fmt:formatDate value="${ordertime}" pattern="HH:mm:ss"/></div>
+                                <div style="font-size:14px;color:#999;margin-left:10px">
+                                    <c:if test="${dtl.status eq 1}">
+                                        已预约
+                                    </c:if>
+                                    <c:if test="${dtl.status eq 2}">
+                                        取消
+                                    </c:if>
+                                    <c:if test="${dtl.status eq 3}">
+                                        已使用
+                                    </c:if>
+                                    <c:if test="${dtl.status eq 4}">
+                                        已到期
+                                    </c:if>
+                                </div>
+                                <%--<div><c:if test="${dtl.status==1&&dtl.tradedirect==1}"> <span class="label label-warning"
+                                                                                                  style="color: #f0ad4e">等待付款</span></c:if>
+                                <c:if test="${dtl.status==1&&dtl.tradedirect==2}"> <span class="label label-warning"
+                                                                                         style="color: #f0ad4e">等待对方付款</span></c:if>
+                                <c:if test="${dtl.status==2}"><span class="label label-success"
+                                                                    style="color: #5cb85c">交易成功</span></c:if>
+                                <c:if test="${dtl.status==3}"><span class="label label-default"
+                                                                    style="color: #777">交易取消</span></c:if>
+                                <c:if test="${dtl.status==4}"><span class="label label-danger"
+                                                                    style="color: #d9534f">交易终止</span></c:if>
+                                <c:if test="${dtl.status==5}"><span class="label label-danger"
+                                                                    style="color: #d9534f">交易失败</span></c:if>
+                            </div>--%>
+                            </div>
+                            </p>
+                        </div>
+                    </div>
+                </c:forEach>
+            </c:if>
 
-    <input type="hidden" id="ocnt">
+        </div>
+        <c:if test="${pageno lt totalpage}">
+            <div class="weui-panel__ft" id="loadmore">
+                <a href="javascript:loadNext();" class="weui-cell weui-cell_access weui-cell_link">
+                    <div class="weui-cell__bd" style="text-align: center;color: #5bc0de;">加载更多</div>
+                </a>
+            </div>
+        </c:if>
+        <input type="hidden" id="pageno" value="${pageno}">
+    </div>
 </div>
 
 </body>
diff --git a/src/main/resources/templates/apph5/leavehistory.html b/src/main/resources/templates/apph5/leavehistory.html
index d1beb9b..49c9efc 100644
--- a/src/main/resources/templates/apph5/leavehistory.html
+++ b/src/main/resources/templates/apph5/leavehistory.html
@@ -12,7 +12,8 @@
 
     <link rel="stylesheet" href="/static/res/assets/plugins/element-ui/theme-default/index.css"
           th:href="@{/static/res/assets/plugins/element-ui/theme-default/index.css}"/>
-
+    <link rel="stylesheet" href="/static/res/assets/css/wxpage.css"
+          th:href="@{/static/res/assets/css/wxpage.css}"/>
     <!--<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>-->
     <script type="text/javascript" th:src="@{/static/res/assets/plugins/jquery/jquery.min.js}"></script>
     <!--<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>-->
@@ -27,102 +28,297 @@
 <body>
 
 <div id="app">
-    <div class="block" style="background:#ffffff;">
-        <br>
-        <span class="demonstration" style="text-align: center;display:block; font-size: 20px;color: #9932CC">请假申请</span><br><br>
-        <!--动态将图片轮播图的容器高度设置成与图片一致-->
-        <div class="el-message-box__input">
-            <el-row>
-                <table>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter">姓名</el-label>
-                            <input type="hidden" class="el-input" id="custid"></td>
-                    </tr>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter"></el-label>
-                            <input type="text" class="el-input" id="idno">
-                        </td>
-
-                    </tr>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter">访问人性别</el-label>
-                            <input type="text" class="el-input" id="sex">
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter">访问人联系方式</el-label>
-                            <input type="text" class="el-input" id="phone">
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter">访问人单位</el-label>
-                            <input type="text" class="el-input" id="company">
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter">受访人姓名</el-label>
-                            <input type="text" class="el-input" id="custid">
-                        </td>
-                    </tr>
-                    <tr>
-                        <td>
-                            <el-label class="label-fade-enter">受访人部门</el-label>
-                            <input type="text" class="el-input" id="deptcode"></td>
-                    </tr>
-                    <tr>
-                        <td><el-label class="label-fade-enter">备注</el-label>
-                            <input type="text" class="el-input" id="remarks"></td>
-                    </tr>
-                </table>
-            </el-row>
+    <el-button type="primary" @click="showdiv()">筛 选</el-button>
 
 
+    <div class="row">
+        <div class="col-md-12" style="padding-left: 0px;padding-right: 0px">
+            <div class="box box-primary" style="margin-bottom: 15px">
+                <div class="box-body box-profile">
+                    <template>
+                        <el-table
+                                ref="singleTable"
+                                :data="tableData"
+                                highlight-current-row
+                                @current-change="currRowChange"
+                                stripe
+                                border>
+                            <el-table-column
+                                    prop="custid"
+                                    align="center"
+                                    v-show="false">
+                                <template scope="scope" @click="editDtl(scope.row)">
+                                    <div class="weui-panel__bd">
+                                        <div class="weui-media-box weui-media-box_text">
+                                            <h4 class="weui-media-box__title" style="display: flex">
+                                                <div style="flex: 1">{{scope.row.custid}}</div>
+                                                <div>{{scope.row.company}}</div>
+                                            </h4>
+                                            <p class="weui-media-box__desc">
+                                            <div class="weui-cell__bd">
+                                                <span style="font-size:14px;color:#999; "></span>
+                                            </div>
+                                            <div style="display: flex;">
 
+                                                <div style="font-size:14px;color:#999;flex: 1">
+                                                    请假时间{{scope.row.transdate}}--{{scope.row.transdate}}
+                                                </div>
+                                                <div style="font-size:14px;color:#999;margin-left:10px">
+                                                    <span v-if="scope.row.status== '1'"><el-tag
+                                                            type="success">已批准</el-tag></span>
+                                                    <span v-if="scope.row.status== '2'"><el-tag
+                                                            type="warning">未批准</el-tag></span>
+                                                </div>
+
+                                            </div>
+                                            </p>
+                                        </div>
+                                    </div>
+
+                                </template>
+                            </el-table-column>
+
+                            <!--<el-table-column
+                                    prop="custname"
+                                    label="名称"
+                                    align="center">
+                            </el-table-column>
+                            <el-table-column
+                                    prop="remark"
+                                    label="描述"
+                                    align="center">
+                            </el-table-column>
+                            <el-table-column
+                                    prop="startdate"
+                                    label="开始日期"
+
+                                    align="center">
+                            </el-table-column>
+                            <el-table-column
+                                    prop="enddate"
+                                    label="结束日期"
+
+                                    align="center">
+                            </el-table-column>
+
+<el-table-column
+                                    prop="status"
+                                    label="状态"
+
+                                    align="center">
+                                <template scope="scope">
+                                    <span v-if="scope.row.status=== '1'"><el-tag
+                                            type="success">已批准</el-tag></span>
+                                    <span v-if="scope.row.status=== '2'"><el-tag
+                                            type="warning">未批准</el-tag></span>
+                                </template>
+
+                            </el-table-column>
+
+                            <el-table-column
+                                    label="操作"
+                                    fixed="right"
+                                    align="center"
+                            >
+                                <template scope="scope">
+                                    <button v-if="scope.row.status=== '2'" type="button" class="btn btn-danger btn-xs"
+                                            title="批准"
+                                            @click="delUser(scope.row.ids)">批准
+                                    </button>
+                                </template>
+                            </el-table-column>-->
+                        </el-table>
+                        <div class="clearfix"></div>
+
+                    </template>
+                </div>
+            </div>
         </div>
-
-        <el-button type="success" @click="openDoor"
-                   style=" display:block;margin:0 auto;width:100px;height:100px;border-radius:50px;border:solid rgb(100,100,100) 0px; font-size: 20px">
-            登记
-        </el-button>
     </div>
+    <el-dialog :title="updatetitle2" :visible.sync="dialogFormVisible2" size="thin"
+               :modal-append-to-body='false' @close="closeDialog('historyform')">
+        <el-form ref="historyform" class="el-form-item el-form-item--mini" :model="historyform" size="mini"
+                 :rules="rules" label-width="36%">
+            <el-form-item label="姓名:" prop="custid">
+                <el-col :span="18">
+                    <el-input v-model="historyform.custid" readonly style="width: 250px;" maxlength="20">
+                    </el-input>
+                </el-col>
+            </el-form-item>
+            <el-form-item label="状态:" prop="status">
+                <el-col :span="18">
+                    <el-select v-model="historyform.state" style="width: 250px;" clearable filterable placeholder="请选择">
+                        <el-option
+                                v-for="state in statuslist"
+                                :key="state.value"
+                                :label="state.label"
+                                :value="state.value">
+                        </el-option>
+                    </el-select>
+                </el-col>
+            </el-form-item>
+            <el-form-item label="备注:" prop="remark">
+                <el-col :span="18">
+                    <el-input type="textarea" v-model="historyform.remark" placeholder="填写备注" style="width: 250px;">
+                    </el-input>
+                </el-col>
+            </el-form-item>
 
+
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+            <el-button @click="resetForm('historyform') ">取 消</el-button>
+            <el-button type="primary" @click="saveState('historyform')">确 定</el-button>
+        </div>
+    </el-dialog>
+    <el-dialog :title="updatetitle" :visible.sync="dialogFormVisible"  size="tiny" :modal-append-to-body='false'
+               @close="closeDialog('tempform')">
+        <el-form size="mini" ref="tempform" :model="tempform" data-parsley-validate
+                 class="el-form-item el-form-item--mini" >
+            <el-form-item label="人员类型:" prop="custtype">
+                <div class="el-col el-col-18">
+                    <div class="el-input" style="width: 187px;">
+                        <el-select v-model="tempform.custtype" id="custtype">
+                            <el-option
+                                    v-for="status in custtypelist"
+                                    :key="status.value"
+                                    :label="status.label"
+                                    :value="status.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </div>
+            </el-form-item>
+            <el-form-item label="请假类型:" prop="rtype">
+                <div class="el-col el-col-18">
+                    <div class="el-input" style="width: 187px;">
+                        <el-select v-model="tempform.rtype" id="rtype">
+                            <el-option
+                                    v-for="status in rtypelist"
+                                    :key="status.value"
+                                    :label="status.label"
+                                    :value="status.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </div>
+            </el-form-item>
+            <el-form-item label="状态:" prop="status">
+                <div class="el-col el-col-18">
+                    <div class="el-input" style="width: 187px;">
+                        <el-select v-model="tempform.status" id="status">
+                            <el-option
+                                    v-for="status in statuslist"
+                                    :key="status.value"
+                                    :label="status.label"
+                                    :value="status.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </div>
+            </el-form-item>
+
+        </el-form>
+        <div slot="footer" style="text-align:center; ">
+            <el-button type="primary" @click="saveTemp('tempform')">查 询</el-button>
+            <el-button type="primary" @click="closediv()">取 消</el-button>
+        </div>
+    </el-dialog>
 </div>
 
+
+
 </body>
 
 <script>
+    var validatePhone = function (rule, value, callback) {
+        if (value == "") {
+            callback(new Error("请输入手机号"));
+        } else if (!isCellPhone(value)) {//引入methods中封装的检查手机格式的方法
+            callback(new Error("请输入正确的手机号!"));
+        } else {
+            callback();
+        }
+    }
+
     var app_vue = new Vue({
         el: '#app',
         data: {
-            devNameList: [],
-            devIdList: [],
-            selectDevName: '',
-            selectDevId: '',
-            // 图片父容器高度
+            tableData: [],
+            confName: '1234',
+            currPage: 1,
+            pageSize: 20,
+            totSize: 0,
+            currentRow: null,
+            tempform: {
+                rtype: '',
+                custtype: '',
+                status: '',
+            },
+            historyform: {
+                custid: '',
+                custname: '',
+                startdate: '',
+                enddate: '',
+                remark: '',
+                rtype: '',
+                status: '',
+                custtype: '',
+            },
+            sexlist: [],
+            rtypelist: [],
+            custtypelist: [],
+            statuslist: [],
             bannerHeight: 1000,
-            // 浏览器宽度
             screenWidth: 0,
             userId: '',
-            searchDoorForm: {
-                visitorname: '',
-                idno: '',
-                time: '',
-                phone: '',
-                sex: '',
-                custid: '',
-                deptcode: '',
-                company: '',
-                remarks: '',
+            dialogFormVisible: false,
+            dialogFormVisible2: false,
+            dlgAllotDevVisible: false,
+            updatetitle: '筛选',
+            updatetitle2: '详情',
+            rules: {
+                /*visitorname: [
+                    {required: true, message: '请输入访客姓名', trigger: 'blur'},
+                ],
+                idno: [
+                    {required: true, message: '请输入访客身份证号', trigger: 'blur'}
+                ],
+                sex: [
+                    {required: true, message: '请输入访客性别', trigger: 'blur'}
+                ],
+                remarks: [
+                    {required: true, message: '请输入备注', trigger: 'blur'}
+                ],
+                phone: [
+                    {required: true, validator: validatePhone, trigger: 'blur'}
+                ]*/
             },
         },
 
         methods: {
+            saveTemp: function (formName) {
+
+                var _that = this;
+                this.pagesize = 10;
+                this.currPage = 1;
+                commonQuery(this, this.tempform.rtype, this.tempform.custtype, this.tempform.status, this.currPage, this.pageSize);
+            },
+            showdiv: function (row) {
+                this.dialogFormVisible = true;
+                this.updatetitle = "筛选"
+            },
+            editDtl: function (row) {
+                dtl_getFillData(this, row);
+                this.dialogFormVisible2 = true;
+                this.updatetitle2 = "详情"
+            },
+            closediv: function () {
+                closesearchform();
+            },
+            currRowChange: function (val) {
+                this.currentRow = val;
+            },
             indexChange: function (pre, next) {
                 var _self = this;
                 var devIdListTmp = _self.devIdList;
@@ -130,9 +326,6 @@
                 // console.log(_self.selectDevId)
 
             },
-            openDoor: function () {
-                app_openDoor();
-            },
             setSize: function () {
                 // 通过浏览器宽度(图片宽度)计算高度
                 this.bannerHeight = this.screenWidth;
@@ -143,110 +336,94 @@
             // 首次加载时,需要调用一次
             _self.screenWidth = window.innerWidth;
             _self.setSize();
+            var confid = '[[${confid}]]';
+            var deptcode = '[[${deptcode}]]';
+            console.log(confid);
+            _self.tempform.custid = confid;
+            var sexl = [];
+            sexl.push({
+                value: '',
+                label: '请选择'
+            });
+            sexl.push({
+                value: '1',
+                label: '男'
+            });
+            sexl.push({
+                value: '2',
+                label: '女'
+            });
+            _self.sexlist = sexl;
 
-            var userId = '[[${userId}]]';
-            _self.userId = userId;
-
-            $.ajax({
-                type: "get",
-                dataType: "json",
-                url: encodeURI("[[@{/app/getdeptlist}]]"),
-                success: function (ret) {
-                    var dlist = [];
-                    dlist.push({
-                        value: '',
-                        label: '请选择'
-                    });
-                    var rB = ret.deptlist;
-                    if (rB != null) {
-                        for (var j = 0; j < rB.length; j++) {
-                            dlist.push({
-                                value: rB[j]["deptcode"],
-                                label: rB[j]["deptname"]
-                            });
-                        }
-                    }
-
-                    searchDoorlist_vue.deptlist = dlist;
-                    var sexl = [];
-                    sexl.push({
-                        value: '',
-                        label: '请选择'
-                    });
-                    sexl.push({
-                        value: '1',
-                        label: '男'
-                    });
-                    sexl.push({
-                        value: '2',
-                        label: '女'
-                    });
-                    searchDoorlist_vue.sexlist = sexl;
-                }
-            })
         }
-
     })
 
-    function app_openDoor() {
-        var visitorname=$("#visitorname").val();
-        var idno=$("#idno").val();
-        var phone=$("#phone").val();
-        var company=$("#company").val();
-        var sex=$("#sex").val();
-        var deptcode=$("#deptcode").val();
-        var custid=$("#custid").val();
-        var remarks=$("#remarks").val();
-        if(visitorname==null||visitorname.length==0){
-            alert("请输入访客姓名");
-            return;
-        }if(idno==null||idno.length==0){
-            alert("请输入访客身份证号");
-            return;
-        }if(phone==null||phone.length<=11){
-            alert("请输入访客联系方式");
-            return;
-        }if(sex==null||sex.length==0){
-            alert("请选择性别");
-            return;
-        }if(time==null||time.length==0){
-            alert("请输入时间");
-            return;
-        }if(company==null||company.length==0){
-            alert("请输入访客单位");
-            return;
-        }if(deptcode==null||deptcode.length==0){
-            alert("请选择受访者部门");
-            return;
-        }if(custid==null||custid.length==0){
-            alert("请选择受访者姓名");
-            return;
-        }
-        layer.confirm('你确定要登记吗?', {icon: 3, title: '请确认', offset: '30%'}, function (index) {
-
-            $.ajax({
-                type: "get",
-                dataType: "json",
-                url:encodeURI("[[@{/app/apply?visitorname=}]]" +visitorname+"&idno="+idno+"&phone="+phone+"&company="+company+"&sex="+sex+"&deptcode="+deptcode+"&custid="+custid+"&remarks="+remarks),
-                success:function (ret) {
-
-                    if (ret.message != "") {
-                        layer.msg(ret.message, {icon: 2, time: 2000});
-                    } else {
-                        layer.msg('登记成功', {icon: 1, time: 2000});
-                    }
-                }
-            })
-        });
-
-    }
-
     // 窗口大小发生改变时,调用一次
     window.onresize = function () {
         app_vue.screenWidth = window.innerWidth;
         app_vue.setSize();
     }
 
+    function showsearchform() {
+        $("#sear").show();
+    }
+
+    function closesearchform() {
+        $("#sear").hide();
+    }
+
+    function dtl_getFillData(_self, row) {
+        _self.historyform.custid = row.custid;
+        _self.historyform.status = row.status;
+        _self.historyform.remark = row.remark;
+    }
+
+    function saveTempCustomer(_that, formdata, formName) {
+        var token = $("meta[name='_csrf_token']").attr("value");
+        $.ajax({
+            type: "post",
+            url: encodeURI("[[@{/app/apply/apply}]]"),
+            dataType: "json",
+            contentType: "application/json",
+            headers: {
+                'Accept': 'application/json',
+                'Content-Type': 'application/json',
+                'X-CSRF-TOKEN': token,
+            },
+            data: JSON.stringify(formdata),
+            success: function (data) {
+
+                if (data.retcode != "0") {
+                    layer.msg(data.retmsg, {icon: 2, time: 2000});
+                    window.location = "[[@{/app/getapplyqrcode?visitorid=}]]" + data.visitorid;
+                } else {
+                    layer.msg('登记成功!', {icon: 1, time: 1000});
+                }
+            }
+        });
+    }
+
+    function commonQuery(_self, rtype, custtype, status, pageno, pagesize) {
+        $.ajax({
+            type: "get",
+            dataType: "json",
+            url: "[[@{/app/getleavehistory?rtype=}]]" + rtype + "&custtype=" + custtype + "&status=" + status + "&pageNo=" + pageno + "&pageSize=" + pagesize,
+            success: function (info) {
+                console.log(info)
+
+                _self.tableData = info.list;
+            }
+        })
+    }
+
+    function isCellPhone(val) {
+        if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {
+            return false;
+        } else {
+            return true;
+        }
+    }
+
 
 </script>
 
diff --git a/src/main/resources/templates/apph5/visitorresult.html b/src/main/resources/templates/apph5/visitorresult.html
index 221e492..ce81044 100644
--- a/src/main/resources/templates/apph5/visitorresult.html
+++ b/src/main/resources/templates/apph5/visitorresult.html
@@ -20,13 +20,15 @@
     <!--<script src="https://unpkg.com/vue/dist/vue.js"></script>
     <script src="https://unpkg.com/mint-ui/lib/index.js"></script>-->
 </head>
-<body>
-<div id="app" >
-    <div class="page-title" style="text-align:center; font-size: 24px;color: #FF8247">登记结果</div><br>
+<body th:background="@{/static/res/images/visitorsuccess.jpg}">
+<div id="app"  >
+ <!--   <div class="page-title" style="text-align:center; font-size: 24px;color: #FF8247">登记结果</div><br>
     <div class="mintui-success" id="msg"></div>
     <input type="hidden" id="issuccess" th:value="${issuccess}">
-
+-->
 </div>
+
+<!--<img th:src="@{/static/res/images/visitorsuccess.jpg}"/>-->
 </body>
 
 <script>