defence_strong_enemy/target/classes/static/js/mock.js
2025-07-23 16:29:53 +08:00

93 lines
2.5 KiB
JavaScript

/**
*
* @param url 提交的url地址
* @param object 数据
* @param action 模块区分
* @param formId 需要验证输入字段的formId
*/
const queue = [];
function mockPost(url, object, action, formId) {
let formElement = document.getElementById(formId);
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json' // 告诉服务器请求体为 JSON 数据
},
body: JSON.stringify(object),
}).then(res => {
if (res.status === 200) {
return res.json();
}
}).then(res => {
if (res.code === 0) {
removeValidCss(formId);
//清空timeline
document.getElementById('timeline_info_list').style.display = 'block';
setInterval(() => {
if (queue.length > 0) {
const tip = queue.shift(); // 出队
// 处理消息,比如添加到时间线
const timeline = document.getElementById('timeline_info_list');
if(tip.order===0){
timeline.innerHTML = "";
}else {
const div = document.createElement('div');
div.className = 'timeline-item';
const time = document.createElement('time');
time.textContent = tip.time;
const h3 = document.createElement('h3');
h3.textContent = tip.title;
const p = document.createElement('p');
p.innerHTML = tip.message;
div.appendChild(time);
div.appendChild(h3);
div.appendChild(p);
timeline.appendChild(div);
// 自动滚动到底部
timeline.scrollTop = timeline.scrollHeight;
}
}
}, 100);
} else {
for (const item of res.errors) {
if (formElement.elements[item.elementId].classList) {
formElement.elements[item.elementId].classList.add("is-invalid");
document.getElementById(item.elementId + "_error_tip").innerHTML = item.message;
}
}
}
})
}
function doWsMessageCall(message) {
let tip = JSON.parse(message);
queue.push(tip)
}
window.onload = function() {
connectWs();
};