93 lines
2.5 KiB
JavaScript
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();
|
|
}; |