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

199 lines
8.5 KiB
Plaintext

<%@ page language="java" pageEncoding="UTF-8"%>
<!-- <style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style> -->
<script type="text/javascript">
var logic_flow = null;
function dosave_lf() {
const graphData= JSON.stringify(logic_flow.getGraphRawData());
$.post(ext.contextPath + "/command/emergencyConfigure/updateMenuLf.do", {id:"${emergencyConfigureId}",graphData: graphData} , function (result) {
if (result == 1) {
showAlert('s', '保存成功','lfAlertdiv');
} else {
showAlert('d', '保存失败','lfAlertdiv');
}
});
}
$(function() {
/*LogicFlow.use(Menu);
LogicFlow.use(DndPanel);*/
logic_flow = new LogicFlow({
container: document.querySelector("#logicFlowContainer"),
//网格
grid: true,
//是否允许拖动边的端点来调整连线。
adjustEdgeStartAndEnd: true,
plugins: [Menu,DndPanel,SelectionSelect]
});
logic_flow.extension.dndPanel.setPatternItems([
{
type: 'circle',
text: '开始',
label: '开始节点',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAAH6ji2bAAAABGdBTUEAALGPC/xhBQAAAnBJREFUOBGdVL1rU1EcPfdGBddmaZLiEhdx1MHZQXApraCzQ7GKLgoRBxMfcRELuihWKcXFRcEWF8HBf0DdDCKYRZpnl7p0svLe9Zzbd29eQhTbC8nv+9zf130AT63jvooOGS8Vf9Nt5zxba7sXQwODfkWpkbjTQfCGUd9gIp3uuPP8bZ946g56dYQvnBg+b1HB8VIQmMFrazKcKSvFW2dQTxJnJdQ77urmXWOMBCmXM2Rke4S7UAW+/8ywwFoewmBps2tu7mbTdp8VMOkIRAkKfrVawalJTtIliclFbaOBqa0M2xImHeVIfd/nKAfVq/LGnPss5Kh00VEdSzfwnBXPUpmykNss4lUI9C1ga+8PNrBD5YeqRY2Zz8PhjooIbfJXjowvQJBqkmEkVnktWhwu2SM7SMx7Cj0N9IC0oQXRo8xwAGzQms+xrB/nNSUWVveI48ayrFGyC2+E2C+aWrZHXvOuz+CiV6iycWe1Rd1Q6+QUG07nb5SbPrL4426d+9E1axKjY3AoRrlEeSQo2Eu0T6BWAAr6COhTcWjRaYfKG5csnvytvUr/WY4rrPMB53Uo7jZRjXaG6/CFfNMaXEu75nG47X+oepU7PKJvvzGDY1YLSKHJrK7vFUwXKkaxwhCW3u+sDFMVrIju54RYYbFKpALZAo7sB6wcKyyrd+aBMryMT2gPyD6GsQoRFkGHr14TthZni9ck0z+Pnmee460mHXbRAypKNy3nuMdrWgVKj8YVV8E7PSzp1BZ9SJnJAsXdryw/h5ctboUVi4AFiCd+lQaYMw5z3LGTBKjLQOeUF35k89f58Vv/tGh+l+PE/wG0rgfIUbZK5AAAAABJRU5ErkJggg==',
properties: {
id:'start',
status:0,
},
callback: () => {
logic_flow.once("node:dnd-add", (data) => {
const graphRawData = logic_flow.getGraphRawData();
const nodes = graphRawData.nodes;
let st = 0;
let start_id = nodes[nodes.length-1].id;
$.each(nodes, function(index, value) {
// 对每个元素执行的操作
const properties = value.properties;
//有相同节点删掉,最后一个是新拖拽的节点,筛掉
if(properties!=null && properties.id=='start' && index!=(nodes.length-1)){
start_id = value.id;
const id = nodes[nodes.length-1].id;
logic_flow.deleteNode(id);
st = 1;
showAlert('d', '开始节点只能有一个','lfAlertdiv');
}
});
if(st==0){
let start_node= logic_flow.getNodeDataById(start_id);
let text = start_node.text;
text.editable=false;
logic_flow.updateAttributes(start_id, { text: text });
}
});
}
},
{
type: 'rect',
label: '任务',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg==',
properties: {
id:'task',
status:0,
},
callback: (node) => {
logic_flow.once("node:dnd-add", (data) => {
const graphRawData = logic_flow.getGraphRawData();
const nodes = graphRawData.nodes;
let node_id = nodes[nodes.length-1].id;
addPowerFun(node_id);
});
}
},
/*{
type: 'diamond',
label: '条件判断'
},*/
{
type: 'circle',
text: '结束',
label: '结束节点',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAAH6ji2bAAAABGdBTUEAALGPC/xhBQAAA1BJREFUOBFtVE1IVUEYPXOf+tq40Y3vPcmFIdSjIorWoRG0ERWUgnb5FwVhYQSl72oUoZAboxKNFtWiwKRN0M+jpfSzqJAQclHo001tKkjl3emc8V69igP3znzfnO/M9zcDcKT67azmjYWTwl9Vn7Vumeqzj1DVb6cleQY4oAVnIOPb+mKAGxQmKI5CWNJ2aLPatxWa3aB9K7/fB+/Z0jUF6TmMlFLQqrkECWQzOZxYGjTlOl8eeKaIY5yHnFn486xBustDjWT6dG7pmjHOJd+33t0iitTPkK6tEvjxq4h2MozQ6WFSX/LkDUGfFwfhEZj1Auz/U4pyAi5Sznd7uKzznXeVHlI/Aywmk6j7fsUsEuCGADrWARXXwjxWQsUbIupDHJI7kF5dRktg0eN81IbiZXiTESic50iwS+t1oJgL83jAiBupLDCQqwziaWSoAFSeIR3P5Xv5az00wyIn35QRYTwdSYbz8pH8fxUUAtxnFvYmEmgI0wYXUXcCCSpeEVpXlsRhBnCEATxWylL9+EKCAYhe1NGstUa6356kS9NVvt3DU2fd+Wtbm/+lSbylJqsqkSm9CRhvoJVlvKPvF1RKY/FcPn5j4UfIMLn8D4UYb54BNsilTDXKnF4CfTobA0FpoW/LSp306wkXM+XaOJhZaFkcNM82ASNAWMrhrUbRfmyeI1FvRBTpN06WKxa9BK0o2E4Pd3zfBBEwPsv9sQBnmLVbLEIZ/Xe9LYwJu/Er17W6HYVBc7vmuk0xUQ+pqxdom5Fnp55SiytXLPYoMXNM4u4SNSCFWnrVIzKG3EGyMXo6n/BQOe+bX3FClY4PwydVhthOZ9NnS+ntiLh0fxtlUJHAuGaFoVmttpVMeum0p3WEXbcll94l1wM/gZ0Ccczop77VvN2I7TlsZCsuXf1WHvWEhjO8DPtyOVg2/mvK9QqboEth+7pD6NUQC1HN/TwvydGBARi9MZSzLE4b8Ru3XhX2PBxf8E1er2A6516o0w4sIA+lwURhAON82Kwe2iDAC1Watq4XHaGQ7skLcFOtI5lDxuM2gZe6WFIotPAhbaeYlU4to5cuarF1QrcZ/lwrLaCJl66JBocYZnrNlvm2+MBCTmUymPrYZVbjdlr/BxlMjmNmNI3SAAAAAElFTkSuQmCC',
properties: {
id:'end',
status:0,
},
callback: () => {
logic_flow.once("node:dnd-add", (data) => {
const graphRawData = logic_flow.getGraphRawData();
const nodes = graphRawData.nodes;
let end_id = nodes[nodes.length-1].id;
let end_node= logic_flow.getNodeDataById(end_id);
let text = end_node.text;
//结束节点文字不可编辑
text.editable=false;
logic_flow.updateAttributes(end_id, { text: text });
});
}
}
]);
logic_flow.extension.menu.setMenuByType({
type: "rect",
menu: [
{
text: '删除',
callback(node) {
// node为该节点数据
const res = delPowerFun(node.id);
},
},
{
text: "详细信息",
callback(node) {
let node_id = node.id;
editPowerFun(node_id);
},
},
{
text: "工单预配置",
callback(node) {
let node_id = node.id;
buttongd(node_id);
},
},
],
});
logic_flow.extension.menu.setMenuByType({
type: "circle",
menu: [],
});
logic_flow.render();
$.post(ext.contextPath + "/command/emergencyConfigure/getEdit.do", {id:"${emergencyConfigureId}"} , function (result) {
if (result !=null) {
result = JSON.parse(result);
const graphData = result.nodes;
if(graphData!=null){
let data = JSON.parse(graphData);
logic_flow.addElements(data);
let nodes = data.nodes;
$.each(nodes, function(index, value) {
// 对每个元素执行的操作
const properties = value.properties;
//开始和结束节点文字不可编辑
if(properties!=null && (properties.id=='start' || properties.id=='end')){
const node_id = value.id;
const node= logic_flow.getNodeDataById(node_id);
let text = node.text;
//结束节点文字不可编辑
text.editable=false;
logic_flow.updateAttributes(node_id, { text: text });
}
});
}
}
});
});
</script>
<div class="modal fade" id="logicFlowModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">配置流程图</h4>
</div>
<div id="lfAlertdiv"></div>
<div class="modal-body" id="logicFlowContainer" style="height:600px;">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave_lf()">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>