大理访客登记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>