<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0">
<title>学院</title>
<link rel="icon" type="image/x-icon" href="/card/static/favicon.ico">
<link rel="stylesheet" type="text/css" href="./index.css">
<script type="text/javascript" src="./websocket.js"></script>
</head>
<body>
<div class="container">
<div class="container-cont">
<div class="header">
<img class="logo" src="./image/logo.png" alt="">
<div class="header-date">
<div class="date-time" id="date-time"></div>
<div class="date-right">
<div class="date-date" id="date-date"></div>
<div class="date-week" id="date-week"></div>
</div>
</div>
</div>
<div class="content-box">
<div class="cont1" id="cont1">你好</div>
<div class="cont2" id="cont2">欢迎您成为我校2023级</div>
<div class="cont34" id="cont34">
<div class="cont3" id="cont3"></div>
<div class="cont4">新生</div>
</div>
<div class="main-cont-box">
<div class="role left-top"></div>
<div class="role right-top"></div>
<div class="role left-bottom"></div>
<div class="role right-bottom"></div>
<div class="cont-box" id="cont-box">
<div class="cont" id="cont">
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
var lockReconnect = false;
var faceInfoObj = { personName: '', deptName: ''}
var personInfoObj = {}
var indexId = 0
window.onload = function(){
setInterval(() => {
document.getElementById('cont-box').scrollTop++
}, 10);
createWebSocket()
}
function showDateTime() {
var date = new Date()
var y = date.getFullYear()
var M = formatNum(date.getMonth() + 1)
var d = formatNum(date.getDate())
var h = formatNum(date.getHours())
var m = formatNum(date.getMinutes())
var s = formatNum(date.getSeconds())
var w = date.getDay()
var week = ['日', '一', '二', '三', '四', '五', '六']
document.getElementById('date-time').innerHTML = `${h}:${m}:${s}`
document.getElementById('date-date').innerHTML = `${y}-${M}-${d}`
document.getElementById('date-week').innerHTML = `星期${week[w]}`
}
function formatNum(m) {
return m < 10 ? `0${m}` : m
}
function createWebSocket() {
try {
if ('WebSocket' in window) {
var protocol = window.location.protocol;
var url = window.location.host + "/evo-websocket/evo-face/websocket?keepalive_backend=websocket_evo_face_backend"
if (protocol === 'http:') {
window.webSocket = new WebSocket("ws://" + url);
} else if (protocol === 'https:') {
window.webSocket = new WebSocket("wss://" + url);
}
websocketInit()
} else {
Message.error('你的浏览器不支持websocket,请切换浏览器。');
}
} catch (e) {
websocketReconnect()
}
}
var timeId = null;
function websocketInit() {
webSocket.onopen = function() {
console.log("webSocket连接成功");
webSocket.send('faceNew');
timeId = setInterval(() => {
webSocket.send('faceNew');
}, 30000)
};
webSocket.onclose = function(e) {
console.log("webSocket连接关闭");
websocketReconnect()
};
webSocket.onerror = function() {
console.log("WebSocket连接发生错误");
};
webSocket.onmessage = function (event) {
console.log('event.data = ', JSON.parse(event.data))
var data = JSON.parse(event.data)
if (data.chnName === 'faceNew') {
faceInfoObj = data.msg
getFacePerson()
getPersonInfo()
}
}
window.onbeforeunload = function() {
webSocket.close();
}
}
function websocketReconnect() {
if (lockReconnect) {
return;
}
lockReconnect = true;
timer && clearTimeout(timer);
var timer = setTimeout(function() {
createWebSocket()
lockReconnect = false;
}, 3000);
}
function getPersonInfo() {
document.getElementById('cont1').innerHTML = `${faceInfoObj.personName},你好`
document.getElementById('cont3').innerHTML = `${faceInfoObj.parentDeptName}${faceInfoObj.deptName} `
}
function getFacePerson() {
var contitembox = document.getElementsByClassName('cont-item-box')
var contitembox_num = contitembox.length
if (contitembox_num === 0) {
var index = contitembox_num * 4 + 1
index = index < 10 ? `0${index}` : index
el =
`<div class="cont-item">
<div class="item-label">${index}</div>
<div class="item-value">欢迎${faceInfoObj.parentDeptName}${faceInfoObj.personName}同学</div>
</div>`
var div = document.createElement('div')
div.setAttribute('class', "cont-item-box")
div.innerHTML = el
document.getElementById('cont').appendChild(div)
return
} else {
var last_contitembox = contitembox[contitembox_num - 1]
var last_contitembox_children = last_contitembox.children
var last_contitembox_children_index = last_contitembox_children.length
var el = ''
if (last_contitembox_children_index < 4) {
var index = (contitembox_num - 1) * 4 + last_contitembox_children_index + 1
index = index < 10 ? `0${index}` : index
el =
`
<div class="item-label">${index}</div>
<div class="item-value">欢迎${faceInfoObj.parentDeptName}${faceInfoObj.personName}同学</div>
`
var div = document.createElement('div')
div.setAttribute('class', "cont-item")
div.innerHTML = el
last_contitembox.appendChild(div)
} else {
var index = contitembox_num * 4 + 1
index = index < 10 ? `0${index}` : index
el =
`<div class="cont-item">
<div class="item-label">${index}</div>
<div class="item-value">欢迎${faceInfoObj.parentDeptName}${faceInfoObj.personName}同学</div>
</div>`
var div = document.createElement('div')
div.setAttribute('class', "cont-item-box")
div.innerHTML = el
document.getElementById('cont').appendChild(div)
}
}
}