462 lines
15 KiB
Plaintext
462 lines
15 KiB
Plaintext
|
|
let form, layer, laydate, upload, formSelects, classId, riskLevel = null, teamName = null,bidCode = null,signCode = null,
|
|||
|
|
fileList = new Array(), imgListUp = new Array(), orgList, vioTypeList, voiLevelList, typeList,typeChildList;
|
|||
|
|
// 违章类别默认手动输入
|
|||
|
|
let checkVoiType = '1';
|
|||
|
|
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;
|
|||
|
|
orgList = getOrgSelect();
|
|||
|
|
vioTypeList = getRiskLevelSelect('voi_category');
|
|||
|
|
voiLevelList = getRiskLevelSelect('voi_level');
|
|||
|
|
typeList = getRiskLevelSelect('voi_type');
|
|||
|
|
typeChildList = getTypeChildSelect('');
|
|||
|
|
setOrg();
|
|||
|
|
setLevelId();
|
|||
|
|
setVioType();
|
|||
|
|
setType();
|
|||
|
|
setTypeChild();
|
|||
|
|
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) { //时间回调
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
$('#createTime').val(getNowTime())
|
|||
|
|
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)
|
|||
|
|
})
|
|||
|
|
form.on('select(type)', function (data) {
|
|||
|
|
typeChildList = getTypeChildSelect(data.value);
|
|||
|
|
setTypeChild();
|
|||
|
|
})
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 根据选择的违章等级赋值整改要求
|
|||
|
|
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/todayTask/uploadNoticeVio?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();
|
|||
|
|
let childType = $('#childType').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 (fileList.length === 0) {
|
|||
|
|
layer.msg("请上传督查照片", {icon: 5})
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
let obj = {
|
|||
|
|
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,
|
|||
|
|
riskLevel: riskLevel,
|
|||
|
|
teamName: teamName,
|
|||
|
|
bidCode:bidCode,
|
|||
|
|
signCode:signCode,
|
|||
|
|
childType:childType
|
|||
|
|
}
|
|||
|
|
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');
|
|||
|
|
$.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() {
|
|||
|
|
if (!classId) {
|
|||
|
|
return layer.msg('请选择作业票编号', {icon: 7})
|
|||
|
|
}
|
|||
|
|
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 chooseTicketNo() {
|
|||
|
|
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: 'violationTicket.html',
|
|||
|
|
area: [width, height],
|
|||
|
|
maxmin: false,
|
|||
|
|
move: false,
|
|||
|
|
success: function (layero, index) {
|
|||
|
|
let iframeWin = window["layui-layer-iframe" + layerIndex];
|
|||
|
|
iframeWin.setParams();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
});
|
|||
|
|
layui.form.render();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 违章等级赋值 */
|
|||
|
|
function setLevelId() {
|
|||
|
|
let html = '<option value="" selected>请选择</option>';
|
|||
|
|
$.each(voiLevelList, function (index, item) {
|
|||
|
|
html += '<option value="' + item.id + '">' + item.name + '</option>';
|
|||
|
|
})
|
|||
|
|
$('#levelId').empty().append(html);
|
|||
|
|
layui.form.render();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 违章类型赋值 */
|
|||
|
|
function setType() {
|
|||
|
|
let html = '<option value="" selected>请选择</option>';
|
|||
|
|
$.each(typeList, function (index, item) {
|
|||
|
|
html += '<option value="' + item.id + '">' + item.name + '</option>';
|
|||
|
|
})
|
|||
|
|
$('#type').empty().append(html);
|
|||
|
|
layui.form.render();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 违章子类型赋值 */
|
|||
|
|
function setTypeChild() {
|
|||
|
|
let html = '<option value="" selected>请选择</option>';
|
|||
|
|
$.each(typeChildList, function (index, item) {
|
|||
|
|
html += '<option value="' + item.name + '">' + item.name + '</option>';
|
|||
|
|
})
|
|||
|
|
$('#childType').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 setTicketInfo(classIdParam, ticketNoParam, proNameParam, orgParam, riskLevelParam, teamNameParam,bidCodeParam,signCodeParam) {
|
|||
|
|
classId = classIdParam
|
|||
|
|
riskLevel = riskLevelParam
|
|||
|
|
teamName = teamNameParam
|
|||
|
|
bidCode = bidCodeParam
|
|||
|
|
signCode = signCodeParam
|
|||
|
|
$('#ticketNo').val(ticketNoParam)
|
|||
|
|
$('#bidName').val(proNameParam)
|
|||
|
|
$('#org').val(orgParam)
|
|||
|
|
layui.form.render()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 违章类别切换下拉选或输入框
|
|||
|
|
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()
|
|||
|
|
}
|
|||
|
|
}
|