Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/command/processImportantConfigureDrill.jsp
2026-01-16 14:13:44 +08:00

599 lines
20 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<html:html lang="true">
<head>
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="stylesheet" href="<%=request.getContextPath()%>/CSS/comm2.css"/>
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/snaker_resource/css/style.css"/>
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/snaker_resource/css/snaker.css"/>
<link href="<%=request.getContextPath()%>/node_modules/snaker_resource/bootstrap.css" rel="stylesheet"/>
<script src="<%=request.getContextPath()%>/node_modules/snaker_resource/js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/JS/echarts.js" type="text/javascript" ></script>
<script src="<%=request.getContextPath()%>/node_modules/snaker_resource/bootstrap/2.2.2/js/bootstrap.min.js" type="text/javascript"></script>
<style type="text/css">
#left {
width: 40%;
height: 100%;
background: #FFFFFF;
float: left;
align: center;
}
#right {
width: 60%;
height: 100%;
background: #FFFFFF;
float: left;
align: center;
}
#topdiv {
width: 100%;
height: 50%;
background: #FFFFFF;
float: left;
align: center;
}
#topdiv_top {
width: 100%;
height: 20%;
background: #FFFFFF;
float: left;
align: center;
}
#topdiv_under {
width: 100%;
height: 80%;
background: #FFFFFF;
float: left;
align: center;
}
#topdiv_left {
width: 50%;
height: 100%;
background: #FFFFFF;
float: left;
align: center;
border:1px solid #F7F7F7;
}
#topdiv_right {
width: 50%;
height: 100%;
background: #FFFFFF;
float: left;
align: center;
border:1px solid #F7F7F7;
}
.topdiv_right_content {
width: 100%;
height: 50%;
background: #FFFFFF;
float: left;
align: center;
border:1px solid #F7F7F7;
}
#centerdiv {
width: 100%;
height: 30%;
background: #FFFFFF;
float: left;
align: center;
}
#underdiv {
width: 100%;
height: 20%;
background: #FFFFFF;
float: left;
align: center;
}
#underdiv_back {
width: 15%;
height: 30%;
background: #FFFFFF;
float: left;
align: center;
}
#underdiv_center {
width: 70%;
height: 30%;
background: #FFFFFF;
float: left;
align: center;
}
#underdiv_next {
width: 15%;
height: 30%;
background: #FFFFFF;
float: left;
align: center;
}
.showechart{ margin:1 auto; width:98%; height:100%;}
</style>
<script type="text/javascript">
var mychart1 = null;
var nodeArr = [];
var nodeLine = [];
function echartdata(content){
var jsonArray= ${jsonArray};//任务矩形json
var titleName ='${titlename}';//标题
nodeArr = [];
for(var i = 0, len = jsonArray.length; i < len; i++) {
if(content==jsonArray[i].contents){
nodeArr.push({
name: jsonArray[i].contents,
id: jsonArray[i].id,
x: jsonArray[i].contents_x,
y: jsonArray[i].contents_y,
value: jsonArray[i].contents,
symbol:'rect',
symbolSize: [90, 35],
itemStyle: {
normal: {
color:'#836FFF'//节点背景色
}
},
label: {
color: '#EEEE00'//字体颜色
}
});
}else{
nodeArr.push({
name: jsonArray[i].contents,
id: jsonArray[i].id,
x: jsonArray[i].contents_x,
y: jsonArray[i].contents_y,
value: jsonArray[i].contents,
symbol:'rect',
symbolSize: [90, 35],
itemStyle: {
normal: {
color:'#81c0ed'//节点背景色
}
},
label: {
color: '#333333'//字体颜色
}
});
}
}
nodeLine = [];
for(var i = 0, len = jsonArray.length; i < len; i=i+1) {
nodeLine.push({
source: jsonArray[i].startLine+'',
target: jsonArray[i].endLine+''
});
}
nodeLine.push({
source: jsonArray.length,
target: jsonArray.length+1
});
var res = {
"start": {
name: '启动',
x: 500,
y: 100,
value: [],
symbol:'circle', //让节点为矩形显示
symbolSize: [50, 50],
itemStyle: {
normal: {
color: '#22c3aa',
}
},
label: {
color: '#333333'
}
},
"nodes": nodeArr,
"end": {
name: '结束',
x: 500,
y: ${end_y},
value: [],
symbol:'circle', //让节点为矩形显示
symbolSize: [50, 50],
itemStyle: {
normal: {
color: '#CD3333',
}
},
label: {
color: '#333333'
}
}
}
var resLine = {
"start": {
source: 0,
target: 1
},
"nodes": nodeLine,
}
//流程框解析
function processGenerator(res) {
var processArr = [];
processArr[0] = res.start;
for(var i = 0, len = res.nodes.length; i < len; i++) {
processArr.push(res.nodes[i]);
}
processArr[res.nodes.length + 1] = res.end;
return processArr;
}
//线条解析
function processLinks(resLine) {
var processArr = [];
processArr[0] = resLine.start;
for(var i = 0, len = resLine.nodes.length; i < len; i++) {
processArr.push(resLine.nodes[i]);
}
//processArr[resLine.nodes.length + 1] = resLine.end;
return processArr;
}
mychart1 = echarts.init(document.getElementById('forceChart'));
//echarts
var forceOption = {
title: {
text: '',
x:'center',
y:'0',
textStyle:{
fontWeight:'normal',
}
},
tooltip: {},
animationDurationUpdate: 1500,
animationEasingUpdate: 'quinticInOut',
series : [
{
type: 'graph',
tooltip: {
backgroundColor:'skyblue',
formatter:'{b}<br/>{c}'
},
layout: 'none',
symbolSize: 50,
roam: false,//禁止用鼠标滚轮缩小放大效果
label: {
normal: {
show: true
}
},
edgeSymbol: ['none', 'none'],
edgeSymbolSize: [4, 10],
edgeLabel: {
normal: {
textStyle: {
fontSize: 20
}
}
},
data: processGenerator(res),
links: processLinks(resLine),
lineStyle: {
normal: {
opacity: 0.9,
//symbolSize: [0, 0],//箭头大小
width: 1,
curveness: 0
}
}
}
]
};
//mychart1.clear();清楚缓存,重新加载新的 echart
mychart1.setOption(forceOption);
}
//点击流程图的方法
function nodeonclick(){
mychart1.on('click', function (param){
//获取节点点击的数组序号
var arrayIndex = param.dataIndex;
if (param.dataType == 'node') {
var id = nodeArr[arrayIndex-1].id;//根据下标获得数组中对应的id
if(id != undefined){
$.ajax({//type为区分上一步、下一步按钮 type=b为上一步 type=n为下一步 ext.contextPath + "/base/downloadFile.do?key="+id+"&tbName="+tbName
url:"<%=request.getContextPath()%>/command/importantConfigure/getDrillDataAjaxForTable.do?id="+id,
type:'post',
data:{type:'json'},
success:function(res){
var arr= JSON.parse(res);
if(arr.length==0){
alert('演练结束');
//刷新流程图
echartdata('结束');
}else{
//console.log(arr.length);
if(arr.length==1){
$("#tabletest").empty();//先将下面的td置空
for(var i=0;i<arr.length;i++){
var tr;
            tr='<td>'+arr[i].content+'</td>'+'<td>'+arr[i].contentsdetail+'</td>'+'<td>'+arr[i].personliablename+'</td>'
$("#tabletest").append('<tr>'+tr+'</tr>')
$("#rank").val(arr[0].rank);
$("#detailid").val(arr[0].id);
$("#startupcondition").val(arr[0].startupcondition);
$("#itemnumber").val(arr[0].itemnumber);
            }
//刷新流程图
echartdata(arr[0].content);
}else{
console.log('进了弹窗方法');
selectNodes(res);
}
}
},
async:true//异步方式
});
}
}else {
}
});
}
function dobutton(){
/*
上一步按钮
*/
$("#back").click(function(){
var rankInt = $("#rank").val();
var id = $("#id").val();
var startupcondition = $("#startupcondition").val();
$.ajax({
//type为区分上一步、下一步按钮 type=b为上一步 type=n为下一步rank为配置表中的层级
url:"<%=request.getContextPath()%>/command/importantConfigure/getDrillDataAjax.do?type=b&rank="+rankInt+"&id="+id+"&startupcondition="+startupcondition,
type:'post',
data:{type:'json'},
success:function(res){
var arr= JSON.parse(res);
$("#tabletest").empty();//先将下面的td置空
if(arr.length==0){
alert('演练结束');
//刷新流程图
echartdata('启动');
}else{
for(var i=0;i<arr.length;i++){
var tr;
            tr='<td>'+arr[i].content+'</td>'+'<td>'+arr[i].contentsdetail+'</td>'+'<td>'+arr[i].personliablename+'</td>'
$("#tabletest").append('<tr>'+tr+'</tr>')
$("#rank").val(arr[0].rank);
$("#detailid").val(arr[0].id);
$("#startupcondition").val(arr[0].startupcondition);
$("#itemnumber").val(arr[0].itemnumber);
            }
//刷新流程图
echartdata(arr[0].content);
}
},
async:true
});
});
/*
下一步按钮
*/
$("#next").click(function(){
var rankInt = $("#rank").val();
var itemnumber = $("#itemnumber").val();
var id = $("#id").val();
$.ajax({//type为区分上一步、下一步按钮 type=b为上一步 type=n为下一步
url:"<%=request.getContextPath()%>/command/importantConfigure/getDrillDataAjax.do?type=n&rank="+rankInt+"&id="+id+"&itemnumber="+itemnumber,
type:'post',
data:{type:'json'},
success:function(res){
var arr= JSON.parse(res);
if(arr.length==0){
alert('演练结束');
//刷新流程图
echartdata('结束');
}else{
//console.log(arr.length);
if(arr.length==1){
$("#tabletest").empty();//先将下面的td置空
for(var i=0;i<arr.length;i++){
var tr;
            tr='<td>'+arr[i].content+'</td>'+'<td>'+arr[i].contentsdetail+'</td>'+'<td>'+arr[i].personliablename+'</td>'
$("#tabletest").append('<tr>'+tr+'</tr>')
$("#rank").val(arr[0].rank);
$("#detailid").val(arr[0].id);
$("#startupcondition").val(arr[0].startupcondition);
$("#itemnumber").val(arr[0].itemnumber);
            }
//刷新流程图
echartdata(arr[0].content);
}else{
console.log('进了弹窗方法');
selectNodes(res);
//$('#next').popover('destroy');
}
}
},
async:true
});
});
}
//点击节点跳转到该节点
function getbranch(detailid){
var rankInt = $("#rank").val();
var itemnumber = $("#itemnumber").val();
var id = $("#id").val();//三级菜单的id
$.ajax({//type为区分上一步、下一步按钮 type=b为上一步 type=n为下一步
url:"<%=request.getContextPath()%>/command/importantConfigure/getDrillDataAjaxnext.do?type=n&rank="+rankInt+"&detailid="+detailid+"&itemnumber="+itemnumber,
type:'post',
data:{type:'json'},
success:function(res){
var arr= JSON.parse(res);
if(arr.length==0){
alert('演练结束');
//刷新流程图
echartdata('结束');
}else{
if(arr.length==1){
$("#tabletest").empty();//先将下面的td置空
for(var i=0;i<arr.length;i++){
var tr;
            tr='<td>'+arr[i].content+'</td>'+'<td>'+arr[i].contentsdetail+'</td>'+'<td>'+arr[i].personliablename+'</td>'
$("#tabletest").append('<tr>'+tr+'</tr>')
$("#rank").val(arr[0].rank);
$("#detailid").val(arr[0].id);
$("#startupcondition").val(arr[0].startupcondition);
$("#itemnumber").val(arr[0].itemnumber);
            }
//刷新流程图
echartdata(arr[0].content);
$('#next').popover('hide');
}else{
}
}
},
async:true
});
}
function selectNodes(res){
var arr= JSON.parse(res);
var ulstring = "<table class=\"table table-bordered\">";
for(var i=0;i<arr.length;i++){
var detailid = arr[i].id;
ulstring +="<tr><td bgcolor=\"#81C0ED\" style=\"cursor:pointer;\" onclick=\"getbranch(\'"+detailid+"\')\">"+arr[i].content+"</td></tr>";
}
ulstring +="</table>";
$('#next').popover('destroy');//先注销弹窗
$("#next").popover({
trigger:'manual',//manual 触发方式
placement : 'left',
title:'<div style="text-align:left; color:gray; font-size:12px;">请选择下一步演练的节点</div>',
html: 'true',
content : ulstring, //这里可以直接写字符串,也可以 是一个函数,该函数返回一个字符串;
animation: false
}).on("mouseleave", function () {
var _this = this;
setTimeout(function () {
if (!$(".popover:hover").length) {
$(_this).popover("hide")
}
}, 100);
});
$("#next").popover('show'); //显示弹窗 不然冲突 弹窗需要点击2下
};
$(function() {
//获取echart数据
echartdata();
//
nodeonclick();
//按钮点击
dobutton();
});
</script>
</head>
<body>
<input type="hidden" id="rank" name="rank" value="">
<input type="hidden" id="id" name="id" value="${param.id}">
<input type="hidden" id="detailid" name="detailid" value="">
<input type="hidden" id="startupcondition" name="startupcondition" value="">
<input type="hidden" id="itemnumber" name="itemnumber" value="">
<div>
<!--左边流程图的div-->
<div id="left">
<div id="forceChart" class="showechart"></div>
</div>
<!--右边列表的div-->
<div id="right">
<!--上方的div 标题-->
<div id="topdiv" style="text-align:center">
<div id="topdiv_top">
<table class="table table-striped table-hover table-condensed" >
<tr>
<th width="100%" bgcolor="#E0FFFF">${titlename}-异常事件演练</th>
</tr>
</table>
</div>
<div id="topdiv_under">
<div id="topdiv_left">
暂无图片
</div>
<div id="topdiv_right" style="text-align:left">
<div class="topdiv_right_content"><strong>操作说明&nbsp;:&nbsp;</strong>${meno}</div>
<div class="topdiv_right_content"><strong>总负责人&nbsp;:&nbsp;</strong>${_firstPerson}</div>
</div>
</div>
</div>
<!--中间列表div-->
<div id="centerdiv">
<table class="table table-striped table-hover table-condensed" >
<tr>
<th width="30%" bgcolor="#E0FFFF">操作内容</th>
<th width="30%" bgcolor="#E0FFFF">操作详情</th>
<th width="30%" bgcolor="#E0FFFF">负责人</th>
</tr>
<tbody id="tabletest">
</tbody>
</table>
</div>
<!--下方的div 上一步 下一步-->
<div id="underdiv">
<div id="underdiv_back">
<button id="back" type="button" class="btn btn-primary" data-toggle="button">
上一步
</button>
</div>
<div id="underdiv_center">
</div>
<div id="underdiv_next">
<button id="next" type="button" class="btn btn-primary" data-toggle="popover" >
下一步
</button>
</div>
</div>
</div>
</div>
</body>
</html:html>
<c:if test="${not empty msg}">
<script type="text/javascript">
alert("${msg}");
</script>
</c:if>