199 lines
8.5 KiB
Plaintext
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">×</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>
|