大理访客登记微信扫码及管理端界面以及身份证扫码登记界面待测试
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/controller/VisitorManageController.java b/src/main/java/com/supwisdom/dlpay/visitormanage/controller/VisitorManageController.java
index 2ed3328..7f9fc76 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/controller/VisitorManageController.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/controller/VisitorManageController.java
@@ -61,6 +61,18 @@
 
         return "visitormanage/customer/index";
     }
+    @RequestMapping("/showchecklist")
+    public String showchecklist(ModelMap model) {
+        List<TCustType> lst = systemService.findAllCusttype();
+        List<TDept> dept=systemService.findAllDept();
+        Gson gson = new Gson();
+        String deptString = gson.toJson(dept);
+        model.put("deptlist", deptString);
+        String typeString = gson.toJson(lst);
+        model.put("custtypelist", typeString);
+
+        return "visitormanage/customer/visitorchecklist";
+    }
     @RequestMapping("/checkin")
     public String visitorcheck(ModelMap model) {
         List<TCustType> lst = systemService.findAllCusttype();
@@ -106,6 +118,38 @@
             return new PageResult<>(99, "系统查询错误");
         }
     }
+    @RequestMapping("/checklist")
+    @ResponseBody
+    public PageResult<VisitorShowBean> getCheckList(@RequestParam("page") Integer pageNo,
+                                               @RequestParam("limit") Integer pageSize,
+                                               @RequestParam(value = "searchkey", required = false) String searchKey,
+                                               @RequestParam(value = "sex", required = false) String sex,
+                                               @RequestParam(value = "startdate", required = false) String startdate,
+                                               @RequestParam(value = "enddate", required = false) String enddate
+    ) {
+        try {
+            if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+            if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+            VisitorCheckSearchBean searchBean = new VisitorCheckSearchBean();
+            if(startdate!=null){
+                startdate=startdate.replace("-","");
+            }if(enddate!=null){
+                enddate=enddate.replace("-","");
+            }
+            searchBean.setPageNo(pageNo);
+            searchBean.setVisitorname(searchKey);
+            searchBean.setSex(sex);
+            searchBean.setStartdate(startdate);
+            searchBean.setEnddate(enddate);
+            searchBean.setPageSize(pageSize);
+            PageResult<VisitorShowBean> bean= visitormanageService.getCheckInfoPage(searchBean);
+
+            return bean;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new PageResult<>(99, "系统查询错误");
+        }
+    }
 
 
 
@@ -149,6 +193,7 @@
     public Map saveVisitorCheck (@RequestBody VisitorCheckBean postData){
         Map map = new HashMap();
         try{
+            String time = DateUtil.getNow("yyyyMMddhhmmss");
             EVisitorCheckDtl eVisitorCheckDtl=new EVisitorCheckDtl();
             eVisitorCheckDtl.setCompany(postData.getCompany());
             eVisitorCheckDtl.setCustid(postData.getCustid());
@@ -156,7 +201,11 @@
             eVisitorCheckDtl.setPhone(postData.getPhone());
             eVisitorCheckDtl.setRemarks(postData.getRemarks());
             eVisitorCheckDtl.setVisitorname(postData.getVisitorname());
-            eVisitorCheckDtl.setTime(DateUtil.getNow("yyyyMMddhhmmss"));
+            eVisitorCheckDtl.setTransdate(time.substring(0,8));
+            eVisitorCheckDtl.setStatus(1);
+            eVisitorCheckDtl.setIdno(postData.getIdno());
+            eVisitorCheckDtl.setSex(postData.getSex());
+            eVisitorCheckDtl.setTranstime(time.substring(8));
 
             boolean b = visitormanageService.saveVisitorCheck(eVisitorCheckDtl);
             if(b){
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/dao/VisitorDao.java b/src/main/java/com/supwisdom/dlpay/visitormanage/dao/VisitorDao.java
index 920b9f5..7e6f387 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/dao/VisitorDao.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/dao/VisitorDao.java
@@ -5,9 +5,7 @@
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.mainservice.domain.TCustomer;
 import com.supwisdom.dlpay.system.domain.TRegion;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorCheckDtl;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorDtl;
-import com.supwisdom.dlpay.visitormanage.domain.VisitorSearchBean;
+import com.supwisdom.dlpay.visitormanage.domain.*;
 
 import java.util.List;
 
@@ -19,5 +17,6 @@
 
 
     public PageResult<EVisitorDtl> getVisitorInfoPage(VisitorSearchBean param);
+    public PageResult<VisitorShowBean> getCheckInfoPage(VisitorCheckSearchBean param);
     public boolean saveVisitorCheck(EVisitorCheckDtl bean);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/dao/impl/VisitorDaoImpl.java b/src/main/java/com/supwisdom/dlpay/visitormanage/dao/impl/VisitorDaoImpl.java
index a877d1d..421d5c7 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/dao/impl/VisitorDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/dao/impl/VisitorDaoImpl.java
@@ -8,9 +8,7 @@
 import com.supwisdom.dlpay.mainservice.domain.TCustomer;
 import com.supwisdom.dlpay.system.domain.TRegion;
 import com.supwisdom.dlpay.visitormanage.dao.VisitorDao;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorCheckDtl;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorDtl;
-import com.supwisdom.dlpay.visitormanage.domain.VisitorSearchBean;
+import com.supwisdom.dlpay.visitormanage.domain.*;
 import org.hibernate.query.internal.NativeQueryImpl;
 import org.hibernate.transform.Transformers;
 import org.springframework.stereotype.Repository;
@@ -85,6 +83,58 @@
     }
     @Transactional
     @Override
+    public PageResult<VisitorShowBean> getCheckInfoPage(VisitorCheckSearchBean param) {
+
+        String visitorname = param.getVisitorname();
+        String sex = param.getSex();
+        String startdate = param.getStartdate();
+        String enddate = param.getEnddate();
+        String sql = "select a.visitorname,a.idno,a.phone,a.transdate,a.transtime,a.deptcode,a.custid,a.company,a.sex,a.remarks,b.custname,c.deptname from E_VISITOR_CHECK_DTL a left join t_customer b on a.custid=b.custid left join tb_dept c on c.deptcode=a.deptcode " +
+                " where a.status='1'   ";
+        String countSql = "select count(*) as cnt  from E_VISITOR_CHECK_DTL a left join t_customer b on a.custid=b.custid left join tb_dept c on c.deptcode=a.deptcode  " +
+                " where a.status='1' ";
+
+        if (!StringUtil.isEmpty(visitorname)){
+            sql += " and a.visitorname like :visitorname ";
+            countSql += " and a.visitorname like :visitorname ";
+        }if (!StringUtil.isEmpty(sex)){
+            sql += " and a.sex = :sex ";
+            countSql += " and a.sex = :sex ";
+        }if (!StringUtil.isEmpty(startdate)){
+            sql += " and a.transdate >= :startdate ";
+            countSql += " and a.transdate >= :startdate ";
+        }if (!StringUtil.isEmpty(enddate)){
+            sql += " and a.transdate <= :enddate ";
+            countSql += " and a.transdate <= :enddate ";
+        }
+        sql +=" order by a.transtime desc ";
+
+
+        Query query = entityManager.createNativeQuery(sql);
+        Query countQuery = entityManager.createNativeQuery(countSql);
+        if (!StringUtil.isEmpty(visitorname)){
+            query.setParameter("visitorname", "%"+visitorname+"%");
+            countQuery.setParameter("visitorname", "%"+visitorname+"%");
+        }if (!StringUtil.isEmpty(sex)){
+            query.setParameter("sex", sex);
+            countQuery.setParameter("sex", sex);
+        }if (!StringUtil.isEmpty(startdate)){
+            query.setParameter("startdate", startdate);
+            countQuery.setParameter("startdate", startdate);
+        }if (!StringUtil.isEmpty(enddate)){
+            query.setParameter("enddate", enddate);
+            countQuery.setParameter("enddate", enddate);
+        }
+        query.setFirstResult((param.getPageNo() - 1) * param.getPageSize());
+        query.setMaxResults(param.getPageSize()); //分页显示
+
+        query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(VisitorShowBean.class));
+        List<VisitorShowBean> list = query.getResultList();
+        BigInteger count = (BigInteger) countQuery.getSingleResult();
+        return new PageResult<>(count.longValue(), list);
+    }
+    @Transactional
+    @Override
     public boolean saveVisitorCheck(EVisitorCheckDtl bean) {
         boolean flag=false;
         try {
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 b02a952..564d5c8 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
@@ -11,10 +11,11 @@
 
     private int id;
     private String visitorname;
-    
+    private String idno;
     private Integer status;
     private String phone;
-    private String time;
+    private String transtime;
+    private String transdate;
     private String sex;
     private String deptcode;
     private String custid;
@@ -42,8 +43,15 @@
     public void setVisitorname(String visitorname) {
         this.visitorname = visitorname;
     }
+    @Column(name = "IDNO",length = 18)
 
+    public String getIdno() {
+        return idno;
+    }
 
+    public void setIdno(String idno) {
+        this.idno = idno;
+    }
 
     @Column(name = "STATUS", length = 1)
     public Integer getStatus() {
@@ -61,14 +69,27 @@
     public void setPhone(String phone) {
         this.phone = phone;
     }
-    @Column(name = "time", length = 14)
-    public String getTime() {
-        return time;
+    @Column(name = "TRANSTIME", length = 6)
+
+    public String getTranstime() {
+        return transtime;
     }
 
-    public void setTime(String time) {
-        this.time = time;
+    public void setTranstime(String transtime) {
+        this.transtime = transtime;
     }
+    @Column(name = "TRANSDATE", length = 8)
+
+    public String getTransdate() {
+        return transdate;
+    }
+
+    public void setTransdate(String transdate) {
+        this.transdate = transdate;
+    }
+
+
+
     @Column(name = "SEX", length = 1)
     public String getSex() {
         return sex;
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 0160852..2b465fc 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
@@ -9,7 +9,7 @@
 public class VisitorCheckBean {
 
     private String visitorname;
-    
+    private String idno;
     private String phone;
     private String time;
     private String sex;
@@ -19,10 +19,6 @@
     private String remarks;
 
 
-
-
-
-
     public String getVisitorname() {
         return visitorname;
     }
@@ -31,8 +27,13 @@
         this.visitorname = visitorname;
     }
 
+    public String getIdno() {
+        return idno;
+    }
 
-
+    public void setIdno(String idno) {
+        this.idno = idno;
+    }
 
     public String getPhone() {
         return phone;
@@ -41,6 +42,7 @@
     public void setPhone(String phone) {
         this.phone = phone;
     }
+
     public String getTime() {
         return time;
     }
@@ -48,6 +50,7 @@
     public void setTime(String time) {
         this.time = time;
     }
+
     public String getSex() {
         return sex;
     }
@@ -55,6 +58,7 @@
     public void setSex(String sex) {
         this.sex = sex;
     }
+
     public String getDeptcode() {
         return deptcode;
     }
@@ -62,6 +66,7 @@
     public void setDeptcode(String deptcode) {
         this.deptcode = deptcode;
     }
+
     public String getCustid() {
         return custid;
     }
@@ -69,6 +74,7 @@
     public void setCustid(String custid) {
         this.custid = custid;
     }
+
     public String getCompany() {
         return company;
     }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckSearchBean.java b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckSearchBean.java
new file mode 100644
index 0000000..a5a8829
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckSearchBean.java
@@ -0,0 +1,42 @@
+package com.supwisdom.dlpay.visitormanage.domain;
+
+import com.supwisdom.dlpay.system.bean.PageBean;
+
+public class VisitorCheckSearchBean extends PageBean {
+    private String visitorname;
+    private String startdate;
+    private String enddate;
+    private String sex;
+
+    public String getVisitorname() {
+        return visitorname;
+    }
+
+    public void setVisitorname(String visitorname) {
+        this.visitorname = visitorname;
+    }
+
+    public String getStartdate() {
+        return startdate;
+    }
+
+    public void setStartdate(String startdate) {
+        this.startdate = startdate;
+    }
+
+    public String getEnddate() {
+        return enddate;
+    }
+
+    public void setEnddate(String enddate) {
+        this.enddate = enddate;
+    }
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorShowBean.java b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorShowBean.java
index d315796..000e877 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorShowBean.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorShowBean.java
@@ -2,57 +2,36 @@
 
 
 public class VisitorShowBean {
-    private String custid;
-    private Integer custtype;
-    private String custname;
+    private String visitorname;
     private String phone;
-    private String cardno;
-    private String cardphyid;
-    private String bankcardno;
+    private String idno;
+    private String transdate;
+    private String transtime;
     private String deptcode;
-    private String custtypeid;
-    private String checkstatus;
-    private String status;
+    private String deptname;
+    private String custid;
+    private String custname;
+    private String company;
+    private String remarks;
+    private String sex;
 
 
-    public String getDeptcode() {
-        return deptcode;
+    private Integer status;
+
+    public String getIdno() {
+        return idno;
     }
 
-    public void setDeptcode(String deptcode) {
-        this.deptcode = deptcode;
+    public void setIdno(String idno) {
+        this.idno = idno;
     }
 
-    public String getCusttypeid() {
-        return custtypeid;
+    public String getVisitorname() {
+        return visitorname;
     }
 
-    public void setCusttypeid(String custtypeid) {
-        this.custtypeid = custtypeid;
-    }
-
-    public String getCustid() {
-        return custid;
-    }
-
-    public void setCustid(String custid) {
-        this.custid = custid;
-    }
-
-    public Integer getCusttype() {
-        return custtype;
-    }
-
-    public void setCusttype(Integer custtype) {
-        this.custtype = custtype;
-    }
-
-    public String getCustname() {
-        return custname;
-    }
-
-    public void setCustname(String custname) {
-        this.custname = custname;
+    public void setVisitorname(String visitorname) {
+        this.visitorname = visitorname;
     }
 
     public String getPhone() {
@@ -63,45 +42,83 @@
         this.phone = phone;
     }
 
-    public String getCardno() {
-        return cardno;
+    public String getTransdate() {
+        return transdate;
     }
 
-    public void setCardno(String cardno) {
-        this.cardno = cardno;
+    public void setTransdate(String transdate) {
+        this.transdate = transdate;
     }
 
-    public String getCardphyid() {
-        return cardphyid;
+    public String getTranstime() {
+        return transtime;
     }
 
-    public void setCardphyid(String cardphyid) {
-        this.cardphyid = cardphyid;
+    public void setTranstime(String transtime) {
+        this.transtime = transtime;
     }
 
-    public String getBankcardno() {
-        return bankcardno;
+    public String getDeptcode() {
+        return deptcode;
     }
 
-    public void setBankcardno(String bankcardno) {
-
-        this.bankcardno = bankcardno;
+    public void setDeptcode(String deptcode) {
+        this.deptcode = deptcode;
     }
 
-    public String getCheckstatus() {
-        return checkstatus;
+    public String getDeptname() {
+        return deptname;
     }
 
-    public void setCheckstatus(String checkstatus) {
-
-        this.checkstatus = checkstatus;
+    public void setDeptname(String deptname) {
+        this.deptname = deptname;
     }
 
-    public String getStatus() {
+    public String getCustid() {
+        return custid;
+    }
+
+    public void setCustid(String custid) {
+        this.custid = custid;
+    }
+
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public Integer getStatus() {
         return status;
     }
 
-    public void setStatus(String status) {
+    public void setStatus(Integer status) {
         this.status = status;
     }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/service/VisitormanageService.java b/src/main/java/com/supwisdom/dlpay/visitormanage/service/VisitormanageService.java
index ff85647..0527279 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/service/VisitormanageService.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/service/VisitormanageService.java
@@ -12,9 +12,7 @@
 import com.supwisdom.dlpay.mainservice.domain.TKey;
 import com.supwisdom.dlpay.system.domain.TRegion;
 import com.supwisdom.dlpay.system.page.Pagination;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorCheckDtl;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorDtl;
-import com.supwisdom.dlpay.visitormanage.domain.VisitorSearchBean;
+import com.supwisdom.dlpay.visitormanage.domain.*;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -26,5 +24,7 @@
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
     PageResult<EVisitorDtl> getVisitorInfoPage(VisitorSearchBean bean);
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
+    PageResult<VisitorShowBean> getCheckInfoPage(VisitorCheckSearchBean bean);
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
     public boolean saveVisitorCheck(EVisitorCheckDtl bean);
     }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/service/impl/VisitormanageServiceImpl.java b/src/main/java/com/supwisdom/dlpay/visitormanage/service/impl/VisitormanageServiceImpl.java
index ebeaec7..5e77a73 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/service/impl/VisitormanageServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/service/impl/VisitormanageServiceImpl.java
@@ -17,9 +17,7 @@
 import com.supwisdom.dlpay.system.page.Pagination;
 import com.supwisdom.dlpay.system.service.SystemService;
 import com.supwisdom.dlpay.visitormanage.dao.VisitorDao;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorCheckDtl;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorDtl;
-import com.supwisdom.dlpay.visitormanage.domain.VisitorSearchBean;
+import com.supwisdom.dlpay.visitormanage.domain.*;
 import com.supwisdom.dlpay.visitormanage.service.VisitormanageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -48,6 +46,10 @@
         return visitorDao.getVisitorInfoPage(bean);
     }
     @Override
+    public PageResult<VisitorShowBean> getCheckInfoPage(VisitorCheckSearchBean bean){
+        return visitorDao.getCheckInfoPage(bean);
+    }
+    @Override
     public boolean saveVisitorCheck(EVisitorCheckDtl bean) {
         return visitorDao.saveVisitorCheck(bean);
     }
diff --git a/src/main/resources/templates/visitormanage/addVisitorCheck.html b/src/main/resources/templates/visitormanage/addVisitorCheck.html
index d166ce0..bd0d532 100644
--- a/src/main/resources/templates/visitormanage/addVisitorCheck.html
+++ b/src/main/resources/templates/visitormanage/addVisitorCheck.html
@@ -22,6 +22,20 @@
                         </el-col>
                 </el-row>
                 <el-row :span="18">
+                    <el-col :span="18">
+                        <el-form-item label="性别">
+                            <el-select v-model="searchDoorForm.sex" id="sex" placeholder="请选择" >
+                                <el-option
+                                        v-for="status in sexlist"
+                                        :key="status.value"
+                                        :label="status.label"
+                                        :value="status.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row :span="18">
 
                         <el-col :span="18">
                             <el-form-item label="身份证号">
@@ -150,6 +164,7 @@
                 idno: '',
                 time: '',
                 phone: '',
+                sex: '',
                 custid: '',
                 deptcode: '',
                 company: '',
@@ -161,6 +176,7 @@
             custlist: [],
             operFlag: [],
             selectList: [],
+            sexlist: [],
             dialogFormVisible: false,
             dlgAllotDevVisible: false,
             startTime: '',
@@ -225,10 +241,25 @@
                     }
 
                     searchDoorlist_vue.deptlist = dlist;
+                    var sexl = [];
+                    sexl.push({
+                        value: '',
+                        label: '请选择'
+                    });
+                    sexl.push({
+                        value: '1',
+                        label: '男'
+                    });
+                    sexl.push({
+                        value: '2',
+                        label: '女'
+                    });
+                    searchDoorlist_vue.sexlist = sexl;
                 }
             })
             this.searchDoorForm.allocatStartDate = '';
             this.searchDoorForm.allocatEndDate = '';
+
         }
     });
     // 对Date的扩展,将 Date 转化为指定格式的String
diff --git a/src/main/resources/templates/visitormanage/customer/visitorchecklist.html b/src/main/resources/templates/visitormanage/customer/visitorchecklist.html
new file mode 100644
index 0000000..48c1ddb
--- /dev/null
+++ b/src/main/resources/templates/visitormanage/customer/visitorchecklist.html
@@ -0,0 +1,197 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">访客记录</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#">访客登记管理</a>
+          <a><cite>访客记录</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            搜索:
+            <input id="visitor-search-value" class="layui-input search-input" type="text" placeholder="输入姓名"/>&emsp;
+            <select id="visitor-search-sex" class="layui-input search-input" type="" >
+                <option value="">性别</option>
+                <option value="1">男</option>
+                <option value="2">女</option>
+            </select>&emsp;
+            <input id="visitor-search-startdate" class="layui-input search-input" type="date" />&emsp;
+            <label>~&nbsp;</label>
+            <input id="visitor-search-enddate" class="layui-input search-input" type="date" />&emsp;
+            <button id="customer-btn-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
+            </button>
+           <!-- <button id="customer-btn-import" class="layui-btn icon-btn" ><i class="layui-icon"></i>批量导入</button>-->
+          <!--  <a id="customer-btn-export" href="javascript:void(0);" class="layui-btn layui-btn-primary" >导出</a>-->
+        </div>
+        <table class="layui-table" id="customer-table" lay-filter="customer-table"></table>
+    </div>
+</div>
+<input hidden th:value="${custtypelist}" id="custtypelist">
+<input hidden th:value="${deptlist}" id="deptlist">
+<script>
+
+    var ctlist=$("#custtypelist").val();
+    var custtypelist=JSON.parse(ctlist);
+    var dplist=$("#deptlist").val();
+    var deptlist=JSON.parse(dplist);
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let table = layui.table;
+        let admin = layui.admin;
+
+        form.render('select');
+
+        // 渲染表格
+        table.render({
+            elem: '#customer-table',
+            url: '[[@{/visitor/checklist}]]',
+            page: true,
+            minWidth: 80,
+            cols: [
+                [
+                    {field: 'visitorname',  title: '姓名'},
+
+
+                    /*{
+                        field: 'checkstatus', title: '审核状态', align: 'center', width: 120, sort: true, templet: function (d) {
+                            if ('uncheck' == d.checkstatus) {
+                                return '<span class="layui-badge layui-bg-orange">待审核</span>'
+                            } else if ('normal' == d.checkstatus) {
+                                return '<span class="layui-badge layui-bg-green">成功</span>';
+                            } else if ('fail' == d.checkstatus) {
+                                return '<span class="layui-badge layui-bg-gray">失败</span>';
+                            } else {
+                                return d.checkstatus;
+                            }
+                        }
+                    },*/
+                    {
+                        field: 'sex',
+                        title: '性别',
+                        align: 'center',
+                        templet: function (item) {
+                            if(item.sex==1){
+                                return "男"
+                            }else {
+                                return "女"
+                            }
+                        }
+                    },
+                    {field: 'phone',  title: '联系方式'},
+
+                    {
+                        field: 'transdate', width:200, title: '日期',align: 'center', templet: function (item) {
+                            return item.transdate.substring(0,4)+"-"+item.transdate.substring(4,6)+"-"+item.transdate.substring(6,8);
+                        }
+                    },{
+                        field: 'transtime', width:200, title: '时间', align: 'center',templet: function (item) {
+                            return item.transtime.substring(0,2)+":"+item.transtime.substring(2,4)+":"+item.transtime.substring(4,6);
+                        }
+                    },
+                    {field: 'idno', align: 'center',  title: '身份证号'},
+                    {field: 'company', align: 'center',  title: '单位'},
+                    {field: 'custname', align: 'center',  title: '受访人'},
+                    {field: 'deptname', align: 'center',  title: '受访人部门'},
+                    {field: 'remarks', align: 'center',  title: '备注'}
+                ]
+            ]
+        });
+        $('#customer-btn-export').click(function () {
+            var url = '[[@{/customer/export}]]';
+            /* $("#form").attr("action",url);
+
+             $("#form").submit();*/
+
+            $("#customer-btn-export").attr("href", url );
+            $("#customer-btn-export")[0].click();
+        });
+        // 搜索按钮点击事件
+        $('#customer-btn-search').click(function () {
+            let key = $('#visitor-search-value').val().trim();
+            let sex = $('#visitor-search-sex').val().trim();
+            let startdate = $('#visitor-search-startdate').val().trim();
+            let enddate = $('#visitor-search-enddate').val().trim();
+            if(enddate!=null&&enddate!=""){
+                if(startdate!=null&&startdate!=""){
+                    if(startdate>enddate){
+                        alert("请输入正确的日期")
+                        return;
+                    }
+                }
+
+            }
+            table.reload('customer-table', {where: {searchkey: key,sex: sex,startdate:startdate,enddate:enddate }, page: {curr: 1}});
+        });
+        $('#customer-btn-add').click(function () {
+            showModel();
+        });
+       /* $('#customer-btn-import').click(function () {
+            showDownload();
+        });
+        let showDownload = function () {
+            let title ='导入';
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/customer/loadimport}]]',
+                finish: function () {
+                    table.reload('customer-table', {});
+                }
+            });
+        };*/
+        let showModel = function (data) {
+            let title = data ? '修改人员信息' : '添加人员信息';
+            admin.putTempData('t_cust', data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/customer/loadadd}]]',
+                finish: function () {
+                    table.reload('customer-table', {});
+                }
+            });
+        };
+
+
+        // 工具条点击事件
+        table.on('tool(customer-table)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'edit') {
+                showModel(data);
+            } else if (layEvent === 'del') {
+                showDelete(data);
+            }
+        });
+        let showDelete = function (data) {
+            console.log(data);
+            layer.confirm('确定要删除吗?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/customer/delete}]]', {
+                    custid: data.custid,
+                    _csrf: token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('/login');
+                        }, 1000);
+                        return;
+                    } else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('customer-table', {});
+                }, function (ret) {
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        };
+
+    });
+</script>