工程违章

This commit is contained in:
cwchen 2024-12-09 18:47:43 +08:00
parent f82390f946
commit 188d726024
7 changed files with 458 additions and 53 deletions

View File

@ -0,0 +1,154 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../../js/layui-v2.9.2/layui/css/layui.css">
<link rel="stylesheet" href="../../../css/font.css">
<script src="../../../js/public/jquery-3.6.0.js" type="text/javascript"></script>
<script src="../../../js/public/public.js" type="text/javascript"></script>
<script src="../../../js/public/permission.js" type="text/javascript"></script>
<script src="../../../js/public/sm3.js" type="text/javascript"></script>
<script src="../../../js/layui-v2.9.2/layui/layui.js"></script>
<script src="../../../js/public/commonUtils.js"></script>
<script src="../../../js/public/aes.js"></script>
<title>违章整改详情</title>
</head>
<style>
.layui-input-inline {
width: 300px !important;
}
.layui-input,
.layui-textarea {
background-color: #F2F2F2;
border-color: #dfdede;
}
.layui-input-inline img {
width: 100px;
height: 100px;
}
</style>
<body>
<div class="main-box">
<form class="layui-form" onclick="return false;" id="form3" lay-filter="formInfo">
<div class="layui-form-item" style="margin-top: 1%;">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">工程名称</label>
<div class="layui-input-inline">
<input class="layui-input" name="proName" id="proName" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">作业票名称</label>
<div class="layui-input-inline">
<input class="layui-input" name="ticketName" id="ticketName" readonly>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">风险等级</label>
<div class="layui-input-inline">
<input class="layui-input" name="riskLevel" id="riskLevel" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">风险编号</label>
<div class="layui-input-inline">
<input class="layui-input" name="ticketNo" id="ticketNo" readonly>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">负责人</label>
<div class="layui-input-inline">
<input class="layui-input" name="workManager" id="workManager" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">作业班组</label>
<div class="layui-input-inline">
<input class="layui-input" name="teamName" id="teamName" readonly>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">作业工序</label>
<div class="layui-input-inline">
<textarea class="layui-textarea" readonly name="gx"></textarea>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">作业部位</label>
<div class="layui-input-inline">
<textarea class="layui-textarea" readonly name="workSite"></textarea>
</div>
</div>
</div>
<!-- <div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">风险成本</label>
<div class="layui-input-inline">
<input class="layui-input" name="name" id="name" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">管控措施</label>
<div class="layui-input-inline">
<input class="layui-input" name="name" id="name" readonly>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">补充措施</label>
<div class="layui-input-inline">
<input class="layui-input" name="name" id="name" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">是否重点工程</label>
<div class="layui-input-inline">
<input class="layui-input" name="name" id="name" readonly>
</div>
</div>
</div> -->
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">预警时间</label>
<div class="layui-input-inline">
<input class="layui-input" name="time" id="time" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">整改期限</label>
<div class="layui-input-inline">
<input class="layui-input" name="rectTime" id="rectTime" readonly>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">整改内容</label>
<div class="layui-input-inline">
<input class="layui-input" name="rectContent" id="rectContent" readonly>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label required" style="width: 100px !important;">整改图片</label>
<div class="layui-input-inline" style="width: 560px !important;" id="rectImg">
</div>
</div>
</div>
</form>
</div>
</body>
<script src="../../../js/supplement/child/risk_rect_detail.js"></script>
</html>

View File

@ -28,7 +28,7 @@
<div class="basic-search-box layout"> <div class="basic-search-box layout">
<form class="layui-form basic-form" onclick="return false;"> <form class="layui-form basic-form" onclick="return false;">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline keyWord"> <div class="layui-inline">
<label class="layui-form-label" style="width: 80px;">工程名称:</label> <label class="layui-form-label" style="width: 80px;">工程名称:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" id="proName" class="layui-input" autocomplete="off" placeholder="工程名称"> <input type="text" id="proName" class="layui-input" autocomplete="off" placeholder="工程名称">

View File

@ -13,6 +13,7 @@
<script src="../../js/layui-v2.9.2/layui/layui.js"></script> <script src="../../js/layui-v2.9.2/layui/layui.js"></script>
<script src="../../js/public/commonUtils.js"></script> <script src="../../js/public/commonUtils.js"></script>
<script src="../../js/public/aes.js"></script> <script src="../../js/public/aes.js"></script>
<script src="../../js/public/openIframe.js"></script>
<title>风险整改分析</title> <title>风险整改分析</title>
<style> <style>
.layui-inline button { .layui-inline button {
@ -28,12 +29,34 @@
<div class="basic-search-box layout"> <div class="basic-search-box layout">
<form class="layui-form basic-form" onclick="return false;"> <form class="layui-form basic-form" onclick="return false;">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline keyWord"> <div class="layui-inline">
<label class="layui-form-label" style="width: 80px;">工程名称:</label> <label class="layui-form-label" style="width: 80px;">工程名称:</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" id="proName" class="layui-input" autocomplete="off" placeholder="工程名称"> <input type="text" id="proName" class="layui-input" autocomplete="off" placeholder="工程名称">
</div> </div>
</div> </div>
<div class="layui-inline">
<label class="layui-form-label" style="width: 80px;">风险等级:</label>
<div class="layui-input-inline">
<select id="riskLevel" class="layui-select">
<option value="">全部</option>
<option value="2">二级</option>
<option value="3">三级</option>
<option value="4">四级</option>
<option value="5">五级</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label" style="width: 80px;">是否整改:</label>
<div class="layui-input-inline">
<select id="isRect" class="layui-select">
<option value="">全部</option>
<option value="1">已整改</option>
<option value="0">未整改</option>
</select>
</div>
</div>
<div class="layui-inline btns"> <div class="layui-inline btns">
<button class="layui-btn layui-bg-blue" onclick="queryTable(1)"><i class="layui-icon"></i> <button class="layui-btn layui-bg-blue" onclick="queryTable(1)"><i class="layui-icon"></i>
</button> </button>

113
bns/js/public/openIframe.js Normal file
View File

@ -0,0 +1,113 @@
/**
* id页面ID
* title标题
* content, 页面路径
* width宽度
* height高度
* params 参数
*/
function openIframeByParam(id, title, content, width, height, params) {
let layerIndex = layer.open({
id: id,
type: 2,
title: ['<div style="border-left: 3px solid #409EFF;color:#409EFF;font-size:18px;letter-spacing:1px;display: flex;align-items: center;height: 20px;padding: 0 10px;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
content: content,
shade: 0.3,
anim: 2,
shadeClose: false,
area: [width, height],
move: false,
success: function () {
if (params) {
let iframeWin = window["layui-layer-iframe" + layerIndex];
iframeWin.setParams(params);
}
},
cancel: function () { },
end: function () { }
});
}
/**
* id页面ID
* title标题
* content, 页面路径
* width宽度
* height高度
* params 参数对象
*/
function openIframeByParamObj(id, title, content, width, height, paramsObj) {
let layerIndex = layer.open({
id: id,
type: 2,
title: ['<div style="border-left: 3px solid #409EFF;font-size:18px;letter-spacing:1px;display: flex;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
content: content,
shade: 0.3,
anim: 2,
shadeClose: false,
area: [width, height],
move: false,
success: function () {
if (paramsObj) {
let iframeWin = window["layui-layer-iframe" + layerIndex];
iframeWin.setParams(JSON.stringify(paramsObj));
}
},
cancel: function () { },
end: function () { }
});
}
function openIframeByParamObj2(id, title, content, width, height, paramsObj) {
let layerIndex = parent.layer.open({
id: id,
type: 2,
title: ['<div style="border-left: 3px solid #409EFF;font-size:18px;letter-spacing:1px;display: flex;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
content: content,
shade: 0.3,
anim: 2,
shadeClose: false,
area: [width, height],
move: false,
success: function () {
if (paramsObj) {
let iframeWin = parent.window["layui-layer-iframe" + layerIndex];
iframeWin.setParams(JSON.stringify(paramsObj));
}
},
cancel: function () { },
end: function () { }
});
}
/* dtree专用弹框 */
function openIframeByDtree(id, title, content, width, height, params, $div) {
let layerIndex = layer.open({
id: id,
type: 2,
title: ['<div style="border-left: 3px solid #409EFF;font-size:18px;letter-spacing:1px;display: flex;align-items: center;height: 20px;padding: 0 10px;font-weight: bold;">' + title + '</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
content: content,
shade: 0.3,
anim: 2,
shadeClose: false,
area: [width, height],
move: false,
success: function () {
let iframeWin = window["layui-layer-iframe" + layerIndex];
iframeWin.setParams(JSON.stringify(params));
},
end: function () {
if (jsonData) {
if (params.type === 2) {
// 修改节点
fitTypeTree.partialRefreshEdit($div, jsonData.title);
} else if (params.type === 1) {
// 新增节点
fitTypeTree.partialRefreshAdd($div, jsonData);
}
jsonData = null;
}
}
});
}

View File

@ -0,0 +1,78 @@
var form, layer;
let objParam, idParam;
function setParams(params) {
objParam = JSON.parse(params);
idParam = objParam.id;
layui.use(['form'], function () {
form = layui.form;
layer = layui.layer;
form.verify();
form.render();
getTypeDetails();
});
}
// 详情
function getTypeDetails() {
let params = {
id: objParam.id
};
let url = dataUrl + 'proteam/pot/riskRect/getRiskRectDetail';
ajaxRequest(url, "POST", params, true, function () {
}, function (result) {
console.error(result);
if (result.code === 200) {
setFormData(result.data);
}
}, function (xhr, status, error) {
errorFn(xhr, status, error)
}, null);
function setFormData(obj) {
form.val('formInfo', obj);
let recDate = '';
if (obj.levelId === '一般违章' || obj.levelId === '建议整改') {
recDate = setDate(addDate(getNowTime(), 3))
} else if (obj.levelId === '严重违章') {
recDate = setDate(addDate(getNowTime(), 6))
}
$('#rectTime').val(recDate);
let rectImgPath = obj.rectImgPath;
let html = '';
if (rectImgPath.length > 0) {
$.each(rectImgPath, function (index, item) {
let path = photoUrl + item + '?token=' + token;
html += '<img src="' + path + '">'
})
$('#rectImg').empty().append(html);
}
}
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 closePage() {
let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引
parent.layer.close(index); // 再执行关闭
}

View File

@ -11,7 +11,7 @@ layui.use(['form', 'layer', 'table', 'laydate'], function () {
/* 加载表格 */ /* 加载表格 */
function pages(pageNum, pageSize, typeNum) { function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum); let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "proteam/pot/proVio/getDutyPersonList"; let url = dataUrl + "proteam/pot/proVio/getProVioList";
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(url, "POST", params, true, function () {
}, function (result) { }, function (result) {
if (result.code === 200) { if (result.code === 200) {

View File

@ -11,7 +11,7 @@ layui.use(['form', 'layer', 'table', 'laydate'], function () {
/* 加载表格 */ /* 加载表格 */
function pages(pageNum, pageSize, typeNum) { function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum); let params = getReqParams(pageNum, pageSize, typeNum);
let url = dataUrl + "proteam/pot/proVio/getDutyPersonList"; let url = dataUrl + "proteam/pot/riskRect/getRiskRectList";
ajaxRequest(url, "POST", params, true, function () { ajaxRequest(url, "POST", params, true, function () {
}, function (result) { }, function (result) {
if (result.code === 200) { if (result.code === 200) {
@ -66,36 +66,26 @@ function initTable(dataList, limit, page) {
return (page - 1) * limit + d.LAY_NUM; return (page - 1) * limit + d.LAY_NUM;
} }
}, },
{
field: "ticketNo",
title: "作业票编号",
width: '10%',
unresize: true,
align: "center",
style: 'word-break: break-all'
},
{ {
field: "proName", field: "proName",
title: "工程名称", title: "工程名称",
width: '15%', width: '10%',
unresize: true, unresize: true,
align: "center", align: "center",
style: 'word-break: break-all' style: 'word-break: break-all'
}, },
{ {
field: "workManager", field: "ticketName",
title: "班组长", title: "作业票名称",
width: '10%', width: '8%',
unresize: true, unresize: true,
align: "center", align: "center",
templet: function (d) { style: 'word-break: break-all'
return '<p>' + transformNull(d.workManager) + '</p><p>' + transformNull(d.workManagerPhone) + '</p>';
}
}, },
{ {
field: "riskLevel", field: "riskLevel",
title: "风险等级", title: "风险等级",
width: '10%', width: '8%',
unresize: true, unresize: true,
align: "center", align: "center",
templet: function (d) { templet: function (d) {
@ -103,56 +93,100 @@ function initTable(dataList, limit, page) {
} }
}, },
{ {
field: "org", field: "ticketNo",
title: "违章单位", title: "编号",
width: '10%', width: '10%',
unresize: true, unresize: true,
align: "center", align: "center",
style: 'word-break: break-all'
}, },
{ {
field: "type", field: "workManager",
title: "违章类型", title: "负责人",
width: '10%',
unresize: true,
align: "center",
},
{
field: "childType",
title: "违章子类型",
width: '10%',
unresize: true,
align: "center",
},
{
field: "levelId",
title: "违章等级",
width: '10%', width: '10%',
unresize: true, unresize: true,
align: "center", align: "center",
templet: function (d) { templet: function (d) {
if (d.levelId === '严重违章') { return '<p>' + transformNull(d.workManager) + '</p><p>' + transformNull(d.workManagerPhone) + '</p>';
return '<span style="color: #ff5d5d;">' + d.levelId + '</span>';
}
return '<span>' + d.levelId + '</span>';
} }
}, },
{ {
field: "content", field: "workSite",
title: "违章内容", title: "作业部分",
width: '10%', width: '10%',
unresize: true, unresize: true,
align: "center", align: "center",
templet: function (d) { templet: function (d) {
if (d.content) { if (d.workSite) {
if (d.content.length > 60) { if (d.workSite.length > 60) {
return '<span title="' + d.content + '">' + d.content.substring(0, 60) + '...</span>' return '<span title="' + d.workSite + '">' + d.workSite.substring(0, 60) + '...</span>'
} else { } else {
return '<span title="' + d.content + '">' + d.content + '</span>' return '<span title="' + d.workSite + '">' + d.workSite + '</span>'
} }
} else { } else {
return ''; return '';
} }
} }
},
{
field: "type",
title: "工序",
width: '10%',
unresize: true,
align: "center",
templet: function (d) {
if (d.gx) {
if (d.gx.length > 60) {
return '<span title="' + d.gx + '">' + d.gx.substring(0, 60) + '...</span>'
} else {
return '<span title="' + d.gx + '">' + d.gx + '</span>'
}
} else {
return '';
}
}
},
{
field: "time",
title: "整改时间",
width: '8%',
unresize: true,
align: "center",
},
{
field: "isRect",
title: "风险整改状态",
width: '8%',
unresize: true,
align: "center",
templet: function (d) {
return '<span>' + d.isRect + '</span>';
}
},
{
field: "warnTips",
title: "告警提示",
width: '7%',
unresize: true,
align: "center",
templet: function (d) {
return '<span>' + d.warnTips + '</span>';
}
},
{
title: "操作",
width: '7%',
unresize: true,
align: "center",
templet: function (d) {
let html = "";
html += "<a onclick='rectDetail(" + JSON.stringify(d) + ")'>整改详情</a>";
/* if (d.isRect.indexOf('') > -1) {
html += "<a onclick='rectDetail(" + JSON.stringify(d) + ")'>整改详情</a>";
} */
return html;
},
} }
], ],
], ],
@ -173,6 +207,8 @@ function getReqParams(page, limit, type) {
page: page + "", page: page + "",
limit: limit + "", limit: limit + "",
proName: $('#proName').val(), proName: $('#proName').val(),
riskLevel: $('#riskLevel').val(),
isRect: $('#isRect').val(),
currentUserId: user.userId + '', currentUserId: user.userId + '',
isSup: user.isSup, isSup: user.isSup,
currentUserOrgId: user.orgId currentUserOrgId: user.orgId
@ -182,6 +218,8 @@ function getReqParams(page, limit, type) {
page: '1', page: '1',
limit: '10', limit: '10',
proName: '', proName: '',
riskLevel:'',
isRect:'',
currentUserId: user.userId + '', currentUserId: user.userId + '',
isSup: user.isSup, isSup: user.isSup,
currentUserOrgId: user.orgId currentUserOrgId: user.orgId
@ -207,8 +245,7 @@ function queryTable(type) {
pages(1, limitSize) pages(1, limitSize)
} }
// 关闭页面 // 整改详情
function closePage() { function rectDetail(obj) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 openIframeByParamObj("rectDetail", "整改详情", "../supplement/child/risk_rect_detail.html", "62%", "85%", obj);
parent.layer.close(index); //再执行关闭
} }