let form, layer, idParam, warnInfoParam, num = 0, isDel = '0';
let delRemarkList = [], warnInfoList = [], addRemarkList = [], oldRemarkList = [], delRemarkList2 = [],
mergeRemarkList = [];
function setParams(id, warnInfo) {
idParam = id;
layui.use(['form', 'layer'], function () {
layer = layui.layer;
form = layui.form;
form.render();
getWarnInfoByClassId();
});
}
layui.use(['form', 'layer', 'table'], function () {
$ = layui.jquery;
var layer = layui.layer,
form = layui.form;
form.on('checkbox(checkbox)', function (data) {
let checkbox=false;
if( data.elem.checked){
checkbox=true; //确定
}else{//取消了
checkbox=false;
}
var value = data.value; //获取选中的value值
// updeWarnConfirm(value,checkbox);
});
})
//
function updeWarnConfirm(value,confirm){
console.log(idParam);
console.log(value,confirm);
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify({
classId: idParam,
num:value,
confirm:confirm
}))
},
url: dataUrl + 'proteam/pot/todayTask/updeWarnConfirm?token=' + token,
data: {
classId: idParam,
num:value,
confirm:confirm
},
type: 'POST',
async: false,
success: function (result) {
}, error: function () {
layer.close(loadingMsg);
}
});
}
function getWarnInfoByClassId() {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify({
classId: idParam
}))
},
url: dataUrl + 'proteam/pot/todayTask/getWarnInfo?token=' + token,
data: {
classId: idParam,
},
type: 'POST',
async: false,
success: function (result) {
layer.close(loadingMsg);
console.error(result)
if (result.data) {
if (result.data.curWarnList.length > 0) {
$.each(result.data.curWarnList, function (index, item) {
let value = item.trim().substring(item.trim().lastIndexOf('@') + 1, item.trim().length)
if (value) {
addLine(2, item);
} else {
addLine(1, item);
}
})
}
if (result.data.delWarnList.length > 0) {
$.each(result.data.delWarnList, function (index, item) {
addDelLine(item);
})
} else {
$('.del-form').append('
无预警信息删除数据
');
}
}
}, error: function () {
layer.close(loadingMsg);
}
});
}
// 新增一行 1.原有 2.新增-入库 3.新增
function addLine(type, item) {
num++;
let html = '', warnInfo = '', remark = '', color = '#fff' ,checkbox=false;
if (item) {
var items= item.split("@");
if(items.length>1){
checkbox=true;
}
warnInfo =items[0];
//remark = item.split("@")[1];
color = '#eee';
}
let checkHtml="";
if(checkbox){
checkHtml= '';
}else{
checkHtml= '';
}
html += '';
$('.add-form').append(html);
layui.form.render();
if (item && (type === 1 || type === 2)) {
$('.input' + num + '').prop('readonly', true)
$('.textarea' + num + '').prop('readonly', true)
}
}
// 预警信息-删除
function addDelLine(item) {
let html = '', warnInfo = '', remark = '';
if (item) {
warnInfo = item.split("@")[0];
remark = item.split("@")[1];
}
html += '';
$('.del-form').append(html);
}
// 删除一行
function delLine(that) {
let remark = $(that).prev().val();
let warnInfo = $(that).prev().prev().prev().prev().val();
let isAdd = $(that).parents('.layui-form-item').attr('isAdd');
if(isAdd === '1' || isAdd === '2'){
let index = layer.open({
title: ['删除备注填写
', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
type: 1,
maxmin: false,
shade: 0.1,
shadeClose: false,
content: addContent(warnInfo),
area: ["450px", "230px"],
move: false,
success: function (layero, index) {
layui.form.render();
}, end: function () {
if (isDel === '1') {
$(that).parents('.layui-form-item').remove()
isDel = '0'
}
}
});
}else{
$(that).parents('.layui-form-item').remove()
}
}
function addContent(warnInfo) {
console.log(warnInfo)
let html = '';
layui.form.render();
return html;
}
function saveRemark(warnInfo) {
let delRemark = $('#delRemark').val()
if (!delRemark.trim()) {
return layer.msg('删除预警信息,请填写备注', {icon: 7});
} else {
delRemarkList.push('2@' + warnInfo + '@' + delRemark)
isDel = '1'
}
layer.closeAll();
}
function isRepeat(arr) {
let hash = {};
for (let i in arr) {
if (hash[arr[i]]) {
return true
}
hash[arr[i]] = true;
}
return false;
}
// 提交数据
function saveData(data) {
var checkList=[];
warnInfoList.splice(0, warnInfoList.length);
addRemarkList.splice(0, addRemarkList.length);
oldRemarkList.splice(0, oldRemarkList.length);
delRemarkList2.splice(0, delRemarkList2.length);
mergeRemarkList.splice(0, mergeRemarkList.length);
let flag = false, flag2 = false, flag3 = false;
$('input[name="warnInfo"]').each(function () {
if (!$(this).val().trim()) {
flag = true;
} else {
warnInfoList.push($(this).val().trim())
}
})
$('input[name="checkbox"]:checked').each(function (e) {
checkList.push($(this).val());
})
$('textarea[name="remark"]').each(function () {
if ($(this).parents('.layui-form-item').attr('isAdd') === '3') {
if (!$(this).val().trim()) {
flag2 = true;
} else {
addRemarkList.push('1@' + $(this).prev().prev().val().trim() + "@" + $(this).val().trim())
}
} else if ($(this).parents('.layui-form-item').attr('isAdd') === '2') {
if ($(this).val().trim()) {
oldRemarkList.push('1@' + $(this).prev().prev().val().trim() + "@" + $(this).val().trim())
}
}
})
$('input[name="warnInfo2"]').each(function () {
delRemarkList2.push('2@' + $(this).val() + '@' + $(this).next().next().val())
})
flag3 = isRepeat(warnInfoList);
if (flag) {
return layer.msg('存在未填写的预警信息', {icon: 7});
}
if (flag2) {
return layer.msg('新增的预警信息存在未填写的备注', {icon: 7});
}
if (flag3) {
return layer.msg('预警信息存在相同数据', {icon: 7});
}
if (addRemarkList.length > 0) {
addRemarkList.forEach(function (item, index) {
mergeRemarkList.push(item)
})
}
if (delRemarkList.length > 0) {
delRemarkList.forEach(function (item, index) {
mergeRemarkList.push(item)
})
}
if (oldRemarkList.length > 0) {
oldRemarkList.forEach(function (item, index) {
mergeRemarkList.push(item)
})
}
if (delRemarkList2.length > 0) {
delRemarkList2.forEach(function (item, index) {
mergeRemarkList.push(item)
})
}
checkListStr=checkList.join("@")+"@";
for (var i = 0; i < warnInfoList.length; i++) {
var j=i+1+"@";
if(checkListStr.indexOf(j)!='-1'){
warnInfoList[i]=warnInfoList[i]+"@1";
}
}
let formData = {
classId: idParam,
warnType: warnInfoList.toString(),
remark: mergeRemarkList.toString()
};
// 加载提示
let loadingMsg = layer.msg('数据提交中,请稍候...', {icon: 16, scrollbar: false, time: 0});
$.ajax({
url: dataUrl + 'proteam/pot/todayTask/updateWarnInfoByClassId?token=' + token,
type: 'POST',
data: formData,
dataType: 'json',
beforeSend: function () {
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
},
success: function (result) {
console.log(result);
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
closePage(1);
parent.layer.msg(result.msg, {icon: 1});
} else {
layer.msg(result.msg, {icon: 5});
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
},
error: function (result) {
layer.close(loadingMsg); // 关闭提示层
layer.msg('数据上传发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
}
});
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
if (type === 1) {
let frameId = parent.document.getElementById('remotePatrol').getElementsByTagName("iframe")[0];
frameId.contentWindow.reloadWarnInfo();
}
}