Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
9ce8d6ac89
|
|
@ -1,5 +1,6 @@
|
|||
package com.bonus.bmw.homePage.controller;
|
||||
|
||||
import com.bonus.bmw.homePage.entity.SevenNotAttWorkerBean;
|
||||
import com.bonus.bmw.homePage.entity.WorkerMsgDetailBean;
|
||||
import com.bonus.bmw.homePage.service.HomeSubPageService;
|
||||
import com.bonus.common.core.table.PageTableRequest;
|
||||
|
|
@ -107,4 +108,12 @@ public class HomeSubPageController {
|
|||
return service.getWorkerMsgDetail(bean);
|
||||
}
|
||||
|
||||
|
||||
@Log(title = "首页-七天未打卡详情页面", businessType = BusinessType.SELECT)
|
||||
@PostMapping("getSevenNotAttWorker")
|
||||
// @RequiresPermissions("sys:collectReturn:query")
|
||||
public PageTableResponse getSevenNotAttWorker(PageTableRequest request){
|
||||
return service.getSevenNotAttWorker(request);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,4 +90,10 @@ public interface HomePageDao {
|
|||
void insertProRankCache(List<ProMsgBean> rankList);
|
||||
|
||||
List<ProMsgBean> getProRankCache(ProMsgBean o);
|
||||
|
||||
/**
|
||||
* 七天未打卡
|
||||
* @return
|
||||
*/
|
||||
int getSevenDayNotAttWorker(@Param("subComId") String subComId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
package com.bonus.bmw.homePage.dao;
|
||||
|
||||
import com.bonus.bmw.homePage.entity.BuildProBean;
|
||||
import com.bonus.bmw.homePage.entity.CertificateReadBean;
|
||||
import com.bonus.bmw.homePage.entity.CollectBean;
|
||||
import com.bonus.bmw.homePage.entity.WorkerMsgDetailBean;
|
||||
import com.bonus.bmw.homePage.entity.*;
|
||||
import com.bonus.bmw.person.entity.ContractBean;
|
||||
import com.bonus.bmw.person.entity.MapBean;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
|
@ -44,4 +41,11 @@ public interface HomeSubPageDao {
|
|||
* @return
|
||||
*/
|
||||
List<CollectBean> selectCollect(CollectBean bean);
|
||||
|
||||
/**
|
||||
* 七天未打卡
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
List<SevenNotAttWorkerBean> getSevenNotAttWorker(@Param("params") Map<String, Object> params);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,4 +172,6 @@ public class HomePageBean {
|
|||
private String proGeneralName;
|
||||
@Excel(name = "专业工程数量")
|
||||
private String proNum;
|
||||
//七天未打卡
|
||||
private int sevenDayNotAttWorker;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,82 @@
|
|||
package com.bonus.bmw.homePage.entity;
|
||||
|
||||
import com.bonus.bmw.getplan.entity.InfDayPlanFillContentBean;
|
||||
import com.bonus.bmw.person.entity.ContractBean;
|
||||
import com.bonus.bmw.team.entity.LightStatusBean;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 在建 bean
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ToString
|
||||
public class SevenNotAttWorkerBean {
|
||||
|
||||
/**
|
||||
* 工程id
|
||||
*/
|
||||
private Integer proId;
|
||||
|
||||
/**
|
||||
* 工程名
|
||||
*/
|
||||
private String proName;
|
||||
|
||||
/**
|
||||
* 分包单位id
|
||||
*/
|
||||
private Integer subId;
|
||||
|
||||
/**
|
||||
* 分包单位名称
|
||||
*/
|
||||
private String subName;
|
||||
|
||||
/**
|
||||
* 班组id
|
||||
*/
|
||||
private Integer teamId;
|
||||
|
||||
/**
|
||||
* 班组name
|
||||
*/
|
||||
private String teamName;
|
||||
|
||||
/**
|
||||
* 人员姓名
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 身份证
|
||||
*/
|
||||
private String idNumber;
|
||||
|
||||
/**
|
||||
* 岗位id
|
||||
*/
|
||||
private String postId;
|
||||
|
||||
/**
|
||||
* 岗位
|
||||
*/
|
||||
private String postName;
|
||||
|
||||
/**
|
||||
* 入场时间
|
||||
*/
|
||||
private String einTime;
|
||||
|
||||
/**
|
||||
* 最新打卡时间
|
||||
*/
|
||||
private String lastClockDay;
|
||||
|
||||
}
|
||||
|
|
@ -47,11 +47,14 @@ public class HomePageServiceImpl implements HomePageService {
|
|||
@Override
|
||||
public HomePageBean getDataOverview(HomePageBean o) {
|
||||
List<HomePageBean> list = dao.getHomeCacheData(o);
|
||||
//七天未打卡 20260205
|
||||
HomePageBean homePageBean = new HomePageBean();
|
||||
if (list.size() > 0) {
|
||||
int num = dao.getSevenDayNotAttWorker(o.getSubComId());
|
||||
if (!list.isEmpty()) {
|
||||
homePageBean.setUpdateTime(list.get(0).getUpdateTime());
|
||||
if (list.size() == 1) {
|
||||
homePageBean = list.get(0);
|
||||
homePageBean.setSevenDayNotAttWorker(num);
|
||||
} else {
|
||||
//总工程数
|
||||
Integer proGeneralNum = dao.getProGeneralNum(o);
|
||||
|
|
@ -98,6 +101,7 @@ public class HomePageServiceImpl implements HomePageService {
|
|||
homePageBean.setMediumRiskNum(mediumRiskNum);
|
||||
homePageBean.setLowRiskNum(lowRiskNum);
|
||||
homePageBean.setPlanAttNum(planAttNum);
|
||||
homePageBean.setSevenDayNotAttWorker(num);
|
||||
}
|
||||
}
|
||||
return homePageBean;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.bonus.bmw.homePage.service;
|
||||
|
||||
import com.bonus.bmw.homePage.entity.SevenNotAttWorkerBean;
|
||||
import com.bonus.bmw.homePage.entity.WorkerMsgDetailBean;
|
||||
import com.bonus.common.core.table.PageTableRequest;
|
||||
import com.bonus.common.core.table.PageTableResponse;
|
||||
|
|
@ -17,4 +18,6 @@ public interface HomeSubPageService {
|
|||
PageTableResponse getDayPlanMsg(PageTableRequest request);
|
||||
|
||||
WorkerMsgDetailBean getWorkerMsgDetail(WorkerMsgDetailBean bean);
|
||||
|
||||
PageTableResponse getSevenNotAttWorker(PageTableRequest request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,7 @@ import cn.hutool.core.date.DateUtil;
|
|||
import com.bonus.bmw.getplan.entity.InfDayPlanFillContentBean;
|
||||
import com.bonus.bmw.getplan.service.GetPlanInnerService;
|
||||
import com.bonus.bmw.homePage.dao.HomeSubPageDao;
|
||||
import com.bonus.bmw.homePage.entity.BuildProBean;
|
||||
import com.bonus.bmw.homePage.entity.CertificateReadBean;
|
||||
import com.bonus.bmw.homePage.entity.CollectBean;
|
||||
import com.bonus.bmw.homePage.entity.WorkerMsgDetailBean;
|
||||
import com.bonus.bmw.homePage.entity.*;
|
||||
import com.bonus.bmw.person.entity.ContractBean;
|
||||
import com.bonus.bmw.person.entity.MapBean;
|
||||
import com.bonus.bmw.planData.entity.InDayPlanPersonBean;
|
||||
|
|
@ -341,6 +338,47 @@ public class HomeSubPageServiceImpl implements HomeSubPageService {
|
|||
return o;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageTableResponse getSevenNotAttWorker(PageTableRequest request) {
|
||||
try{
|
||||
Map<String, Object> params = request.getParams();
|
||||
// String proName = (String) params.get("proName");
|
||||
List<SevenNotAttWorkerBean> list = dao.getSevenNotAttWorker(params);
|
||||
return new PageTableHandler(new PageTableHandler.CountHandler() {
|
||||
@Override
|
||||
public int count(PageTableRequest request1) {
|
||||
return list.size();
|
||||
}
|
||||
}, new PageTableHandler.ListHandler() {
|
||||
@Override
|
||||
public List<SevenNotAttWorkerBean> list(PageTableRequest request1) {
|
||||
List<SevenNotAttWorkerBean> beanList;
|
||||
Integer offset = request.getOffset();
|
||||
Integer limit = request.getLimit();
|
||||
if ((offset + limit) < list.size()) {
|
||||
beanList = list.subList(offset, offset + limit);
|
||||
} else {
|
||||
beanList = list.subList(offset, list.size());
|
||||
}
|
||||
return beanList;
|
||||
}
|
||||
}).handle(request);
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage(),e);
|
||||
return new PageTableHandler(new PageTableHandler.CountHandler() {
|
||||
@Override
|
||||
public int count(PageTableRequest request1) {
|
||||
return 0;
|
||||
}
|
||||
}, new PageTableHandler.ListHandler() {
|
||||
@Override
|
||||
public List<SevenNotAttWorkerBean> list(PageTableRequest request1) {
|
||||
return null;
|
||||
}
|
||||
}).handle(request);
|
||||
}
|
||||
}
|
||||
|
||||
public List<PlanWorkerBean> collectPlan(Map<String, Object> params, List<PlanWorkerBean> list){
|
||||
if (StringUtils.isNotEmpty((String) params.get("userId"))) {
|
||||
List<CollectBean> listCollect = Optional.ofNullable(dao.selectCollect(
|
||||
|
|
|
|||
|
|
@ -623,4 +623,31 @@
|
|||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
<select id="getSevenDayNotAttWorker" resultType="int">
|
||||
SELECT
|
||||
COUNT(DISTINCT w.id_number) AS not_clocked_in_7_days_count
|
||||
FROM
|
||||
(
|
||||
-- 步骤1:筛选出至少7天前已入场的人员
|
||||
SELECT DISTINCT
|
||||
id_number
|
||||
FROM
|
||||
bm_worker_ein_history a
|
||||
LEFT JOIN bm_project bp ON bp.id = a.project_id
|
||||
WHERE
|
||||
ein_time <= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
||||
AND exit_time IS NULL
|
||||
AND exit_status = - 1
|
||||
<if test="subComId != null and subComId != '' ">
|
||||
AND bp.project_general_id = #{subComId}
|
||||
</if>
|
||||
) w
|
||||
LEFT JOIN (
|
||||
-- 步骤2:找出近7天内有打卡的人员
|
||||
SELECT DISTINCT ID_NUMBER FROM fc_face_contrast WHERE CURRENT_DAY >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURRENT_DAY <= CURDATE()) c ON w.id_number = c.ID_NUMBER
|
||||
WHERE
|
||||
c.ID_NUMBER IS NULL;
|
||||
-- 近7天内无打卡记录
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -479,4 +479,34 @@
|
|||
and is_active = 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
<select id="getSevenNotAttWorker" resultType="com.bonus.bmw.homePage.entity.SevenNotAttWorkerBean">
|
||||
SELECT
|
||||
w.id_number,bw.name,bp.`name` as proName,bs.sub_name,bst.team_name,w.ein_time,
|
||||
MAX(fc.CURRENT_DAY) AS last_clock_day
|
||||
FROM (
|
||||
SELECT DISTINCT id_number,project_id,sub_id,team_id,ein_time
|
||||
FROM bm_worker_ein_history
|
||||
WHERE ein_time <= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
||||
AND exit_time IS NULL
|
||||
AND exit_status = - 1
|
||||
) w
|
||||
LEFT JOIN fc_face_contrast fc
|
||||
ON w.id_number = fc.ID_NUMBER
|
||||
LEFT JOIN bm_project bp ON bp.id = w.project_id
|
||||
LEFT JOIN bm_subcontractor bs ON bs.id = w.sub_id
|
||||
LEFT JOIN bm_sub_team bst ON bst.id = w.TEAM_ID
|
||||
LEFT JOIN bm_worker bw ON bw.id_number = w.id_number
|
||||
<where >
|
||||
<if test="params.subComId != null and params.subComId != '' ">
|
||||
AND bp.project_general_id = #{params.subComId}
|
||||
</if>
|
||||
<if test="params.proName != null and params.proName != '' ">
|
||||
AND bp.name = #{params.proName}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY w.id_number
|
||||
HAVING
|
||||
(MAX(fc.CURRENT_DAY) IS NULL
|
||||
OR MAX(fc.CURRENT_DAY) < DATE_SUB(CURDATE(), INTERVAL 7 DAY))
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -304,7 +304,7 @@ html {
|
|||
background-size: 100%;
|
||||
background-position: 10%;
|
||||
}
|
||||
#planPerNum>div:nth-child(1){
|
||||
#sevenDayNotAtt>div:nth-child(1){
|
||||
width: 35%;
|
||||
height: 100%;
|
||||
background-image: url("../../../img/work/indexScreen/planPerNum.png");
|
||||
|
|
@ -765,4 +765,4 @@ html {
|
|||
font-size: 15px;
|
||||
text-align: center;
|
||||
margin-top: 5%;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,4 +65,4 @@ function isWeakPassword(password) {
|
|||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,126 @@
|
|||
let addLoadingMsg;
|
||||
var example = null;
|
||||
var pers = null;
|
||||
var layer;
|
||||
var form;
|
||||
var subComId = localStorage.getItem('subComIds');
|
||||
layui.use(['layer', 'form'], function () {
|
||||
layer = layui.layer;
|
||||
form = layui.form;
|
||||
init();
|
||||
pers = checkPermission();
|
||||
$("#searchBt").click(function () {
|
||||
example.ajax.reload();
|
||||
});
|
||||
$("#resetBt").click(function () {
|
||||
$("#proName").val("");
|
||||
form.render();
|
||||
example.ajax.reload();
|
||||
});
|
||||
});
|
||||
|
||||
//数据加载
|
||||
function init() {
|
||||
example =
|
||||
$('#dt-table').DataTable({
|
||||
"sort": false,
|
||||
"searching": false,
|
||||
"processing": true, //加载数据时显示进度状态
|
||||
"serverSide": true,
|
||||
//表头固定
|
||||
"fixedHeader": true,
|
||||
"scrollX": "500px",
|
||||
"scrollY": "650px",
|
||||
"scrollCollapse": true,
|
||||
"language": {
|
||||
"url": ctxPath + "/js/plugin/datatables/Chinese.lang"
|
||||
},
|
||||
"ajax": {
|
||||
"url": ctxPath + "/homeSubPage/getSevenNotAttWorker",
|
||||
"type": "post",
|
||||
"data": function (d) {
|
||||
d.proName = $("#proName").val();
|
||||
d.subComId = subComId;
|
||||
},
|
||||
"error": function (xhr, textStatus, errorThrown) {
|
||||
var msg = xhr.responseText;
|
||||
console.log(msg);
|
||||
var response = JSON.parse(msg);
|
||||
var code = response.code;
|
||||
var message = response.message;
|
||||
if (code == 400) {
|
||||
layer.msg(message);
|
||||
} else if (code == 401) {
|
||||
localStorage.removeItem("smz-token");
|
||||
layer.msg("token过期,请先登录", {shift: -1, time: 1000}, function () {
|
||||
location.href = ctxPath + '/login.html';
|
||||
});
|
||||
} else if (code == 403) {
|
||||
console.log("未授权:" + message);
|
||||
layer.msg('未授权');
|
||||
} else if (code == 500) {
|
||||
console.log('系统错误:' + message);
|
||||
}
|
||||
}
|
||||
},
|
||||
"drawCallback": function() {
|
||||
// alert( '表格重绘了' );
|
||||
var thisDataTable = $('#dt-table').DataTable();
|
||||
$(".pagination").append("<li>" +
|
||||
"<a class='paginate_button' style='padding:4px;' href='#' tabindex='0'>到 <input style='margin:0px;width:40px;' id='changePage'> 页</a>" +
|
||||
"<a class='paginate_button' style='margin-bottom:1px' href='#' tabindex='0' id='dataTable-btn'>确认</a></li>");
|
||||
//点击按钮跳转指定页数
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
thisDataTable.page(redirectpage).draw( 'page' );
|
||||
});
|
||||
//敲击回车键跳转指定页数
|
||||
$("#changePage").keypress(function (e) {
|
||||
if(event.keyCode==13){
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
thisDataTable.page(redirectpage).draw( 'page' );
|
||||
}
|
||||
});
|
||||
},
|
||||
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
|
||||
"columns": [
|
||||
{
|
||||
width: '4%',
|
||||
data: function (row, type, set, meta) {
|
||||
var c = meta.settings._iDisplayStart + meta.row + 1;
|
||||
return c;
|
||||
}
|
||||
},
|
||||
{"data": "name", "defaultContent": "",},
|
||||
{"data": "idNumber", "defaultContent": "",},
|
||||
{"data": "proName", "defaultContent": "",},
|
||||
{"data": "subName", "defaultContent": "",},
|
||||
{"data": "teamName", "defaultContent": "",},
|
||||
{"data": "einTime", "defaultContent": "",},
|
||||
{"data": "lastClockDay", "defaultContent": "",},
|
||||
],
|
||||
"order": [[0, "desc"], [1, "asc"]] //在栏目列上显示排序功能
|
||||
});
|
||||
}
|
||||
|
||||
//导出
|
||||
function exportData() {
|
||||
var proGeneralName = $("#proGeneralName").val();
|
||||
window.location.href = ctxPath + "/homePage/exportData?token=" + token
|
||||
+ "&proGeneralName=" + proGeneralName
|
||||
}
|
||||
|
||||
//刷新页面
|
||||
function reloading() {
|
||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||
parent.layer.close(index); //再执行关闭
|
||||
window.parent.location.reload();
|
||||
}
|
||||
|
|
@ -194,6 +194,7 @@ function dataOverview(subCompanyId) {
|
|||
$('#mediumRisk').text(data.data.mediumRiskNum);
|
||||
$('#lowRisk').text(data.data.lowRiskNum);
|
||||
$('#planNum').text(data.data.planPersonNum);
|
||||
$('#sevenDayNotAttNum').text(data.data.sevenDayNotAttWorker)
|
||||
$('#refreshTime').text(data.data.updateTime == null ? '数据更新时间:--' : '数据更新时间:' + data.data.updateTime);
|
||||
closeLayer();
|
||||
if (flag) {
|
||||
|
|
@ -786,6 +787,21 @@ function planPerClick(type, value) {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
//七天未打卡人数
|
||||
function sevenDayNotAttClick() {
|
||||
var height = '99%';
|
||||
var width = '75%';
|
||||
var index = layer.open({
|
||||
title: ['七天未打卡详情', 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'],
|
||||
type: 2,
|
||||
content: 'child/SevenDayNotAtt.html',
|
||||
area: [width, height],
|
||||
scrollbar: false, // 暂时屏蔽浏览器滚动条
|
||||
maxmin: false
|
||||
});
|
||||
}
|
||||
|
||||
//电压ECharts
|
||||
function proInformationLevelECharts(listRank) {
|
||||
//先销毁
|
||||
|
|
@ -1921,4 +1937,4 @@ function divisionOperation(a, b) {
|
|||
return (a / b * 100).toFixed(2);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,78 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>七天未打卡</title>
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/bootstrap.min.css">
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/dataTables.bootstrap.min.css">
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="../../../../layui/css/layui.css">
|
||||
<link rel="stylesheet" type="text/css" media="screen" href="../../../../css/work/ProjectManage/proManager.css">
|
||||
<style>
|
||||
.layui-form input[type=checkbox], .layui-form input[type=radio], .layui-form select {
|
||||
display: none !important ;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||
<header style="height: 100%">
|
||||
<div align="left">
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td>
|
||||
<form class="form-inline layui-form" onsubmit="return false">
|
||||
<div class="form-group">
|
||||
<div class="layui-inline" >
|
||||
<div class="layui-input-inline" style="display: flex;align-items: center;">
|
||||
<input type="text" id="proName" name="proName" placeholder="输入工程名称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<button id="searchBt" class="layui-btn layui-btn-sm">
|
||||
查询
|
||||
</button>
|
||||
<button id="resetBt" class="layui-btn layui-btn-sm">
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div>
|
||||
<div class="widget-body no-padding">
|
||||
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
<th>姓名</th>
|
||||
<th>身份证</th>
|
||||
<th>工程名</th>
|
||||
<th>分包名字</th>
|
||||
<th>班组名字</th>
|
||||
<th>入场时间</th>
|
||||
<th>最后打卡时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<script type="text/javascript" src="../../../../js/libs/jquery-3.6.0.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/jq.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/plugin/datatables/jquery.dataTables.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/plugin/datatables/dataTables.bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/my/permission.js"></script>
|
||||
<script type="text/javascript" src="../../../../layui/layui.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/publicJs.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/select.js" ></script>
|
||||
<script type="text/javascript" src="../../../../js/dict.js"></script>
|
||||
<script type="text/javascript" src="../../../../js/work/indexScreen/child/SevenDayNotAtt.js"></script>
|
||||
|
|
@ -81,6 +81,11 @@
|
|||
<div id="attPersonNum">--</div>
|
||||
<div>今日打卡</div>
|
||||
</div>
|
||||
<div id="sevenDayNotAtt" onclick="sevenDayNotAttClick('sevenDayNotAtt')">
|
||||
<div></div>
|
||||
<div id="sevenDayNotAttNum">--</div>
|
||||
<div>七天未打卡人数</div>
|
||||
</div>
|
||||
<!-- <div id="planPerNum" onclick="planPerClick('planPerNum', 1)">
|
||||
<div></div>
|
||||
<div id="planPersonNum">--</div>
|
||||
|
|
@ -351,4 +356,4 @@
|
|||
<script type="text/javascript" src="../../../js/select.js"></script>
|
||||
<script type="text/javascript" src="../../../js/libs/echarts.js"></script>
|
||||
<script type="text/javascript" src="../../../js/work/indexScreen/indexScreen.js"
|
||||
defer="defer"></script>
|
||||
defer="defer"></script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue