507 lines
17 KiB
Plaintext
507 lines
17 KiB
Plaintext
let form, layer, laydate, upload,formSelects, orgList, vioTypeList, voiLevelList,typeList,
|
||
noticeVoiData = {}, idParam, classId, delImgIdList = [];
|
||
let fileList = new Array(), imgListUp = new Array();
|
||
// 违章类别默认手动输入
|
||
let checkVoiType = '1';
|
||
function setParams(id) {
|
||
idParam = id;
|
||
layui.config({
|
||
base: "../../../js/layui/", //此处路径请自行处理, 可以使用绝对路径
|
||
}).extend({
|
||
formSelects: 'formSelects-v4'
|
||
}).use(['form', 'layer', 'laydate', 'upload','formSelects'], function () {
|
||
layer = layui.layer;
|
||
form = layui.form;
|
||
laydate = layui.laydate;
|
||
upload = layui.upload;
|
||
formSelects = layui.formSelects;
|
||
getNoticeVoiById();
|
||
orgList = getOrgSelect();
|
||
vioTypeList = getRiskLevelSelect('voi_category');
|
||
voiLevelList = getRiskLevelSelect('voi_level');
|
||
typeList = getRiskLevelSelect('voi_type');
|
||
setFormData();
|
||
form.render();
|
||
laydate.render({
|
||
elem: '#createTime', //指定元素 元素选择器
|
||
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
|
||
trigger: 'click',
|
||
min: Date.parse(new Date()),
|
||
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
|
||
btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
|
||
done: function (value, date) { //时间回调
|
||
}
|
||
});
|
||
let uploadObj = upload.render({
|
||
elem: '#test2',
|
||
multiple: true,
|
||
dataType: "json",
|
||
exts: 'jpg|png|jpeg',
|
||
acceptMime: 'image/jpg,image/png,image/jpeg',
|
||
// number: 3, //最大上传数量
|
||
size: 1024 * 100, //最大文件大小,单位k
|
||
auto: false, //是否自动上传 ,默认为true
|
||
bindAction: '#hideUpload', //绑定的按钮
|
||
choose: function (obj) {
|
||
uploadObj.config.elem.next()[0].value = '';
|
||
obj.preview(function (index, file, result) {
|
||
$('#uploader-list').append(
|
||
'<div id="" class="file-iteme">' +
|
||
'<div class="handle"><p>x</p></div>' +
|
||
'<img class="img" style="width: 130px;height: 100px;" data-index=' + index + ' data-name=' + file.name + ' src=' + result + '>' +
|
||
'</div>'
|
||
);
|
||
let map = new Map();//将选择的图片索引和图片写成对象存入集合
|
||
map.index = index;
|
||
map.file = file;
|
||
fileList.push(map);
|
||
});
|
||
}
|
||
});
|
||
form.on('select(levelId)', function (data) {
|
||
setRecRequirementData(data.value)
|
||
})
|
||
});
|
||
}
|
||
|
||
/*表单赋值*/
|
||
function setFormData() {
|
||
$('#ticketNo').val(noticeVoiData.ticketNo);
|
||
$('#bidName').val(noticeVoiData.proName);
|
||
$('#createTime').val(noticeVoiData.createTime);
|
||
$('#voiYj').val(noticeVoiData.voiYj);
|
||
$('#content').val(noticeVoiData.content);
|
||
$('#recRequirement').val(noticeVoiData.recRequirement);
|
||
$('#vioUsers').val(noticeVoiData.vioUsers);
|
||
$('#idNumber').val(noticeVoiData.idNumber);
|
||
$('#score').val(noticeVoiData.score);
|
||
setOrg(noticeVoiData.org);
|
||
if(!noticeVoiData.voiType){ // 违章类别手动录入
|
||
setVioType();
|
||
$('#voiTypeHand').val(noticeVoiData.voiTypeHand);
|
||
$('#auto').css('display', 'none');
|
||
$('#hand').removeAttr('style');
|
||
$('#voiTypeTitle').removeAttr('style');
|
||
$('#changeType').attr('title','切换自动录入')
|
||
$('#changeType').find('p').eq(0).html('切换自动录入')
|
||
$('#changeType').css('display','inherit');
|
||
checkVoiType = '1';
|
||
}else{
|
||
setVioType(noticeVoiData.voiType);
|
||
$('#auto').removeAttr('style');
|
||
$('#hand').css('display', 'none');
|
||
$('#voiTypeTitle').removeAttr('style');
|
||
$('#changeType').attr('title','切换手动录入')
|
||
$('#changeType').find('p').eq(0).html('切换手动录入')
|
||
$('#changeType').css('display','inherit');
|
||
$('#voiYj').next().removeAttr('style')
|
||
checkVoiType = '2';
|
||
}
|
||
setLevelId(noticeVoiData.levelId);
|
||
setType(noticeVoiData.type)
|
||
classId = noticeVoiData.classId;
|
||
let imgPath = noticeVoiData.imgPath, imgId = noticeVoiData.imgId;
|
||
let imgPathArr = imgPath.split(','), imgIdArr = imgId.split(',');
|
||
let html = '';
|
||
for (let i = 0; i < imgPathArr.length; i++) {
|
||
let path = photoUrl + imgPathArr[i] + '?token=' + token
|
||
html += '<div id="" class="file-iteme">' +
|
||
'<div class="handle"><p>x</p></div>' +
|
||
'<img class="img" style="width: 130px;height: 100px;" isOld = ' + imgIdArr[i] + ' data-index=' + (10000001 + i) + ' src=' + path + '>' +
|
||
'</div>'
|
||
}
|
||
$('#uploader-list').append(html);
|
||
// 驳回原因
|
||
let remark = noticeVoiData.remark;
|
||
if(remark){
|
||
let strArr = remark.split('@');
|
||
$('#bhTime').html(strArr[0]);
|
||
$('#bhRemark').html(strArr[1]);
|
||
}
|
||
}
|
||
|
||
/*根据违章单id获取违章单信息*/
|
||
function getNoticeVoiById() {
|
||
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
|
||
$.ajax({
|
||
headers: {
|
||
"encrypt": sm3(JSON.stringify({
|
||
params:idParam
|
||
}))
|
||
},
|
||
url: dataUrl + 'proteam/pot/superStatistics/getNoticeVoiById?token=' + token,
|
||
data: {
|
||
params: idParam,
|
||
},
|
||
type: 'POST',
|
||
async: false,
|
||
success: function (result) {
|
||
layer.close(loadingMsg);
|
||
console.error(result)
|
||
if (result.data) {
|
||
noticeVoiData = result.data;
|
||
}
|
||
}, error: function () {
|
||
layer.close(loadingMsg);
|
||
}
|
||
});
|
||
}
|
||
|
||
// 根据选择的违章等级赋值整改要求
|
||
function setRecRequirementData(value) {
|
||
let recRequirement = '';
|
||
if (value) {
|
||
let recDate = '';
|
||
if (value === '一般违章' || value === '建议整改') {
|
||
recDate = setDate(addDate(getNowTime(), 3))
|
||
} else if (value === '严重违章') {
|
||
recDate = setDate(addDate(getNowTime(), 6))
|
||
}
|
||
recRequirement = '请立即组织整改,并举一反三,避免同类违章重复出现。' + recDate + '前将《' + value + '分析报告及整改反馈单》报省公司建设部和本中心审查备案。若存在异议,请于1日内,以书面形式向本中心陈述理由,提供证明材料。'
|
||
}
|
||
$('#recRequirement').val(recRequirement)
|
||
}
|
||
|
||
function addDate(date, days) {
|
||
if (days == undefined || days == '') {
|
||
days = 1;
|
||
}
|
||
var date = new Date(date);
|
||
date.setDate(date.getDate() + days);
|
||
var month = date.getMonth() + 1;
|
||
var day = date.getDate();
|
||
return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
|
||
}
|
||
|
||
// 日期月份/天的显示,如果是1位数,则在前面加上'0'
|
||
function getFormatDate(arg) {
|
||
if (arg == undefined || arg == '') {
|
||
return '';
|
||
}
|
||
let re = arg + '';
|
||
if (re.length < 2) {
|
||
re = '0' + re;
|
||
}
|
||
return re;
|
||
}
|
||
|
||
// 提交数据
|
||
function saveData() {
|
||
let objStr = verifyData()
|
||
if (objStr === true) {
|
||
return false;
|
||
}
|
||
let formData = new FormData();
|
||
//遍历最终图片集合
|
||
for (let i = 0; i < fileList.length; i++) {
|
||
formData.append("file[]", fileList[i].file)
|
||
}
|
||
formData.append("params", objStr)
|
||
// 加载提示
|
||
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
|
||
$.ajax({
|
||
url: dataUrl + 'proteam/pot/superStatistics/editUploadNoticeVio?token=' + token,
|
||
type: 'POST',
|
||
data: formData,
|
||
dataType: 'json',
|
||
processData: false,
|
||
contentType: false,
|
||
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.msg === 'success') {
|
||
closePage(1);
|
||
parent.layer.msg('违章单修改成功', {icon: 1});
|
||
} else {
|
||
layer.msg('违章单修改出错,请稍后重试', {icon: 2});
|
||
$('.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 verifyData() {
|
||
let ticketNo = $('#ticketNo').val();
|
||
let bidName = $('#bidName').val();
|
||
let createTime = $('#createTime').val();
|
||
let voiType = formSelects.value('voiType', 'val').toString();
|
||
let voiTypeHand = $('#voiTypeHand').val();
|
||
let voiTypeId = $('#voiTypeId').val();
|
||
let voiYj = $('#voiYj').val();
|
||
let levelId = $('#levelId').val();
|
||
let type = $('#type').val();
|
||
let content = $('#content').val();
|
||
let org = $('#org').val();
|
||
let vioUsers = $('#vioUsers').val();
|
||
let idNumber = $('#idNumber').val();
|
||
let score = $('#score').val();
|
||
let recRequirement = $('#recRequirement').val();
|
||
if (!ticketNo) {
|
||
layer.msg("请填写作业票编号", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!bidName) {
|
||
layer.msg("请填写工程名称", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!createTime) {
|
||
layer.msg("请填写督查时间", {icon: 5})
|
||
return true;
|
||
}
|
||
if (checkVoiType === '1') {
|
||
if (!voiTypeHand) {
|
||
layer.msg("请填写违章类别", {icon: 5})
|
||
return true;
|
||
}
|
||
} else {
|
||
if (!voiType) {
|
||
layer.msg("请选择违章类别", {icon: 5})
|
||
return true;
|
||
}
|
||
}
|
||
if (!voiYj) {
|
||
layer.msg("请填写或选择违章依据", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!levelId) {
|
||
layer.msg("请选择违章等级", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!type) {
|
||
layer.msg("请选择违章类型", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!content) {
|
||
layer.msg("请填写违章内容", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!org) {
|
||
layer.msg("请选择违章单位", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!vioUsers) {
|
||
layer.msg("请选择违章人员", {icon: 5})
|
||
return true;
|
||
}
|
||
if (!recRequirement) {
|
||
layer.msg("请填写整改要求", {icon: 5})
|
||
return true;
|
||
}
|
||
if ($('.file-iteme').length === 0) {
|
||
layer.msg("请上传督查照片", {icon: 5})
|
||
return true;
|
||
}
|
||
let obj = {
|
||
id: idParam,
|
||
classId: classId,
|
||
ticketNo: ticketNo,
|
||
proName: bidName,
|
||
createTime: createTime,
|
||
voiYj: voiYj,
|
||
levelId: levelId,
|
||
type: type,
|
||
content: content,
|
||
org: org,
|
||
vioUsers: vioUsers,
|
||
idNumber: idNumber,
|
||
score: score,
|
||
recRequirement: recRequirement,
|
||
delImgIdList: delImgIdList.toString(),
|
||
oldIdNumber: noticeVoiData.idNumber,
|
||
oldScore: noticeVoiData.score,
|
||
voiStatus:'7'
|
||
}
|
||
if (checkVoiType === '1') {
|
||
obj.voiTypeHand = voiTypeHand
|
||
} else {
|
||
obj.voiType = voiType
|
||
}
|
||
return JSON.stringify(obj);
|
||
}
|
||
|
||
|
||
// 删除图片
|
||
$(document).on("click", ".file-iteme .handle", function (event) {
|
||
imgListUp.splice(0, imgListUp.length);
|
||
let index = $(this).next().attr('data-index');
|
||
let isOld = $(this).next().attr('isOld');
|
||
if (isOld) {
|
||
delImgIdList.push(isOld);
|
||
console.log(delImgIdList)
|
||
$(this).parent().remove();
|
||
} else {
|
||
$.each(fileList, function (inx, ele) {
|
||
//对比删除图片索引
|
||
//将未删除的存入新集合
|
||
if (index != ele.index) {
|
||
imgListUp.push(ele);
|
||
}
|
||
});
|
||
$(this).parent().remove();
|
||
//将新图片集合替换老集合
|
||
fileList.splice(0, fileList.length);
|
||
$.each(imgListUp, function (inx, ele) {
|
||
fileList.push(ele)
|
||
});
|
||
}
|
||
});
|
||
|
||
// 选择违章人员
|
||
function openViolatorsPerson() {
|
||
let width = '664px';
|
||
let height = '444px';
|
||
let layerIndex = layer.open({
|
||
id: 'violatorsPerson',
|
||
title: ['<div style="border-left: 3px solid #2F82FB;display: flex;align-items: center;height: 20px;padding: 0 10px;">选择违章人员</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
|
||
type: 2,
|
||
shade: 0.1,
|
||
shadeClose: false,
|
||
content: '../remotePatrol/violatorsPerson.html',
|
||
area: [width, height],
|
||
maxmin: false,
|
||
move: false,
|
||
success: function (layero, index) {
|
||
let idNumber = $('#idNumber').val();
|
||
let score = $('#score').val();
|
||
let iframeWin = window["layui-layer-iframe" + layerIndex];
|
||
iframeWin.setParams(classId, score, idNumber);
|
||
}
|
||
});
|
||
}
|
||
|
||
/*违章依据页面*/
|
||
function openViolationBasis() {
|
||
let voiTypeId = formSelects.value('voiType', 'val').toString();
|
||
if (!voiTypeId) {
|
||
return layer.msg('请选择违章类别', {icon: 7})
|
||
}
|
||
let width = '664px';
|
||
let height = '444px';
|
||
let layerIndex = layer.open({
|
||
id: 'violationBasis',
|
||
title: ['<div style="border-left: 3px solid #2F82FB;display: flex;align-items: center;height: 20px;padding: 0 10px;">选择违章依据</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
|
||
type: 2,
|
||
shade: 0.1,
|
||
shadeClose: false,
|
||
content: '../remotePatrol/violationBasis.html',
|
||
area: [width, height],
|
||
maxmin: false,
|
||
move: false,
|
||
success: function (layero, index) {
|
||
let voiTypeSelId = $('#voiTypeId').val()
|
||
let iframeWin = window["layui-layer-iframe" + layerIndex];
|
||
iframeWin.setParams(voiTypeId, voiTypeSelId);
|
||
}
|
||
});
|
||
}
|
||
|
||
function setOrg(org) {
|
||
let html = '<option value="">请选择</option>';
|
||
$.each(orgList, function (index, item) {
|
||
if (org === item.code) {
|
||
html += '<option value="' + item.code + '" selected>' + item.name + '</option>';
|
||
} else {
|
||
html += '<option value="' + item.code + '">' + item.name + '</option>';
|
||
}
|
||
})
|
||
$('#org').empty().append(html);
|
||
layui.form.render();
|
||
}
|
||
|
||
function setVioType(voiType) {
|
||
let keys = [];
|
||
$.each(vioTypeList, function (index, item) {
|
||
let temp = {
|
||
"name": item.name,
|
||
"value": item.code
|
||
};
|
||
keys.push(temp);
|
||
})
|
||
formSelects.data('voiType', 'local', {
|
||
arr: keys
|
||
});
|
||
formSelects.value('voiType', [voiType])
|
||
layui.form.render();
|
||
}
|
||
|
||
/* 违章等级赋值 */
|
||
function setLevelId(levelId) {
|
||
let html = '<option value="" selected>请选择</option>';
|
||
$.each(voiLevelList, function (index, item) {
|
||
if (levelId === item.id) {
|
||
html += '<option value="' + item.id + '" selected>' + item.name + '</option>';
|
||
} else {
|
||
html += '<option value="' + item.id + '">' + item.name + '</option>';
|
||
}
|
||
})
|
||
$('#levelId').empty().append(html);
|
||
layui.form.render();
|
||
}
|
||
|
||
/* 违章类型赋值 */
|
||
function setType(type) {
|
||
let html = '<option value="" selected>请选择</option>';
|
||
$.each(typeList, function (index, item) {
|
||
if (type === item.id) {
|
||
html += '<option value="' + item.id + '" selected>' + item.name + '</option>';
|
||
} else {
|
||
html += '<option value="' + item.id + '">' + item.name + '</option>';
|
||
}
|
||
})
|
||
$('#type').empty().append(html);
|
||
layui.form.render();
|
||
}
|
||
|
||
/* 违章人员赋值 */
|
||
function setViolatorsPerson(id, name, score8) {
|
||
$('#vioUsers').val(name);
|
||
$('#idNumber').val(id);
|
||
$('#score').val(score8);
|
||
}
|
||
|
||
/*违章依据赋值*/
|
||
function setVioInfo(name) {
|
||
let value = $('#voiYj').val();
|
||
if (value) {
|
||
value = value + ";"
|
||
}
|
||
$('#voiYj').val(value + "" + name)
|
||
}
|
||
// 违章类别切换下拉选或输入框
|
||
function changeVoiType(that) {
|
||
if (checkVoiType === '1') {
|
||
checkVoiType = '2'
|
||
$(that).find('p').eq(0).html('切换手动录入')
|
||
$(that).attr('title', '切换手动录入')
|
||
$('#voiYj').next().removeAttr('style')
|
||
$('#hand').css('display', 'none');
|
||
$('#auto').removeAttr('style');
|
||
} else {
|
||
checkVoiType = '1'
|
||
$(that).find('p').eq(0).html('切换自动录入')
|
||
$(that).attr('title', '切换自动录入')
|
||
$('#voiYj').next().css('display', 'none');
|
||
$('#hand').removeAttr('style');
|
||
$('#auto').css('display', 'none');
|
||
}
|
||
}
|
||
// 关闭页面
|
||
function closePage(type) {
|
||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||
parent.layer.close(index); //再执行关闭
|
||
if (type === 1) {
|
||
window.parent.reloadData()
|
||
}
|
||
} |