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> |