|
@@ -0,0 +1,267 @@
|
|
|
+<%@ page contentType="text/html;charset=UTF-8" %>
|
|
|
+<%@ page isELIgnored="false"%>
|
|
|
+<%@ include file="/webpage/include/taglib.jsp"%>
|
|
|
+<html>
|
|
|
+<head>
|
|
|
+ <title>企业微信员工打卡记录</title>
|
|
|
+ <meta name="decorator" content="default"/>
|
|
|
+ <style>
|
|
|
+ /*body{
|
|
|
+ background-color:transparent;
|
|
|
+ filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
|
|
|
+ color:#ffffff;
|
|
|
+ background-color:rgba(255,255,255,0);
|
|
|
+ height:100%;
|
|
|
+ }*/
|
|
|
+ .layui-layer-btn1:hover{
|
|
|
+ color: #c2c2c2;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+ <script type="text/javascript">
|
|
|
+ $(document).ready(function() {
|
|
|
+ $("#cus_name").show();
|
|
|
+ $("#cus_name").siblings().hide();
|
|
|
+ //搜索框收放
|
|
|
+ $('#moresee').click(function(){
|
|
|
+ if($('#moresees').is(':visible'))
|
|
|
+ {
|
|
|
+ $('#moresees').slideUp(0,resizeListWindow1);
|
|
|
+ $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
|
|
|
+ }else{
|
|
|
+ $('#moresees').slideDown(0,resizeListWindow1);
|
|
|
+ $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ laydate.render({
|
|
|
+ elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
|
|
|
+ event: 'focus', //响应事件。如果没有传入event,则按照默认的click
|
|
|
+ type : 'date'
|
|
|
+, trigger: 'click'
|
|
|
+ });
|
|
|
+ laydate.render({
|
|
|
+ elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
|
|
|
+ event: 'focus', //响应事件。如果没有传入event,则按照默认的click
|
|
|
+ type : 'date'
|
|
|
+, trigger: 'click'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ function switchInput(obj){
|
|
|
+ $("#"+obj).show();
|
|
|
+ $("#"+obj).siblings().hide();
|
|
|
+ }
|
|
|
+ //打开对话框(查看)
|
|
|
+ function openDialogNow(title,url,width,height){
|
|
|
+ if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
|
|
|
+ width='auto';
|
|
|
+ height='auto';
|
|
|
+ }else{//如果是PC端,根据用户设置的width和height显示。
|
|
|
+
|
|
|
+ }
|
|
|
+ top.layer.open({
|
|
|
+ type: 2,
|
|
|
+ area: [width, height],
|
|
|
+ title: title,
|
|
|
+ maxmin: true, //开启最大化最小化按钮
|
|
|
+ content: url ,
|
|
|
+ btn: ['关闭'],
|
|
|
+ cancel: function(index){
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //打开对话框(查看)
|
|
|
+ function deleteFun(url){
|
|
|
+ if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
|
|
|
+ width='auto';
|
|
|
+ height='auto';
|
|
|
+ }else{//如果是PC端,根据用户设置的width和height显示。
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ layer.confirm('确定要删除该客户信息吗?', {
|
|
|
+ title: "删除",
|
|
|
+ btn: ['确定','关闭'] //可以无限个按钮
|
|
|
+ },function(index, layero){
|
|
|
+ $.ajax({
|
|
|
+ type: 'post',
|
|
|
+ url:url,
|
|
|
+ dataType: "json",
|
|
|
+ cache: false,
|
|
|
+ processData: false,
|
|
|
+ contentType: false,
|
|
|
+ }).success(function (result) {
|
|
|
+ if(result.result == "1"){
|
|
|
+ layer.close(index);
|
|
|
+ top.layer.msg(result.msg, {icon: 1});
|
|
|
+ window.location.reload();
|
|
|
+ }else{
|
|
|
+ layer.close(index);
|
|
|
+ top.layer.msg(result.msg, {icon: 2});
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }, function(index){
|
|
|
+ layer.close(index);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function cBlur(obj) {
|
|
|
+ var id = $("#createId").val();
|
|
|
+ if(undefined != obj.value && null != obj.value && '' != obj.value){
|
|
|
+ $.ajax({
|
|
|
+ url:'${ctx}/sys/user/getUserByName?name='+obj.value,
|
|
|
+ type:"post",
|
|
|
+ success:function(data){
|
|
|
+ var user = data.body.data;
|
|
|
+ if(undefined == user || null == user || '' == user){
|
|
|
+ $("#createId").val("");
|
|
|
+ }else{
|
|
|
+ if(data.body.data.id != id){
|
|
|
+ if(undefined != id && null != id && '' != id){
|
|
|
+ $("#createId").val("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ $("#createId").val("");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</head>
|
|
|
+<body class="gray-bg">
|
|
|
+<div class="wrapper wrapper-content">
|
|
|
+ <sys:message content="${message}"/>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="full-width fl">
|
|
|
+ <div class="layui-row contentShadow shadowLR" id="queryDiv">
|
|
|
+ <form:form id="searchForm" modelAttribute="clockInRecordSummarizingInfo" action="${ctx}/clockInRecordSummarizingController/list" method="post" class="form-inline">
|
|
|
+ <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
|
|
|
+ <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
|
|
|
+ <input id="toflag" name="toflag" type="hidden" value="1"/>
|
|
|
+ <%--<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->--%>
|
|
|
+ <div class="commonQuery lw7">
|
|
|
+ <div class="layui-item query athird ">
|
|
|
+ <label class="layui-form-label">姓名:</label>
|
|
|
+ <div class="layui-input-block with-icon">
|
|
|
+ <sys:inquireselectUserNotReadolnyTow id="sysUser" name="sysUserId" value="${clockInRecordSummarizingInfo.sysUserId}" labelName="userName" labelValue="${clockInRecordSummarizingInfo.userName}" cssStyle="background-color: #fff"
|
|
|
+ title="姓名" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="layui-item query athird">
|
|
|
+ <label class="layui-form-label">部门:</label>
|
|
|
+ <div class="layui-input-block with-icon">
|
|
|
+ <sys:treeselectMoHu id="officeId" name="office.id" value="${clockInRecordSummarizingInfo.office.id}" labelName="office.name" labelValue="${clockInRecordSummarizingInfo.office.name}"
|
|
|
+ title="部门" url="/sys/office/treeDataAll?type=6" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="false"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="layui-item athird">
|
|
|
+ <div class="input-group">
|
|
|
+ <a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
|
|
|
+ <div class="layui-btn-group search-spacing">
|
|
|
+ <button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
|
|
|
+ <button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style=" clear:both;"></div>
|
|
|
+ </div>
|
|
|
+ <div id="moresees" style="clear:both;display:none;" class="lw7">
|
|
|
+ <div class="layui-item query athird">
|
|
|
+ <label class="layui-form-label">打卡时间:</label>
|
|
|
+ <div class="layui-input-block readOnlyFFF">
|
|
|
+ <input id="beginDate" placeholder="开始时间" name="beginDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
|
|
|
+ value="<fmt:formatDate value="${clockInRecordSummarizingInfo.beginDate}" pattern="yyyy-MM-dd"/>"/>
|
|
|
+ </input>
|
|
|
+ <span class="group-sep">-</span>
|
|
|
+ <input id="endDate" placeholder="结束时间" name="endDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
|
|
|
+ value="<fmt:formatDate value="${clockInRecordSummarizingInfo.endDate}" pattern="yyyy-MM-dd"/>"/>
|
|
|
+ </input>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </form:form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="full-width fl">
|
|
|
+ <div class="contentShadow layui-form contentDetails">
|
|
|
+ <div class="nav-btns">
|
|
|
+ <div class="layui-btn-group">
|
|
|
+ <shiro:hasPermission name="clockInRecordSummarizing:clockInRecordSummarizing:export">
|
|
|
+ <table:exportExcel url="${ctx}/clockInRecordSummarizingController/export"></table:exportExcel><!-- 导出按钮 -->
|
|
|
+ </shiro:hasPermission>
|
|
|
+ <button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
|
|
|
+ </div>
|
|
|
+ <div style="clear: both;"></div>
|
|
|
+ </div>
|
|
|
+ <table class="oa-table layui-table" id="contentTable"></table>
|
|
|
+
|
|
|
+ <!-- 分页代码 -->
|
|
|
+ <table:page page="${page}"></table:page>
|
|
|
+ <div style="clear: both;"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div id="changewidth"></div>
|
|
|
+</div>
|
|
|
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
|
|
|
+<script>
|
|
|
+ layui.use('table', function(){
|
|
|
+ layui.table.render({
|
|
|
+ limit:${ page.pageSize }
|
|
|
+ ,elem: '#contentTable'
|
|
|
+ ,page: false
|
|
|
+ ,cols: [[
|
|
|
+ {field:'index',align:'center', title: '序号',width:40}
|
|
|
+ ,{field:'userName',align:'center', title: '姓名',minWidth:150,templet:function(d){
|
|
|
+ return "<a class=\"attention-info\" title=\"" + d.userName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看打卡记录', '${ctx}/clockInRecordController/list?summarizingId=" + d.id +"','1000px', '300px')\">" + d.userName + "</a>";
|
|
|
+ }}
|
|
|
+ ,{field:'officeName',align:'center', title: '部门',minWidth:150}
|
|
|
+ ,{field:'checkinDate',align:'center', title: '打卡日期',minWidth:150}
|
|
|
+ ,{field:'workClass',align:'center', title: '上班班次', minWidth:150}
|
|
|
+ ,{field:'earliestTime',align:'center', title: '上班打卡时间', minWidth:150}
|
|
|
+ ,{field:'latestTime', align:'center',title: '下班打卡时间',minWidth:150}
|
|
|
+ ,{field:'workTime',align:'center', title: '上班工作时长(小时)', minWidth:150}
|
|
|
+ ]]
|
|
|
+ ,data: [
|
|
|
+ <c:if test="${ not empty page.list}">
|
|
|
+ <c:forEach items="${page.list}" var="clockInRecordSummarizingInfo" varStatus="index">
|
|
|
+ <c:if test="${index.index != 0}">,</c:if>
|
|
|
+ {
|
|
|
+ "index":"${index.index+1}"
|
|
|
+ ,"id":"${clockInRecordSummarizingInfo.id}"
|
|
|
+ ,"userName":"${clockInRecordSummarizingInfo.userName}"
|
|
|
+ ,"officeName":"${clockInRecordSummarizingInfo.office.name}"
|
|
|
+ ,"checkinDate":"${clockInRecordSummarizingInfo.checkinDate}"
|
|
|
+ ,"workClass":"${clockInRecordSummarizingInfo.workClass}"
|
|
|
+ ,"earliestTime":"${clockInRecordSummarizingInfo.earliestTime}"
|
|
|
+ ,"latestTime":"${clockInRecordSummarizingInfo.latestTime}"
|
|
|
+ ,"workTime":"${clockInRecordSummarizingInfo.workTime}"
|
|
|
+ }
|
|
|
+ </c:forEach>
|
|
|
+ </c:if>
|
|
|
+ ]
|
|
|
+ });
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ resizeListTable();/*消除由于有竖向滚动条造成table出现横向滚动条*/
|
|
|
+ $("a").on("click",addLinkVisied);
|
|
|
+</script>
|
|
|
+
|
|
|
+<script type="text/javascript">
|
|
|
+ resizeListWindow1();
|
|
|
+ $(window).resize(function(){
|
|
|
+ resizeListWindow1();
|
|
|
+ });
|
|
|
+</script>
|
|
|
+</body>
|
|
|
+
|
|
|
+</html>
|
|
|
+
|