大理访客登记微信扫码及管理端界面以及身份证扫码登记界面
diff --git a/build.gradle b/build.gradle
index 71be02a..50b7563 100644
--- a/build.gradle
+++ b/build.gradle
@@ -65,6 +65,7 @@
     implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
 
     implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
+    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.12'
 
     implementation 'org.postgresql:postgresql:42.2.5'
     implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
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 0d243a5..2ed3328 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/controller/VisitorManageController.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/controller/VisitorManageController.java
@@ -11,15 +11,18 @@
 import com.supwisdom.dlpay.framework.domain.TOperator;
 import com.supwisdom.dlpay.framework.util.DateUtil;
 import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
 import com.supwisdom.dlpay.framework.util.WebConstant;
 import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
+import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
 import com.supwisdom.dlpay.paysdk.proxy.UserProxy;
+import com.supwisdom.dlpay.system.bean.RegionBean;
 import com.supwisdom.dlpay.system.domain.TCustType;
 import com.supwisdom.dlpay.system.domain.TDept;
+import com.supwisdom.dlpay.system.domain.TRegion;
 import com.supwisdom.dlpay.system.service.SystemService;
-import com.supwisdom.dlpay.visitormanage.domain.EVisitorDtl;
-import com.supwisdom.dlpay.visitormanage.domain.VisitorSearchBean;
-import com.supwisdom.dlpay.visitormanage.domain.VisitorShowBean;
+import com.supwisdom.dlpay.util.RedisUtil;
+import com.supwisdom.dlpay.visitormanage.domain.*;
 import com.supwisdom.dlpay.visitormanage.service.VisitormanageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -28,7 +31,9 @@
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Controller
 @RequestMapping("/visitor")
@@ -41,6 +46,8 @@
     private SystemService systemService;
     @Autowired
     private VisitormanageService visitormanageService;
+    @Autowired
+    private WebInterfaceService webInterfaceService;
 
     @RequestMapping("/index")
     public String indexView(ModelMap model) {
@@ -54,6 +61,18 @@
 
         return "visitormanage/customer/index";
     }
+    @RequestMapping("/checkin")
+    public String visitorcheck(ModelMap model) {
+        List<TCustType> lst = systemService.findAllCusttype();
+        List<TDept> dept=systemService.findAllDept();
+        Gson gson = new Gson();
+        String deptString = gson.toJson(dept);
+        model.put("deptlist", dept);
+        String typeString = gson.toJson(lst);
+        model.put("custtypelist", lst);
+
+        return "visitormanage/addVisitorCheck";
+    }
 
     @RequestMapping("/list")
     @ResponseBody
@@ -89,17 +108,69 @@
     }
 
 
-    @GetMapping("/loadadd")
-    public String loadadd(Model model) {
-        List<TCustType> list=systemService.findAllCusttype();
-        model.addAttribute("typelist",list);
-        List<TDept> deptlist=systemService.findAllDept();
-        model.addAttribute("deptlist",deptlist);
 
-        return "doorlist/customer/form";
+    @ResponseBody
+    @RequestMapping("/getcustlist")
+    public Map loadAppDevList(@RequestParam(value = "deptcode",required = true,defaultValue = "")String deptcode){
+        Map map = new HashMap();
+        try{
+            CustomerSearchBean searchBean = new CustomerSearchBean();
+                searchBean.setDeptcode(deptcode);
+            PageResult<TCustomerInfo> bean= webInterfaceService.getCustomerInfoPage(searchBean);
+            List<TCustomerInfo> custlist = bean.getData();
+            map.put("custlist",custlist);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return map;
+
+
+    }@ResponseBody
+    @RequestMapping("/getdeptlist")
+    public Map loadDeptList(){
+        Map map = new HashMap();
+        try{
+            List<TDept> deptlist=systemService.findAllDept();
+            map.put("deptlist",deptlist);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return map;
+
+
     }
+    /**
+     * 访客登记
+     * @param postData
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/addvisitorcheck", method = {RequestMethod.POST})
+    public Map saveVisitorCheck (@RequestBody VisitorCheckBean postData){
+        Map map = new HashMap();
+        try{
+            EVisitorCheckDtl eVisitorCheckDtl=new EVisitorCheckDtl();
+            eVisitorCheckDtl.setCompany(postData.getCompany());
+            eVisitorCheckDtl.setCustid(postData.getCustid());
+            eVisitorCheckDtl.setDeptcode(postData.getDeptcode());
+            eVisitorCheckDtl.setPhone(postData.getPhone());
+            eVisitorCheckDtl.setRemarks(postData.getRemarks());
+            eVisitorCheckDtl.setVisitorname(postData.getVisitorname());
+            eVisitorCheckDtl.setTime(DateUtil.getNow("yyyyMMddhhmmss"));
 
+            boolean b = visitormanageService.saveVisitorCheck(eVisitorCheckDtl);
+            if(b){
+                map.put("errStr", "");
+            }else {
+                map.put("errStr", "保存失败");
 
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("errStr", "保存失败!");
+        }
+        return map;
+    }
 
 
 }
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 c9fbce8..920b9f5 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/dao/VisitorDao.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/dao/VisitorDao.java
@@ -4,6 +4,8 @@
 import com.supwisdom.dlpay.doorlist.bean.TCustomerInfo;
 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;
 
@@ -17,5 +19,5 @@
 
 
     public PageResult<EVisitorDtl> getVisitorInfoPage(VisitorSearchBean 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 d89f3ce..a877d1d 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
@@ -6,7 +6,9 @@
 import com.supwisdom.dlpay.framework.util.StringUtil;
 import com.supwisdom.dlpay.mainservice.dao.CustomerDao;
 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 org.hibernate.query.internal.NativeQueryImpl;
@@ -81,6 +83,17 @@
         BigInteger count = (BigInteger) countQuery.getSingleResult();
         return new PageResult<>(count.longValue(), list);
     }
-
+    @Transactional
+    @Override
+    public boolean saveVisitorCheck(EVisitorCheckDtl bean) {
+        boolean flag=false;
+        try {
+            entityManager.persist(bean);
+            flag=true;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return flag;
+    }
 
 }
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
new file mode 100644
index 0000000..b02a952
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/EVisitorCheckDtl.java
@@ -0,0 +1,113 @@
+package com.supwisdom.dlpay.visitormanage.domain;
+
+import javax.persistence.*;
+
+/**
+ * Created by shuwei on 17/6/12.
+ */
+@Entity
+@Table(name = "E_VISITOR_CHECK_DTL")
+public class EVisitorCheckDtl {
+
+    private int id;
+    private String visitorname;
+    
+    private Integer status;
+    private String phone;
+    private String time;
+    private String sex;
+    private String deptcode;
+    private String custid;
+    private String company;
+    private String remarks;
+
+
+
+
+    @Id
+    @Column(name = "ID", unique = true,  nullable = false, length = 32)
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+    @Column(name = "VISITORNAME",length = 40)
+    public String getVisitorname() {
+        return visitorname;
+    }
+
+    public void setVisitorname(String visitorname) {
+        this.visitorname = visitorname;
+    }
+
+
+
+    @Column(name = "STATUS", length = 1)
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+    @Column(name = "PHONE", length = 20)
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+    @Column(name = "time", length = 14)
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+    @Column(name = "SEX", length = 1)
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+    @Column(name = "DEPTCODE", length = 32)
+    public String getDeptcode() {
+        return deptcode;
+    }
+
+    public void setDeptcode(String deptcode) {
+        this.deptcode = deptcode;
+    }
+    @Column(name = "CUSTID", length = 32)
+    public String getCustid() {
+        return custid;
+    }
+
+    public void setCustid(String custid) {
+        this.custid = custid;
+    }
+    @Column(name = "COMPANY", length = 255)
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+    @Column(name = "REMARKS", length = 255)
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
new file mode 100644
index 0000000..0160852
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/domain/VisitorCheckBean.java
@@ -0,0 +1,89 @@
+package com.supwisdom.dlpay.visitormanage.domain;
+
+import javax.persistence.*;
+
+/**
+ * Created by shuwei on 17/6/12.
+ */
+
+public class VisitorCheckBean {
+
+    private String visitorname;
+    
+    private String phone;
+    private String time;
+    private String sex;
+    private String deptcode;
+    private String custid;
+    private String company;
+    private String remarks;
+
+
+
+
+
+
+    public String getVisitorname() {
+        return visitorname;
+    }
+
+    public void setVisitorname(String visitorname) {
+        this.visitorname = visitorname;
+    }
+
+
+
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+    public String getDeptcode() {
+        return deptcode;
+    }
+
+    public void setDeptcode(String deptcode) {
+        this.deptcode = deptcode;
+    }
+    public String getCustid() {
+        return custid;
+    }
+
+    public void setCustid(String custid) {
+        this.custid = custid;
+    }
+    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;
+    }
+
+
+}
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 1b4ac25..ff85647 100644
--- a/src/main/java/com/supwisdom/dlpay/visitormanage/service/VisitormanageService.java
+++ b/src/main/java/com/supwisdom/dlpay/visitormanage/service/VisitormanageService.java
@@ -10,7 +10,9 @@
 import com.supwisdom.dlpay.mainservice.domain.TCard;
 import com.supwisdom.dlpay.mainservice.domain.TCustomer;
 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 org.springframework.transaction.annotation.Propagation;
@@ -23,5 +25,6 @@
 
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
     PageResult<EVisitorDtl> getVisitorInfoPage(VisitorSearchBean 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 9261017..ebeaec7 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
@@ -13,9 +13,11 @@
 import com.supwisdom.dlpay.mainservice.domain.TKey;
 import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
 import com.supwisdom.dlpay.system.domain.TDept;
+import com.supwisdom.dlpay.system.domain.TRegion;
 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.service.VisitormanageService;
@@ -45,4 +47,8 @@
     public PageResult<EVisitorDtl> getVisitorInfoPage(VisitorSearchBean bean){
         return visitorDao.getVisitorInfoPage(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
new file mode 100644
index 0000000..d166ce0
--- /dev/null
+++ b/src/main/resources/templates/visitormanage/addVisitorCheck.html
@@ -0,0 +1,463 @@
+<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 id="searchDoorlist">
+            <el-form :inline="true" ref="searchDoorForm" :model="searchDoorForm" label-width="110px"
+                     data-parsley-validate class="form-horizontal form-label-left el-form-item el-form-item--mini">
+
+                <el-row :span="18">
+                        <el-col :span="18">
+                            <el-form-item label="姓名">
+
+                            <el-input v-model="searchDoorForm.visitorname" id="visitorname" placeholder="访客姓名">
+                                <i class="el-icon-edit el-input__icon" slot="icon"></i>
+                    </el-input>
+                    </el-form-item>
+                        </el-col>
+                </el-row>
+                <el-row :span="18">
+
+                        <el-col :span="18">
+                            <el-form-item label="身份证号">
+
+                            <el-input v-model="searchDoorForm.idno" id="idno" placeholder="访客身份证号">
+                                <i class="el-icon-edit el-input__icon" slot="icon"></i>
+                            </el-input>
+                    </el-form-item>
+                        </el-col>
+
+                </el-row>
+                <el-row :span="18">
+
+                        <el-col :span="18">
+                            <el-form-item label="联系方式">
+
+                            <el-input v-model="searchDoorForm.phone" id="phone" placeholder="访客联系方式">
+                                <i class="el-icon-edit el-input__icon" slot="icon"></i>
+                            </el-input>
+                    </el-form-item>
+                        </el-col>
+                </el-row>
+                <el-row :span="18">
+                    <el-col :span="18">
+                        <el-form-item label="时间">
+                            <el-date-picker type="date" v-model="searchDoorForm.time" id="time"
+                                            :picker-options="pickerOptions0" :editable="false" placeholder="访问时间"  value-format="yyyyMMdd"
+                                            style="width:100%;"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+
+
+
+                </el-row>
+                <el-row :span="18">
+                    <el-col :span="18">
+                        <el-form-item label="单位">
+                            <el-input v-model="searchDoorForm.company" id="company" placeholder="访客所在单位">
+                                <i class="el-icon-edit el-input__icon" slot="icon"></i>
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+
+
+                </el-row>
+                <el-row :span="18">
+                    <el-col :span="18">
+                        <el-form-item label="受访者部门">
+                            <el-select v-model="searchDoorForm.deptcode" id="deptcode" placeholder="请选择" @change="deptchange(searchDoorForm.deptcode)">
+                                <el-option
+                                        v-for="status in deptlist"
+                                        :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="受访者姓名">
+                            <el-select v-model="searchDoorForm.custid" id="custid" placeholder="请选择">
+                                <el-option
+                                        v-for="flag in custlist"
+                                        :key="flag.value"
+                                        :label="flag.label"
+                                        :value="flag.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row :span="18">
+                    <el-col :span="18">
+                        <el-form-item label="备注">
+                            <el-input v-model="searchDoorForm.remarks" id="remarks" placeholder="备注信息">
+                                <i class="el-icon-edit el-input__icon" slot="icon"></i>
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+
+                <el-row>
+                    <el-col :span="8" :offset="16">
+                        <button type="button" style="margin-left: 48px" class="btn btn-info" @click="savevisitor(searchDoorForm)"
+                                id="searchDoorlist_qrybtn">
+                            保存
+                        </button>
+
+                    </el-col>
+                </el-row>
+
+            </el-form>
+
+
+            <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>
+                  </span>
+            </el-dialog>
+
+        </div>
+    </div>
+</div>
+
+<script>
+    var searchDoorlist_vue = new Vue({
+        el: "#searchDoorlist",
+        data: {
+            tableData: [],
+            currPage: 1,
+            pageSize: 10,
+            totSize: 0,
+            currentRow: null,
+            searchDoorForm: {
+                visitorname: '',
+                idno: '',
+                time: '',
+                phone: '',
+                custid: '',
+                deptcode: '',
+                company: '',
+                remarks: '',
+            },
+            regions: [],
+            regionoptions: [],
+            deptlist: [],
+            custlist: [],
+            operFlag: [],
+            selectList: [],
+            dialogFormVisible: false,
+            dlgAllotDevVisible: false,
+            startTime: '',
+            endTime: '',
+            alloTimeName: '',
+            pickerOptions0: {
+                disabledDate: function (time) {
+                    return time.getTime() > Date.now();
+                }
+            },
+            pickerOptions1: {
+                disabledDate: function (time) {
+                    if (searchDoorlist_vue.searchDoorForm.allocatStartDate != '') {
+
+                        return time.getTime() < searchDoorlist_vue.searchDoorForm.allocatStartDate.getTime();
+                    } else {
+                        return time.getTime() > Date.now();
+                    }
+                }
+            }
+        },
+        methods: {
+
+            savevisitor: function (formName) {
+                searchDoorlist_commonQuery(this, this.searchDoorForm,formName);
+            },
+
+            deptchange: function (deptcode) {
+                var _self = this;
+                alert(deptcode);
+                getcustlist(_self, deptcode);
+            },
+            formatDate: function (row, column, cellValue) {
+                return cellValue.substr(0, 4) + "-" + cellValue.substr(4, 2) + "-" + cellValue.substr(6, 2);
+            },
+
+            handleSelect: function (val) {
+                this.selectList = val;
+            }
+
+        },
+        created: function () {
+            var _self = this;
+            $.ajax({
+                type: "get",
+                dataType: "json",
+                url: encodeURI("[[@{/visitor/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;
+                }
+            })
+            this.searchDoorForm.allocatStartDate = '';
+            this.searchDoorForm.allocatEndDate = '';
+        }
+    });
+    // 对Date的扩展,将 Date 转化为指定格式的String
+    // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
+    // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
+    // 例子:
+    // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
+    // (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
+    Date.prototype.Format = function (fmt) { //author: meizz
+        var o = {
+            "M+": this.getMonth() + 1, //月份
+            "d+": this.getDate(), //日
+            "h+": this.getHours(), //小时
+            "m+": this.getMinutes(), //分
+            "s+": this.getSeconds(), //秒
+            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
+            "S": this.getMilliseconds() //毫秒
+        };
+        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+        for (var k in o)
+            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+        return fmt;
+    }
+
+    function searchDoorlist_getTreeData(regionlst) {
+        var f = [];
+
+        //获取第一级
+        for (var i = 0; i < regionlst.length; i++) {
+            if (regionlst[i].parentid == '0') {
+                f.push({
+                    value: regionlst[i].regionid,
+                    label: regionlst[i].regionname,
+                })
+            }
+        }
+        if (f.length > 0) {
+            //获取第二级
+            searchDoorlist_pushRegion(regionlst, f);
+        } else {
+            f.push({
+                value: regionlst[0].regionid,
+                label: regionlst[0].regionname,
+            })
+            //获取第二级
+            searchDoorlist_pushRegion(regionlst, f);
+        }
+        searchDoorlist_cyclePushRegion(f, regionlst)
+        return f;
+    }
+
+    function searchDoorlist_pushRegion(regionlst, pRe) {
+        for (var i in regionlst) {
+            for (var j in pRe) {
+                if (regionlst[i].parentid == pRe[j].value) {
+                    if (pRe[j].children == undefined) {
+                        pRe[j].children = []
+                    }
+                    pRe[j].children.push({
+                        value: regionlst[i].regionid,
+                        label: regionlst[i].regionname,
+                    })
+                }
+            }
+        }
+    }
+
+    function searchDoorlist_cyclePushRegion(fList, regionlst) {
+        for (var i in fList) {
+            var s = fList[i].children;
+            if (s != undefined && s.length > 0) {
+                searchDoorlist_pushRegion(regionlst, s);
+            }
+            for (j in s) {
+                var l = s[j].children;
+                if (l != undefined && l.length > 0) {
+                    searchDoorlist_cyclePushRegion(s, regionlst)
+                }
+            }
+        }
+    }
+
+    function getcustlist(_self, deptcode) {
+
+        $.ajax({
+            type: "get",
+            dataType: "json",
+            url: encodeURI("[[@{/visitor/getcustlist?deptcode=}]]" + deptcode),
+            success: function (ret) {
+                var bList = [];
+                bList.push({
+                    value: '',
+                    label: '请选择'
+                });
+                var rB = ret.custlist;
+                if (rB != null) {
+                    for (var j = 0; j < rB.length; j++) {
+                        bList.push({
+                            value: rB[j]["custid"],
+                            label: rB[j]["custname"]
+                        });
+                    }
+                }
+
+                _self.custlist = bList;
+            }
+        })
+
+
+    }
+
+
+    function searchDoorlist_commonQuery(_self, searchDoor,formName) {
+        var url = "[[@{/visitor/addvisitorcheck?}]]";
+        var token = $("meta[name='_csrf_token']").attr("value");
+        $.ajax({
+            type: "POST",
+            url: url,
+            dataType: "json",
+            contentType: "application/json",
+            headers: {
+                'Accept': 'application/json',
+                'Content-Type': 'application/json',
+                'X-CSRF-TOKEN':token,
+            },
+            data: JSON.stringify(searchDoor),
+            success: function (data) {
+                if (data.errStr != "") {
+                    layer.msg(data.errStr, {icon: 2,time:1000});
+                } else {
+                    layer.msg('保存信息成功!', {icon: 1,time:1000});
+                    _self.$refs[formName].resetFields();
+                    _self.dialogFormVisible = false;
+                    _self.regionidDis = false;
+                }
+            }
+        });
+    }
+
+    function searchDoorlist_timeformatter(time) {
+
+        return time.substr(0, 4) + '-' + time.substr(4, 2) + '-' + time.substr(6, 2) + ' '
+            + time.substr(8, 2) + ':' + time.substr(10, 2) + ':' + time.substr(12, 2);
+//        console.log([year,month,date].join('-')+' '+[hour,moment,second].join(':'));
+//        return [year,month,date].join('-')+' '+[hour,moment,second].join(':');
+
+    }
+
+    function searchDoorlist_exportExcel(_self, searchDoor) {
+        var startStr = '';
+        var endStr = '';
+        if (_self.totSize > 1000) {
+            layer.msg('数量过大请输入条件', {icon: 2, time: 1000});
+            return;
+        }
+        if (searchDoor.allocatStartDate != '') {
+            if (searchDoor.allocatEndDate == '') {
+                layer.msg('请选择结束时间', {icon: 2, time: 1000});
+                return;
+            } else {
+                startStr = searchDoor.allocatStartDate.Format('yyyyMMdd');
+                endStr = searchDoor.allocatEndDate.Format('yyyyMMdd');
+            }
+        }
+        var url = "[[@{/doorlistMgr/exportExcel?}]]" + "allocatStartDate=" + startStr + "&allocatEndDate=" + endStr +
+            "&devname=" + searchDoor.devname + "&custname=" + searchDoor.custname
+            + "&cardno=" + searchDoor.cardno
+            + "&syncflag=" + searchDoor.syncflag + "&operflag=" + searchDoor.operflag
+            + "&buildingid=" + searchDoor.buildingid + "&regionid=" + searchDoor.regionid;
+//        window.location.href
+        var uri = encodeURI(url);
+        window.open(uri);
+    }
+
+    function searchDoorlist_reIssuedList() {
+        var listIds = searchDoorlist_vue.selectList;
+        if (listIds == '') {
+            layer.msg('请选择要重新下发的名单!', {icon: 2, time: 1000});
+        } else {
+            layer.confirm('确定要重新下发这些名单吗?', {icon: 3, title: '请确认', offset: '30%'}, function (index) {
+                var url = "[[@{/doorlistMgr/reSaveDoorCardList}]]";
+                var token = $("meta[name='_csrf_token']").attr("value");
+                $.ajax({
+                    type: "POST",
+                    url: url,
+                    dataType: "json",
+                    contentType: "application/json",
+                    headers: {
+                        'Accept': 'application/json',
+                        'Content-Type': 'application/json',
+                        'X-CSRF-TOKEN': token,
+                    },
+                    data: JSON.stringify(listIds),
+                    success: function (data) {
+                        layer.msg(data.result, {time: 2000})
+                        searchDoorlist_refreshThisTable();
+                    }
+                });
+            })
+        }
+    }
+
+    function searchDoorlist_getRegionBuilding(_self, value) {
+        $.ajax({
+            type: "get",
+            dataType: "json",
+            url: encodeURI("[[@{/ncmgr/getRegionBuilding?regionid=}]]" + value),
+            success: function (ret) {
+                var custlist = [];
+                custlist.push({
+                    value: '',
+                    label: '全部'
+                });
+                var rB = ret.custlist;
+                if (rB != null) {
+                    for (var j = 0; j < rB.length; j++) {
+                        bList.push({
+                            value: rB[j]["custid"],
+                            label: rB[j]["custname"]
+                        });
+                    }
+                }
+
+                _self.building = custlist;
+            }
+        })
+    }
+
+    function refreshThisTable() {
+        $("#searchDoorlist_qrybtn").click();
+    }
+</script>
\ No newline at end of file