335 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			335 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JZYScreen.aspx.cs" Inherits="FineUIPro.Web.HSSE.KqShowScreen.JZYScreen" %>
 | ||
| 
 | ||
| <!DOCTYPE html>
 | ||
| <html lang="en">
 | ||
| 
 | ||
| <head runat="server">
 | ||
|     <meta charset="UTF-8">
 | ||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | ||
|     <title>Document</title>
 | ||
|     <script src="../..//res/lib/flex.js"></script>
 | ||
|     <link rel="stylesheet" href="../../res/css/jzyscreen.css">
 | ||
| </head> 
 | ||
|     <style>
 | ||
|         .header{
 | ||
|             position: relative;
 | ||
|         }
 | ||
|         .b-wrap{
 | ||
|             position: absolute;
 | ||
|             top:6px;
 | ||
|             right:6px;
 | ||
|             font-size: 12px;
 | ||
|             padding:2px 6px;
 | ||
|             border: 1px solid #ffffff;
 | ||
|             text-align: center;
 | ||
|             color:#fff;
 | ||
|         }
 | ||
|     </style>
 | ||
|     <body>
 | ||
|     <div class="wrap">
 | ||
|         <div class="header">
 | ||
|             <h1><%=ProjectName%>现场人员动态看板</h1>
 | ||
|             <div style="position: absolute;top: 0.5rem;right: 0.2rem;color: #ffffff;" id="divTime"></div> 
 | ||
|             <div class="b-wrap">全屏</div>
 | ||
|         </div>
 | ||
|         <div class="conterner">
 | ||
|             <div class="row">
 | ||
|                 <div class="row-1">
 | ||
|                   
 | ||
|                     <div class="label">距离12·31中交目标还剩余(天)</div>
 | ||
|                     <div class="number" id ="divDayRel">0</div>
 | ||
|                     
 | ||
|                      
 | ||
|                 </div>
 | ||
|                 <div class="row-1" style="margin-top: .25rem;">
 | ||
|                     <div class="label">累计安全人工时</div>
 | ||
|                     <div class="number" id ="divSafeTotal">0</div>
 | ||
|                 </div>
 | ||
|                 <div class="row-1" style="margin-top: .25rem;">
 | ||
|                     <div class="label">一周安全人工时</div>
 | ||
|                     <div class="number"id ="divSafeWeek">0</div>
 | ||
|                 </div>
 | ||
| 
 | ||
|                 <div id="rs">
 | ||
| 
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|             <div class="c-row">
 | ||
|                 <div class="table">
 | ||
|                     <div class="table-head">
 | ||
|                         <div class="th" style="width: 20%;">
 | ||
|                             <span>施工单位名称</span>
 | ||
|                         </div>
 | ||
|                         <div class="th" style="width: 20%;">
 | ||
|                             <span>当日总数/系统总数</span>
 | ||
|                         </div>
 | ||
|                         <div class="th" style="width: 60%;">
 | ||
|                             <div class="th-1">特种作业人员</div>
 | ||
|                             <div class="th-2">
 | ||
|                                 <span style="width: 50%;">特岗名称</span>
 | ||
|                                 <span style="width: 25%;">系统登记人数</span>
 | ||
|                                 <span style="width: 25%;">当前在场人数</span>
 | ||
|                             </div>
 | ||
|                         </div>
 | ||
|                     </div>
 | ||
|                     <div class="table-body">
 | ||
|                         <div class="scroll-box">
 | ||
|                             <div class="t" id="divScroller">
 | ||
|                               
 | ||
|                                
 | ||
|                             </div>
 | ||
|                         </div>
 | ||
|                     </div>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| </body>
 | ||
| 
 | ||
| </html>
 | ||
| 
 | ||
| <script src="../../res/lib/echarts.min.js"></script>
 | ||
| <script src="../../res/lib/jquery.js"></script>
 | ||
| <script>
 | ||
|     var projectid = '<%=ProjectId%>'
 | ||
|     var timer = null;
 | ||
|    
 | ||
|     function isScroll() {
 | ||
|         let mainEle = document.querySelector('.table-body')
 | ||
|         let serollEle = document.querySelector('.scroll-box')
 | ||
|         if (serollEle.children[0].children.length < 6) {
 | ||
|             return
 | ||
|         }
 | ||
|         serollEle.appendChild(serollEle.children[0].cloneNode(true))
 | ||
| 
 | ||
|         function Marquee() {
 | ||
|             if (mainEle.offsetHeight + mainEle.scrollTop < serollEle.offsetHeight) {
 | ||
|                 mainEle.scrollTop++
 | ||
|                 console.log(mainEle.offsetHeight, serollEle.offsetHeight)
 | ||
|             } else {
 | ||
|                 serollEle.appendChild(serollEle.children[0].cloneNode(true))
 | ||
|                 serollEle.removeChild(serollEle.children[0])
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         timer = setInterval(Marquee, 90)
 | ||
|         mainEle.onmouseover = function () { clearInterval(timer) }
 | ||
|         mainEle.onmouseout = function () { timer = setInterval(Marquee, 90) }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     var temp=[]
 | ||
|     function createSM(value1) {
 | ||
|         var chartDom = document.getElementById('rs');
 | ||
|         var myChart = echarts.init(chartDom);
 | ||
|         var option;
 | ||
|         
 | ||
|         let leftLabel = ['施工人员       ', '天辰管理人员', '监理管理人员', '业主管理人员', '当前现场人数', '当日最高人数']
 | ||
|         option = {
 | ||
|             grid: {
 | ||
|                 top: 4,
 | ||
|                 left: 4,
 | ||
|                 right: 4,
 | ||
|                 bottom: 4,
 | ||
|                 containLabel: true
 | ||
|             },
 | ||
|             xAxis: {
 | ||
|                 type: 'value',
 | ||
|                 splitLine: {
 | ||
|                     show: false
 | ||
|                 },
 | ||
|                 axisLabel: {
 | ||
|                     show: false,
 | ||
|                 }
 | ||
|             },
 | ||
|             yAxis: [
 | ||
|                 {
 | ||
|                     type: 'category',
 | ||
|                     position: 'left',
 | ||
|                     axisLine: {
 | ||
|                         show: false
 | ||
|                     },
 | ||
|                     axisTick: {
 | ||
|                         show: false
 | ||
|                     },
 | ||
|                     splitLine: {
 | ||
|                         show: false
 | ||
|                     },
 | ||
|                     axisLabel: {
 | ||
|                         color: "#ffffff",
 | ||
|                         fontWeight: "bolder",
 | ||
|                         fontSize: 24,
 | ||
|                         textShadowColor: '#000000', // 设置阴影颜色
 | ||
|                         textShadowBlur: 1, // 设置阴影模糊度
 | ||
|                         textShadowOffsetX: 1, // 设置阴影水平偏移
 | ||
|                         textShadowOffsetY: 1 // 设置阴影垂直偏移
 | ||
|                     },
 | ||
|                     data: leftLabel,
 | ||
| 
 | ||
|                 }, {
 | ||
|                     type: '',
 | ||
|                     position: 'right',
 | ||
|                     axisLine: {
 | ||
|                         show: false
 | ||
|                     },
 | ||
|                     axisTick: {
 | ||
|                         show: false
 | ||
|                     },
 | ||
|                     splitLine: {
 | ||
|                         show: false
 | ||
|                     },
 | ||
|                     axisLabel: {
 | ||
|                         fontFamily: "DIN",
 | ||
|                         color: "#CCCCCC",
 | ||
|                         fontWeight: "bolder",
 | ||
|                         fontSize: 30,
 | ||
|                         textShadowColor: '#000000', // 设置阴影颜色
 | ||
|                         textShadowBlur: 1, // 设置阴影模糊度
 | ||
|                         textShadowOffsetX: 1, // 设置阴影水平偏移
 | ||
|                         textShadowOffsetY: 1 // 设置阴影垂直偏移
 | ||
|                     },
 | ||
|                     data: value1,
 | ||
| 
 | ||
|                 }
 | ||
|             ],
 | ||
|             series: [
 | ||
|                 {
 | ||
|                     name: '人数',
 | ||
|                     type: 'bar',
 | ||
|                     // stack: 'total',
 | ||
|                     barWidth: 30,
 | ||
|                     label: {
 | ||
|                         show: false,
 | ||
|                         fontSize: 30,
 | ||
|                         fontFamily: "DIN",
 | ||
|                         align: "left",
 | ||
| 
 | ||
|                     },
 | ||
|                     itemStyle: {
 | ||
|                         color: "#1e7bc9"
 | ||
|                     },
 | ||
|                     emphasis: {
 | ||
|                         focus: 'series'
 | ||
|                     },
 | ||
|                     data: value1
 | ||
|                 }
 | ||
|             ]
 | ||
|         };
 | ||
| 
 | ||
|         if (temp.length != value1.length || (temp[0] != value1[0] || temp[1] != value1[1] || temp[2] != value1[2] || temp[3] != value1[3] || temp[4] != value1[4] || temp[5] != value1[5])) {
 | ||
|             myChart.clear();
 | ||
|             temp = value1;
 | ||
|             option && myChart.setOption(option);
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     getData();
 | ||
|     function getData() {
 | ||
|         $.ajax({
 | ||
|             url: "JZYScreen.aspx/getData",
 | ||
|             type: "POST",
 | ||
|             contentType: "application/json; charset=utf-8",
 | ||
|             dataType: "json",
 | ||
|             data: JSON.stringify({
 | ||
|                 projectId: projectid
 | ||
|             }),
 | ||
|             success: function (data) {
 | ||
|                 if (data.d != null) {
 | ||
|                     var company = data.d.company;
 | ||
|                     if (company != null) {
 | ||
|                         $("#divScroller").html(data.d.company);
 | ||
|                         //if (timer != null) {
 | ||
|                         //    clearInterval(timer);
 | ||
|                         //}
 | ||
|                         //isScroll();                        
 | ||
|                     }
 | ||
|                     debugger
 | ||
|                     createSM(data.d.num)
 | ||
|                     $("#divSafeTotal").html(data.d.safeTotal);
 | ||
|                     $("#divSafeWeek").html(data.d.safeTotalWeek);
 | ||
| 
 | ||
|                     const now = new Date();
 | ||
|                     const yearEnd = new Date(now.getFullYear(), 11, 31);
 | ||
|                     const diff = yearEnd - now;
 | ||
|                     var  dayRes = diff > 0 ? Math.ceil(diff / (1000 * 60 * 60 * 24)) + 1 : 0;
 | ||
|                     $("#divDayRel").html(dayRes);
 | ||
| 
 | ||
|                     
 | ||
|                 }
 | ||
|             }
 | ||
|         })
 | ||
|     }
 | ||
|     setInterval(function () { //执行任务 
 | ||
|         getData();
 | ||
|     }, 10000); 
 | ||
| 
 | ||
|     setInterval(function () { //执行任务
 | ||
|         var now = new Date();  // 获取当前时间
 | ||
|         var years = now.getFullYear();  // 小时
 | ||
|         var months = now.getMonth()+1;  // 小时
 | ||
|         var days = now.getDate();  // 小时
 | ||
|         var hours = now.getHours();  // 小时
 | ||
|         var minutes = now.getMinutes();  // 分钟
 | ||
|         var seconds = now.getSeconds();  // 秒
 | ||
| 
 | ||
|         // 确保时间总是以两位数显示
 | ||
|         hours = hours < 10 ? '0' + hours : hours;
 | ||
|         minutes = minutes < 10 ? '0' + minutes : minutes;
 | ||
|         seconds = seconds < 10 ? '0' + seconds : seconds;
 | ||
| 
 | ||
|         // 更新时钟显示
 | ||
|         var clock = years + '-' + months+'-'+days+' ' + hours + ':' + minutes + ':' + seconds;
 | ||
|         $("#divTime").html(clock);
 | ||
|        
 | ||
|     }, 1000); 
 | ||
| 
 | ||
|     
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|        $('.b-wrap').on('click', function () {
 | ||
|             if (isFullScreen()) {
 | ||
|                 // 处于全屏
 | ||
|                 exitFullScreen()
 | ||
|             } else {
 | ||
|                 // 未处于全屏
 | ||
|                 requestFullScreen(document.querySelector(".wrap"));
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|         })
 | ||
| 
 | ||
|         function isFullScreen() {
 | ||
|         return !!(document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement);
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     function requestFullScreen(element) {
 | ||
|         if (element.requestFullscreen) {
 | ||
|             element.requestFullscreen();
 | ||
|         } else if (element.mozRequestFullScreen) {
 | ||
|             element.mozRequestFullScreen();
 | ||
|         } else if (element.webkitRequestFullscreen) {
 | ||
|             element.webkitRequestFullscreen();
 | ||
|         } else if (element.msRequestFullscreen) {
 | ||
|             element.msRequestFullscreen();
 | ||
|         }
 | ||
|         $('.b-wrap').text("退出全屏")
 | ||
|     }
 | ||
| 
 | ||
|     // 退出全屏
 | ||
|     function exitFullScreen() {
 | ||
|         if (document.exitFullscreen) {
 | ||
|             document.exitFullscreen();
 | ||
|         } else if (document.mozCancelFullScreen) {
 | ||
|             document.mozCancelFullScreen();
 | ||
|         } else if (document.webkitExitFullscreen) {
 | ||
|             document.webkitExitFullscreen();
 | ||
|         } else if (document.msExitFullscreen) {
 | ||
|             document.msExitFullscreen();
 | ||
|         }
 | ||
|                 $('.b-wrap').text("全屏")
 | ||
|     }
 | ||
| </script> |