327 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			327 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="KqShowScreen.aspx.cs" Inherits="FineUIPro.Web.HSSE.KqShowScreen.KqShowScreen" %>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<!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/kqshowscreen.css">
							 | 
						|||
| 
								 | 
							
								</head>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<body>
							 | 
						|||
| 
								 | 
							
								    <div class="context">
							 | 
						|||
| 
								 | 
							
								        <div class="left site">
							 | 
						|||
| 
								 | 
							
								            <div class="block">
							 | 
						|||
| 
								 | 
							
								                <div class="title">当前现场总人数</div>
							 | 
						|||
| 
								 | 
							
								                <div class="main xc">
							 | 
						|||
| 
								 | 
							
								                    <div class="number" id="divTotal">
							 | 
						|||
| 
								 | 
							
								                        0
							 | 
						|||
| 
								 | 
							
								                    </div>
							 | 
						|||
| 
								 | 
							
								                </div>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="block1 ">
							 | 
						|||
| 
								 | 
							
								                <div class="title">当前公司现场人数</div>
							 | 
						|||
| 
								 | 
							
								                <div class="main gsxc">
							 | 
						|||
| 
								 | 
							
								                    <ul id="ulcom"  >
							 | 
						|||
| 
								 | 
							
								                       
							 | 
						|||
| 
								 | 
							
								                        
							 | 
						|||
| 
								 | 
							
								                    </ul>
							 | 
						|||
| 
								 | 
							
								                </div>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								        </div>
							 | 
						|||
| 
								 | 
							
								        <div class="right site">
							 | 
						|||
| 
								 | 
							
								            <div class="block1">
							 | 
						|||
| 
								 | 
							
								                <div class="top">
							 | 
						|||
| 
								 | 
							
								                    <div class="info">
							 | 
						|||
| 
								 | 
							
								                        <ul id="infoul">
							 | 
						|||
| 
								 | 
							
								                            
							 | 
						|||
| 
								 | 
							
								                        </ul>
							 | 
						|||
| 
								 | 
							
								                    </div>
							 | 
						|||
| 
								 | 
							
								                    <div class="photo">
							 | 
						|||
| 
								 | 
							
								                        <img id="header" src="">
							 | 
						|||
| 
								 | 
							
								                    </div>
							 | 
						|||
| 
								 | 
							
								                </div>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								            <div class="block">
							 | 
						|||
| 
								 | 
							
								                <div class="title">当前现场岗位人数量</div>
							 | 
						|||
| 
								 | 
							
								                <div class="main" id="gwnum">
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                </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%>'
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								    function createGWNUM(name, value1) {
							 | 
						|||
| 
								 | 
							
								        let type = name//['焊工', '电工', '架子工', '木工', '管工', '仪表安装工', '电气安装工', '钢筋工', '起重司机', '钳工', '起重指挥', '混凝土工', '维护电工']
							 | 
						|||
| 
								 | 
							
								        let value = value1// [100, 96, 89, 88, 87, 81, 80, 76, 75, 72, 70, 65, 62, 61]
							 | 
						|||
| 
								 | 
							
								        let opt = {
							 | 
						|||
| 
								 | 
							
								            grid: {
							 | 
						|||
| 
								 | 
							
								                top: 20,
							 | 
						|||
| 
								 | 
							
								                left: 60,
							 | 
						|||
| 
								 | 
							
								                right:60
							 | 
						|||
| 
								 | 
							
								                // bottom: 30
							 | 
						|||
| 
								 | 
							
								            },
							 | 
						|||
| 
								 | 
							
								            xAxis: {
							 | 
						|||
| 
								 | 
							
								                type: 'category',
							 | 
						|||
| 
								 | 
							
								                data: type,
							 | 
						|||
| 
								 | 
							
								                axisLine: {
							 | 
						|||
| 
								 | 
							
								                    lineStyle: {
							 | 
						|||
| 
								 | 
							
								                        color: '#84D7FE'
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                axisTick: {
							 | 
						|||
| 
								 | 
							
								                    show: false
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                axisLabel: {
							 | 
						|||
| 
								 | 
							
								                    interval: 0,      // 坐标轴刻度标签的显示间隔
							 | 
						|||
| 
								 | 
							
								                    rotate: -30        // 标签倾斜的角度
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            },
							 | 
						|||
| 
								 | 
							
								            yAxis: {
							 | 
						|||
| 
								 | 
							
								                type: 'value',
							 | 
						|||
| 
								 | 
							
								                axisLine: {
							 | 
						|||
| 
								 | 
							
								                    lineStyle: {
							 | 
						|||
| 
								 | 
							
								                        color: '#84D7FE'
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                },
							 | 
						|||
| 
								 | 
							
								                splitLine: {
							 | 
						|||
| 
								 | 
							
								                    lineStyle: {
							 | 
						|||
| 
								 | 
							
								                        color: '#2E87AC',
							 | 
						|||
| 
								 | 
							
								                        type: 'dashed'
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            },
							 | 
						|||
| 
								 | 
							
								            dataZoom: [
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    show: true,
							 | 
						|||
| 
								 | 
							
								                    type: 'slider', // 单独滚动条
							 | 
						|||
| 
								 | 
							
								                    filterMode: 'none', // 不过滤数据 - 保证 y 轴数据范围不变
							 | 
						|||
| 
								 | 
							
								                    brushSelect: true,
							 | 
						|||
| 
								 | 
							
								                    bottom: 0,
							 | 
						|||
| 
								 | 
							
								                    height: 10,
							 | 
						|||
| 
								 | 
							
								                    backgroundColor: 'transparent',
							 | 
						|||
| 
								 | 
							
								                    // 选中范围的填充颜色
							 | 
						|||
| 
								 | 
							
								                    fillerColor: 'transparent',
							 | 
						|||
| 
								 | 
							
								                    borderWidth: 0,
							 | 
						|||
| 
								 | 
							
								                    borderColor: 'transparent',
							 | 
						|||
| 
								 | 
							
								                    dataBackground: {
							 | 
						|||
| 
								 | 
							
								                        lineStyle: {
							 | 
						|||
| 
								 | 
							
								                            color: 'transparent'
							 | 
						|||
| 
								 | 
							
								                        },
							 | 
						|||
| 
								 | 
							
								                        areaStyle: {
							 | 
						|||
| 
								 | 
							
								                            color: 'transparent'
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    },
							 | 
						|||
| 
								 | 
							
								                    selectedDataBackground: {
							 | 
						|||
| 
								 | 
							
								                        lineStyle: {
							 | 
						|||
| 
								 | 
							
								                            color: 'transparent'
							 | 
						|||
| 
								 | 
							
								                        },
							 | 
						|||
| 
								 | 
							
								                        areaStyle: {
							 | 
						|||
| 
								 | 
							
								                            color: 'transparent'
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    },
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    startValue: 0,
							 | 
						|||
| 
								 | 
							
								                    endValue: 10,
							 | 
						|||
| 
								 | 
							
								                    xAxisIndex: [0],
							 | 
						|||
| 
								 | 
							
								                    showDetail: false,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    handleSize: '0%',
							 | 
						|||
| 
								 | 
							
								                    // 移动手柄尺寸高度
							 | 
						|||
| 
								 | 
							
								                    // 测试发现手柄颜色和边框颜色会出现 偏差,所有设置手柄高度为0, 添加边框高度。由边框撑起高度
							 | 
						|||
| 
								 | 
							
								                    moveHandleSize: 0, // 设置拖动手柄高度为0,只由边框负责高度展示
							 | 
						|||
| 
								 | 
							
								                    // 不展示拖动手柄图标
							 | 
						|||
| 
								 | 
							
								                    moveHandleIcon: 'none',
							 | 
						|||
| 
								 | 
							
								                    moveHandleStyle: {
							 | 
						|||
| 
								 | 
							
								                        // borderColor: systemTheme === 'light' ? '#E4E6E7' : '#5d6177',
							 | 
						|||
| 
								 | 
							
								                        borderColor:'#5d6177',
							 | 
						|||
| 
								 | 
							
								                        borderWidth: 10, // 设置边框高度
							 | 
						|||
| 
								 | 
							
								                        borderType: 'solid',
							 | 
						|||
| 
								 | 
							
								                        borderCap: 'round',
							 | 
						|||
| 
								 | 
							
								                        // 保证拖动手柄右边框结尾有圆角
							 | 
						|||
| 
								 | 
							
								                        borderJoin: 'round'
							 | 
						|||
| 
								 | 
							
								                    },
							 | 
						|||
| 
								 | 
							
								                    // 拖动高亮时设置
							 | 
						|||
| 
								 | 
							
								                    emphasis: {
							 | 
						|||
| 
								 | 
							
								                        moveHandleStyle: {
							 | 
						|||
| 
								 | 
							
								                            // borderColor: systemTheme === 'light' ? '#E4E6E7' : '#5d6177',
							 | 
						|||
| 
								 | 
							
								                            borderColor: '#5d6177',
							 | 
						|||
| 
								 | 
							
								                            borderWidth: 10,
							 | 
						|||
| 
								 | 
							
								                            borderType: 'solid',
							 | 
						|||
| 
								 | 
							
								                            borderCap: 'round'
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            ],
							 | 
						|||
| 
								 | 
							
								            series: [
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    name: '',
							 | 
						|||
| 
								 | 
							
								                    data: value,
							 | 
						|||
| 
								 | 
							
								                    type: 'bar',
							 | 
						|||
| 
								 | 
							
								                    label: {
							 | 
						|||
| 
								 | 
							
								                        show: true,
							 | 
						|||
| 
								 | 
							
								                        color: '#ffffff',
							 | 
						|||
| 
								 | 
							
								                        position: 'top',
							 | 
						|||
| 
								 | 
							
								                    },
							 | 
						|||
| 
								 | 
							
								                    barWidth: 16,
							 | 
						|||
| 
								 | 
							
								                    itemStyle: {
							 | 
						|||
| 
								 | 
							
								                        normal: {
							 | 
						|||
| 
								 | 
							
								                            color:function(d){return "#"+Math.floor(Math.random()*(256*256*256-1) ).toString(16);}
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            ]
							 | 
						|||
| 
								 | 
							
								        };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        var myEchart = echarts.init(document.getElementById('gwnum'));
							 | 
						|||
| 
								 | 
							
								        myEchart.setOption(opt);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								    getData();
							 | 
						|||
| 
								 | 
							
								    function getData() { 
							 | 
						|||
| 
								 | 
							
								        $.ajax({
							 | 
						|||
| 
								 | 
							
								            url: "KqShowScreen.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 workPost = data.d.workPost;                     
							 | 
						|||
| 
								 | 
							
								                    if (workPost != null) { 
							 | 
						|||
| 
								 | 
							
								                        createGWNUM(workPost.name, workPost.value)
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var company = data.d.company;
							 | 
						|||
| 
								 | 
							
								                    if (company != null) {
							 | 
						|||
| 
								 | 
							
								                        var chtml = '';
							 | 
						|||
| 
								 | 
							
								                        company.forEach(function (item, index, arr) {
							 | 
						|||
| 
								 | 
							
								                            chtml += ' <li><span>' + item.name + '</span><span>' + item.value +'</span></li>'; 
							 | 
						|||
| 
								 | 
							
								                        })
							 | 
						|||
| 
								 | 
							
								                        $("#ulcom").html(chtml)  
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    var person = data.d.person;
							 | 
						|||
| 
								 | 
							
								                    if (person != null) {
							 | 
						|||
| 
								 | 
							
								                        var phtml = '<li><span>所属单位</span><span>' + person.UnitName +'</span></li>'+
							 | 
						|||
| 
								 | 
							
								                            '<li ><span>姓名</span><span>' +   person.PersonName +'</span></li>' +
							 | 
						|||
| 
								 | 
							
								                            '<li><span>岗位</span><span>' + person.WorkPostName+'</span></li>' +
							 | 
						|||
| 
								 | 
							
								                            '<li><span>班组</span><span>' + person.teamGroupName +'</span></li>' +
							 | 
						|||
| 
								 | 
							
								                            '<li><span>' + person.inOut+'时间</span><span>' + person.ChangeTime+'</span></li>';
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        $("#infoul").html(phtml)  
							 | 
						|||
| 
								 | 
							
								                        $("#header").attr('src',person.PhotoUrl);  
							 | 
						|||
| 
								 | 
							
								                        
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                  
							 | 
						|||
| 
								 | 
							
								                    $("#divTotal").html(data.d.total)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                   
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                
							 | 
						|||
| 
								 | 
							
								             
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        })
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // 设定默认值
							 | 
						|||
| 
								 | 
							
								    var websock = null;
							 | 
						|||
| 
								 | 
							
								    var cishu = 0;
							 | 
						|||
| 
								 | 
							
								    // 每10分钟 通过 websocket 向服务器发送一次心跳 证明客户端没有离线 依然在线可以正常接受消息
							 | 
						|||
| 
								 | 
							
								    setInterval(websocketsend, 20000);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    //initWebsocket();
							 | 
						|||
| 
								 | 
							
								    function initWebsocket() {
							 | 
						|||
| 
								 | 
							
								        /*
							 | 
						|||
| 
								 | 
							
								        * 初始化 websock
							 | 
						|||
| 
								 | 
							
								        * 连接 服务器地址
							 | 
						|||
| 
								 | 
							
								        * 并绑定 websock 四个事件方法
							 | 
						|||
| 
								 | 
							
								        */
							 | 
						|||
| 
								 | 
							
								        websock = new WebSocket('wss://wzgl.hfnbd.com:1000');
							 | 
						|||
| 
								 | 
							
								        // 接收服务器返回的数据
							 | 
						|||
| 
								 | 
							
								        websock.onmessage = this.websocketonmessage;
							 | 
						|||
| 
								 | 
							
								        // 连接建立时触发
							 | 
						|||
| 
								 | 
							
								        websock.onopen = this.websocketonopen;
							 | 
						|||
| 
								 | 
							
								        // 连接中发生异常
							 | 
						|||
| 
								 | 
							
								        websock.onerror = this.websocketonerror;
							 | 
						|||
| 
								 | 
							
								        // 连接关闭时触发
							 | 
						|||
| 
								 | 
							
								        websock.onclose = this.websocketclose;
							 | 
						|||
| 
								 | 
							
								        cishu = 0;
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								    function websocketonopen(){ 
							 | 
						|||
| 
								 | 
							
								         
							 | 
						|||
| 
								 | 
							
								        websocketsend();
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    function websocketonerror() {
							 | 
						|||
| 
								 | 
							
								        /*
							 | 
						|||
| 
								 | 
							
								        * websocket 连接建立失败 执行的方法
							 | 
						|||
| 
								 | 
							
								        * 注:我这里加了个判断,如果联系建立失败就在连接几次
							 | 
						|||
| 
								 | 
							
								        */
							 | 
						|||
| 
								 | 
							
								        if (cishu < 5) {
							 | 
						|||
| 
								 | 
							
								            cishu = cishu + 1;
							 | 
						|||
| 
								 | 
							
								            initWebsocket();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    function websocketsend() {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /*
							 | 
						|||
| 
								 | 
							
								        * websocket 数据发送 通过 websock.send() 方法向服务器发送数据
							 | 
						|||
| 
								 | 
							
								        * 注:这里随便发哈,主要作用就是通过这个动作,让客户端与服务端建立联系
							 | 
						|||
| 
								 | 
							
								        */
							 | 
						|||
| 
								 | 
							
								        let actions = {
							 | 
						|||
| 
								 | 
							
								            "projectid": projectid
							 | 
						|||
| 
								 | 
							
								        };
							 | 
						|||
| 
								 | 
							
								        websock.send(JSON.stringify(actions));
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    function websocketclose(e) {
							 | 
						|||
| 
								 | 
							
								        /*
							 | 
						|||
| 
								 | 
							
								        * websocket 连接关闭 执行的方法
							 | 
						|||
| 
								 | 
							
								        */
							 | 
						|||
| 
								 | 
							
								        console.log('断开连接', e);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    function websocketonmessage(e) {
							 | 
						|||
| 
								 | 
							
								        /*
							 | 
						|||
| 
								 | 
							
								        * websocket 数据接收 执行的方法
							 | 
						|||
| 
								 | 
							
								        * 注:服务器通过 websocke 向客户端发送数据时,这里的方法就会自动触发啦
							 | 
						|||
| 
								 | 
							
								        */
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        if ("newinout" == e.data);
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            getData();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    setInterval(function () { //执行任务 
							 | 
						|||
| 
								 | 
							
								        getData();
							 | 
						|||
| 
								 | 
							
								    }, 2000); 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								</script>
							 |