Files
HTCloud/HT.Cloud.Web/Areas/DevicesManage/Views/DeviceMonitor/Index - 复制.cshtml
dell fbc097d131 1、陕西建龙打包版本
2、drawio导入SFC
3、多系统并存修改
2025-02-19 16:06:08 +08:00

877 lines
31 KiB
Plaintext

@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment env
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<style>
.text-and-button {
display: flex;
align-items: center;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
height:30px;
}
.text-and-button .text-content {
/* 设置文本格式 */
font-family: Arial, sans-serif;
font-size: 16px;
color: #333;
margin-right: 20px; /* 文本与按钮之间的间隔 */
}
.text-and-button button {
/* 设置按钮样式 */
background-color:#4CAF50; /* 绿色背景 */
border: none;
color: white;
padding: 10px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
cursor: pointer;
border-radius: 5px;
}
/* 初始样式定义 */
.defaultNode {
fill: #ffffff;
stroke: #000000;
stroke-width: 2px;
color: #000000;
}
/* 更新后的样式 */
.updatedNode {
fill: #add8e6; /* 浅蓝色作为底色 */
stroke: #333333;
stroke-width: 3px;
color: #ff0000; /* 红色作为文字颜色 */
}
.layui-card {
border: 1px solid #f2f2f2;
border-radius: 5px;
}
.icon {
margin-right: 10px;
color: #1aa094;
}
.icon-cray {
color: #ffb800 !important;
}
.icon-blue {
color: #1e9fff !important;
}
.icon-tip {
color: #ff5722 !important;
}
.layuimini-qiuck-module {
text-align: center;
margin-top: 10px
}
.layuimini-qiuck-module a i {
display: inline-block;
width: 100%;
height: 60px;
line-height: 60px;
text-align: center;
border-radius: 2px;
font-size: 30px;
background-color: #F8F8F8;
color: #333;
transition: all .3s;
-webkit-transition: all .3s;
}
.layuimini-qiuck-module a cite {
position: relative;
top: 2px;
display: block;
color: #666;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 14px;
}
.welcome-module {
width: 100%;
height: 210px;
}
.panel {
background-color: #fff;
border: 1px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);
box-shadow: 0 1px 1px rgba(0,0,0,.05)
}
.panel-body {
padding: 10px
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 12px;
color: inherit
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
margin-top: .3em;
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
margin-top: .3em;
}
.layui-red {
color: red
}
.main_btn > p {
height: 40px;
}
.layui-bg-number {
background-color: #F8F8F8;
}
.layuimini-notice:hover {
background: #f6f6f6;
}
.layuimini-notice {
padding: 7px 16px;
clear: both;
font-size: 12px !important;
cursor: pointer;
position: relative;
transition: background 0.2s ease-in-out;
}
.layuimini-notice-title, .layuimini-notice-label {
padding-right: 70px !important;
text-overflow: ellipsis !important;
overflow: hidden !important;
white-space: nowrap !important;
}
.layuimini-notice-title {
line-height: 28px;
font-size: 14px;
}
.layuimini-notice-extra {
position: absolute;
top: 50%;
margin-top: -8px;
right: 16px;
display: inline-block;
height: 16px;
color: #999;
}
</style>
<script>
layui.use(['layer', 'echarts', 'common', 'tree'], function () {
var $ = layui.jquery,
layer = layui.layer,
common = layui.common,
tree = layui.tree,
echarts = layui.echarts;
wcLoading.close();
// 模拟数据
var data = [{
title:'主流程',
id: 1,
children: [
{
title:'启动流程',
id: 1000,
children: [
{
title:'启动设备1流程',
id: 10001
},
{
title:'启动设备2流程',
id: 10002
}
,
{
title:'启动设备3流程',
id: 10002
}
]
},
{
title:'停机流程',
id: 2000,
children: [
{
title:'停止设备1流程',
id: 20001
},
{
title:'停止设备2流程',
id: 20002
}
,
{
title:'停止设备3流程',
id: 20002
}
]
},
{
title:'二次调节流程',
id: 3000,
children: [
{
title:'升温流程',
id: 30001
},
{
title:'降温流程',
id: 30002
}
,
{
title:'高产模式流程',
id: 30002
}
]
},
{
title: "其他子流程",
id:5000
}
]
}];
// 渲染
tree.render({
elem: '#ID-tree-demo-onlyIconControl',
data: data,
onlyIconControl: true, // 是否仅允许节点左侧图标控制展开收缩
click: function(obj){
layer.msg(JSON.stringify(obj.data));
}
});
//拖拽
const draggable_dev = true;
// //开发色彩
// const fill_backgroud = '#8d98a3';
// const fill_iobox = '#8d98a3';
// const stroke_iobox = '#494d52';;
// const stroke_iobox_line = '#42444a';
// const stroke_iobox_spiltline = '#474b58';
// const fill_top_name = '#f1f4f6';
// const fill_top_name_value = '#f1f4f6';
// const fill_rect = '#a4a9ab';
// const fill_rect_text_name = '#e5e9ec';
// const fill_rect_text_description = '#f3f6f8';
// const fill_rect_io_on = '#aaff00';
// const fill_rect_io_off = '#a3a6a9';
//新版色彩
const fill_backgroud = '#28333e';
//const fill_backgroud = '#2a0056';
// const fill_iobox = '#2492e9';//00
// const fill_iobox = '#345266';//001
const fill_iobox = '#345b87';//002
// const fill_iobox = '#50657a';//003
// const fill_iobox = '#334b64';//004
//const fill_iobox = '#3d5062';//005
const stroke_iobox = '#494d52';;
const stroke_iobox_line = '#42444a';
const stroke_iobox_spiltline = '#474b58';
const fill_top_name = '#ffffff';
const fill_top_name_value = '#ffffff';
const fill_rect = '#cecece';
const fill_rect_text_name = '#ffffff';
//const fill_rect_text_name = '#02f2e0';
const fill_rect_text_description = '#ffffff';
//const fill_rect_text_description = '#02f2e0';
const fill_rect_io_on = '#00ff55';//'#00ff7f'
//const fill_rect_io_on = '#00ff7f'
const fill_rect_io_off = '#cecece';
mermaid.initialize({
startOnLoad: true,
theme: 'default',
securityLevel: 'loose', // 允许对 SVG 进行后续的 JavaScript 操作
useMaxWidth:true,
maxWidth: 10000,
maxHeight: 6000
});
const diagramDefinition=`
graph TD
S_0[S_0<br>初始步]-->H0_SYS.SOn{{新系统未启用}}
H0_SYS.SOn-->S_01>S_0]
S_0[S_0<br>初始步]-->T_NOT_Run{{系统未运行(三级报警)}}
T_NOT_Run-->S_02>S_0]
S_0[S_0<br>初始步]-->T_Alarm3_Stop{{三级报警三类紧急停机}}
T_Alarm3_Stop-->S_Alarm3_Stop[S_Alarm3_Stop<br>三级报警_三类_紧急停机]
S_Alarm3_Stop-->Sys_On1{{True}}
Sys_On1-->S_03>S_0]
S_0[S_0<br>初始步]-->T_Alarm2_Stop{{三级报警二类快速停机}}
T_Alarm2_Stop-->S_Alarm2_Stop[S_Alarm2_Stop<br>三级报警_二类_快速停机]
S_Alarm2_Stop-->Sys_On2{{True}}
Sys_On2-->S_04>S_0]
S_0[S_0<br>初始步]-->T_Btn3_Stop{{紧急停机按钮}}
T_Btn3_Stop-->S_Btn3_Stop[S_Btn3_Stop<br>紧急停机按钮停机]
S_Btn3_Stop-->Sys_On3{{True}}
Sys_On3-->S_05>S_0]
S_0[S_0<br>初始步]-->T_Adjust4{{四次调节}}
T_Adjust4-->S_Adjust_4_0[S_Adjust_4_0<br>四次调节初始信息复位]
S_Adjust_4_0-->Sys_On4{{True}}
Sys_On4-->S_Adjust_4_1[S_Adjust_4_1<br>四次调节请求置位]
S_Adjust_4_1-->H0_Alarm.Alarm3{{三级报警}}
H0_Alarm.Alarm3-->H0_INFO_E26[H0_INFO_E26<br>Set H0_INFO_E26<br> Reset 启动请求]
H0_INFO_E26-->Sys_On5{{True}}
Sys_On5-->S_06>S_0]
S_Adjust_4_1-->A24_Step.Stop_F{{停止失败}}
A24_Step.Stop_F-->H0_INFO_E27[H0_INFO_E27<br>Set H0_INFO_E27]
H0_INFO_E27-->Sys_On6{{True}}
Sys_On6-->Jump_S_Adjust_4_1>S_Adjust_4_1]
S_Adjust_4_1-->A24_Step.Stop_W{{停止完成}}
A24_Step.Stop_W-->S_Adjust_4_2[S_Adjust_4_2<br>四次调节完成复位]
S_Adjust_4_2-->A24_Step.Stop_D{{停止延迟完成}}
A24_Step.Stop_D-->S_Adjust_4_3[S_Adjust_4_3<br>Reset A24_Step.Stop_Q<br>Reset Reset A24_Step.Stop_D]
S_Adjust_4_3-->Sys_On7{{True}}
Sys_On7-->S_07>S_0]
S_0[S_0<br>初始步]-->T_Adjust2{{二次调节}}
T_Adjust2-->S_Adjust_2_0[S_Adjust_2_0<br>二次调节初始信息复位]
S_Adjust_2_0-->Sys_On26{{True}}
Sys_On26-->S_Adjust_2_1[S_Adjust_2_1<br>二次调节请求置位]
S_Adjust_2_1-->H0_Alarm.Alarm3-2{{三级报警}}
H0_Alarm.Alarm3-2-->H0_INFO_E24[H0_INFO_E24<br>Set H0_INFO_E24<br> Reset A24_Step.Start_Q]
H0_INFO_E24-->Sys_On27{{True}}
Sys_On27-->S_27>S_0]
S_Adjust_2_1-->A24_Step.Start_F{{启动失败}}
A24_Step.Start_F-->H0_INFO_E25[H0_INFO_E25<br>Set H0_INFO_E25]
H0_INFO_E25-->Sys_On28{{True}}
Sys_On28-->Jump_S_Adjust_2_1>S_Adjust_2_1]
S_Adjust_2_1-->A24_Step.Start_W{{二次调节转换.启动完成}}
A24_Step.Start_W-->S_Adjust_2_2[S_Adjust_2_2<br>二次调节完成复位]
S_Adjust_2_2-->A24_Step.Start_D{{二次调节启动延迟完成}}
A24_Step.Start_D-->S_Adjust_2_3[S_Adjust_2_3<br>Reset A24_Step.Start_Q<br>Reset Reset A24_Start.Stop_D]
S_Adjust_2_3-->Sys_On29{{True}}
Sys_On29-->S_29>S_0]
S_0[S_0<br>初始步]-->T_AutoStart{{一键启动}}
T_AutoStart-->S_H0_Start_0[S_H0_Start_0<br>一键启动初始信息复位]
S_H0_Start_0-->Sys_On_S_H0_Start_0{{True}}
Sys_On_S_H0_Start_0-->S_H0_Start_1[S_H0_Start_1<br>一键启动请求置位]
S_H0_Start_1-->H0_Alarm.Alarm3-1{{三级报警}}
H0_Alarm.Alarm3-1-->H0_INFO_E0[H0_INFO_E0<br>Set H0_INFO_E0<br>Reset H0_Step.Start_Q]
H0_INFO_E0-->Sys_On8{{True}}
Sys_On8-->S_08>S_0]
S_H0_Start_1-->H0_Step.Stop_F{{启动失败}}
H0_Step.Stop_F-->H0_INFO_E1[H0_INFO_E1<br>Set H0_INFO_E1]
H0_INFO_E1-->Sys_On9{{True}}
Sys_On9-->S_H0_Start_1-1>S_H0_Start_1]
S_H0_Start_1-->H0_Step.Stop_W{{启动完成}}
H0_Step.Stop_W-->S_H0_Start_2[一键停机完成复位<br>Reset H0_INFO_E1<br>Reset H0_Step.Start_Q]
S_H0_Start_2-->Sys_On10{{True}}
Sys_On10-->S_10>S_0]
S_0[S_0<br>初始步]-->T_Start1{{液压润滑系统启动}}
T_Start1-->S_H1_Start_0[S_H1_Start_0<br>H1启动初始信息复位]
S_H1_Start_0-->Sys_On_S_H1_Start_0{{True}}
Sys_On_S_H1_Start_0-->S_H1_Start_1[S_H1_Start_1<br>一键启动请求置位]
S_H1_Start_1-->H1_Alarm.Alarm3-1{{三级报警}}
H1_Alarm.Alarm3-1-->H1_INFO_E0[H1_INFO_E0<br>Set H1_INFO_E0<br>Reset H1_Step.Start_Q]
H1_INFO_E0-->Sys_On11{{True}}
Sys_On11-->S_11>S_0]
S_H1_Start_1-->H1_Step.Stop_F{{启动失败}}
H1_Step.Stop_F-->H1_INFO_E1[H1_INFO_E1<br>Set H1_INFO_E1]
H1_INFO_E1-->Sys_On12{{True}}
Sys_On12-->S_H1_Start_1-1>S_H1_Start_1]
S_H1_Start_1-->H1_Step.Stop_W{{启动完成}}
H1_Step.Stop_W-->S_H1_Start_2[一键停机完成复位<br>Reset H1_INFO_E1<br>Reset H1_Step.Start_Q]
S_H1_Start_2-->Sys_On13{{True}}
Sys_On13-->S_13>S_0]
S_0[S_0<br>初始步]-->T_Start2{{烟气系统启动}}
T_Start2-->S_H2_Start_0[S_H2_Start_0<br>H2启动初始信息复位]
S_H2_Start_0-->Sys_On_S_H2_Start_0{{True}}
Sys_On_S_H2_Start_0-->S_H2_Start_1[S_H2_Start_1<br>一键启动请求置位]
S_H2_Start_1-->H2_Alarm.Alarm3-1{{三级报警}}
H2_Alarm.Alarm3-1-->H2_INFO_E0[H2_INFO_E0<br>Set H2_INFO_E0<br>Reset H2_Step.Start_Q]
H2_INFO_E0-->Sys_On14{{True}}
Sys_On14-->S_14>S_0]
S_H2_Start_1-->H2_Step.Stop_F{{启动失败}}
H2_Step.Stop_F-->H2_INFO_E1[H2_INFO_E1<br>Set H2_INFO_E1]
H2_INFO_E1-->Sys_On15{{True}}
Sys_On15-->S_H2_Start_1-1>S_H2_Start_1]
S_H2_Start_1-->H2_Step.Stop_W{{启动完成}}
H2_Step.Stop_W-->S_H2_Start_2[一键停机完成复位<br>Reset H2_INFO_E1<br>Reset H2_Step.Start_Q]
S_H2_Start_2-->Sys_On16{{True}}
Sys_On16-->S_16>S_0]
S_0[S_0<br>初始步]-->T_Start3{{磨机系统启动}}
T_Start3-->S_H3_Start_0[S_H3_Start_0<br>H3启动初始信息复位]
S_H3_Start_0-->Sys_On_S_H3_Start_0{{True}}
Sys_On_S_H3_Start_0-->S_H3_Start_1[S_H3_Start_1<br>一键启动请求置位]
S_H3_Start_1-->H3_Alarm.Alarm3-1{{三级报警}}
H3_Alarm.Alarm3-1-->H3_INFO_E0[H3_INFO_E0<br>Set H3_INFO_E0<br>Reset H3_Step.Start_Q]
H3_INFO_E0-->Sys_On17{{True}}
Sys_On17-->S_017>S_0]
S_H3_Start_1-->H3_Step.Stop_F{{启动失败}}
H3_Step.Stop_F-->H3_INFO_E1[H3_INFO_E1<br>Set H3_INFO_E1]
H3_INFO_E1-->Sys_On18{{True}}
Sys_On18-->S_H3_Start_1-1>S_H3_Start_1]
S_H3_Start_1-->H3_Step.Stop_W{{启动完成}}
H3_Step.Stop_W-->S_H3_Start_2[一键停机完成复位<br>Reset H3_INFO_E1<br>Reset H3_Step.Start_Q]
S_H3_Start_2-->Sys_On19{{True}}
Sys_On19-->S_19>S_0]
S_0[S_0<br>初始步]-->T_Start4{{给煤系统启动}}
T_Start4-->S_H4_Start_0[S_H4_Start_0<br>H4启动初始信息复位]
S_H4_Start_0-->Sys_On_S_H4_Start_0{{True}}
Sys_On_S_H4_Start_0-->S_H4_Start_1[S_H4_Start_1<br>一键启动请求置位]
S_H4_Start_1-->H4_Alarm.Alarm3-1{{三级报警}}
H4_Alarm.Alarm3-1-->H4_INFO_E0[H4_INFO_E0<br>Set H4_INFO_E0<br>Reset H4_Step.Start_Q]
H4_INFO_E0-->Sys_On20{{True}}
Sys_On20-->S_20>S_0]
S_H4_Start_1-->H4_Step.Stop_F{{启动失败}}
H4_Step.Stop_F-->H4_INFO_E1[H4_INFO_E1<br>Set H4_INFO_E1]
H4_INFO_E1-->Sys_On21{{True}}
Sys_On21-->S_H4_Start_1-1>S_H4_Start_1]
S_H4_Start_1-->H4_Step.Stop_W{{启动完成}}
H4_Step.Stop_W-->S_H4_Start_2[一键停机完成复位<br>Reset H4_INFO_E1<br>Reset H4_Step.Start_Q]
S_H4_Start_2-->Sys_On22{{True}}
Sys_On22-->S_22>S_0]
S_0[S_0<br>初始步]-->T_Start5{{收粉系统启动}}
T_Start5-->S_H5_Start_0[S_H5_Start_0<br>H5启动初始信息复位]
S_H5_Start_0-->Sys_On_S_H5_Start_0{{True}}
Sys_On_S_H5_Start_0-->S_H5_Start_1[S_H5_Start_1<br>一键启动请求置位]
S_H5_Start_1-->H5_Alarm.Alarm3-1{{三级报警}}
H5_Alarm.Alarm3-1-->H5_INFO_E0[H5_INFO_E0<br>Set H5_INFO_E0<br>Reset H5_Step.Start_Q]
H5_INFO_E0-->Sys_On23{{True}}
Sys_On23-->S_23>S_0]
S_H5_Start_1-->H5_Step.Stop_F{{启动失败}}
H5_Step.Stop_F-->H5_INFO_E1[H5_INFO_E1<br>Set H5_INFO_E1]
H5_INFO_E1-->Sys_On24{{True}}
Sys_On24-->S_H5_Start_1-1>S_H5_Start_1]
S_H5_Start_1-->H5_Step.Stop_W{{启动完成}}
H5_Step.Stop_W-->S_H5_Start_2[一键停机完成复位<br>Reset H5_INFO_E1<br>Reset H5_Step.Start_Q]
S_H5_Start_2-->Sys_On25{{True}}
Sys_On25-->S_25>S_0]
`
const flowchart1diagramDefinition = `
graph TD
step0[S0<br>初始步]-->con0{{执行该流程请求}}
con0-->step1["S1<br>执行动作1"]
step1-->con11{{"S2转换条件"}}
con11-->step2["S2<br>执行子流程"]
step2-->con2{{S3转换条件}}
con2-->step3["S3
设备输出1
设备输出2"]
step3-->con3{{S6转换条件}}
con3-->step6[S6<br>Set 执行该流程完成]
step1-->con12{{S4转换条件}}
con12-->step4["S4<br>执行子流程"]
step4-->con4{{S5转换条件}}
con4-->step5[S5<br>执行子流程]
step5-->con5{{S6转换条件}}
con5-->step6
step6-->con6{{执行该流程完成}}
con6-->step0
click con11 callback "这是一个悬浮提示"
click step2 callback "Node with Double Click"
`;
const diagramDefinition2 = `
graph TD
step0{S0_初始步}-->con0[执行该流程请求]
con0-->step1{S1_执行动作1}
step1-->con11[S2转换条件]
con11-->step2{S2_执行子流程}
step2-->con2[S4转换条件]
con2-->step4{S4_执行动作4}
step1-->con12[S3转换条件]
con12-->step3{S3_执行动作3}
step3-->con3[S4转换条件]
con3-->step4
`;
const element = document.getElementById("mermaidDiagram");
mermaid.render('graphDiv', diagramDefinition).then(({svg}) => {
element.innerHTML = svg;
});
function tooltip () {
const tooltip = document.createElement('div');
tooltip.style.position = 'absolute';
tooltip.style.border = '1px solid black';
tooltip.style.backgroundColor = 'white';
tooltip.style.padding = '10px';
tooltip.style.zIndex = '1000';
tooltip.style.left = event.clientX + 'px';
tooltip.style.top = event.clientY + 'px';
// 假设这里我们要显示一个简单的流程图
tooltip.innerHTML = `<div class="mermaid">
graph TD
A[开始] --> B[结束]
</div>`;
document.body.appendChild(tooltip);
// 初始化 MermaidJS 以渲染新的图形
mermaid.init(undefined, tooltip);
//处理悬浮窗关闭,例如点击外部区域关闭悬浮窗
// document.addEventListener('click', function(e) {
// if (!tooltip.contains(e.target)) {
// document.body.removeChild(tooltip);
// }
// }, {once: true});
};
setTimeout(()=>{
const mermaidSVGs = document.querySelectorAll('.mermaid svg');
if (mermaidSVGs.length > 0) {
console.log('Mermaid图形渲染完成');
var nodes = element.querySelectorAll('.node');
for(var i = 0;i<nodes.length;i++){
var nodeid = nodes[i].id;
var doid = nodeid.split('-')[1];
var rect = nodes[i].querySelector('rect')
var polygon = nodes[i].querySelector('polygon')
if(doid == 'step2'){
rect.ondblclick= function(){
console.log('节点2被双击了');
var element2 = document.getElementById("mermaidDiagram");
mermaid.render('graphDiv', diagramDefinition2).then(({svg}) => {
element.innerHTML = svg;
});
}
}
if(doid == 'T_Alarm3_Stop'){
polygon.onclick= function(){
console.log('节点被击了');
tooltip();
}
}
}
}
},1000);
function ReturnParentNode(){
debugger;
var element3 = document.getElementById("mermaidDiagram");
mermaid.render('graphDiv', diagramDefinition).then(({svg}) => {
element.innerHTML = svg;
});
setTimeout(()=>{
const mermaidSVGs = document.querySelectorAll('.mermaid svg');
if (mermaidSVGs.length > 0) {
console.log('Mermaid图形渲染完成');
var nodes = element.querySelectorAll('.node');
for(var i = 0;i<nodes.length;i++){
var nodeid = nodes[i].id;
var doid = nodeid.split('-')[1];
var rect = nodes[i].querySelector('rect')
if(doid == 'step2'){
rect.ondblclick= function(){
console.log('节点2被双击了');
var element2 = document.getElementById("mermaidDiagram");
mermaid.render('graphDiv', diagramDefinition2).then(({svg}) => {
element.innerHTML = svg;
});
}
}
}
}
},1000);
}
// 获取按钮元素
const button = document.getElementById('returnButton');
// 添加点击事件监听器
button.addEventListener('click', function() {
// 这里定义点击事件的处理逻辑
ReturnParentNode();
});
function AddListenDblclick (){
mermaid.init(undefined, document.querySelectorAll('.mermaid'));
var nodes = element.querySelectorAll('.node');
for(var i = 0;i<nodes.length;i++){
var nodeid = nodes[i].id;
var doid = nodeid.split('-')[1];
var rect = nodes[i].querySelector('rect')
if(doid == 'step2'){
rect.ondblclick= function(){
console.log('节点2被双击了');
}
}
}
};
// var element = document.getElementById("mermaidDiagram");
var t = null;
function time() {
clearTimeout(t); //清除定时器
UpdataChart()
t = setTimeout(time, 1 * 1000); //设定定时器,循环运行
}
async function UpdataChart() {
myajax = await $.ajax({
url: "/DevicesManage/DeviceMonitoring/GetRealDeviceTag",
type: "Get",
dataType: "json",
success: function (redata) {
}
});
$.when(myajax).done(function (redata) {
// debugger;
// 获取当前的SVG内容
var nodes = element.querySelectorAll('.node');
for(var i = 0;i<nodes.length;i++)
{
var nodeid = nodes[i].id;
var doid = nodeid.split('-')[1];
var rect = nodes[i].querySelector('rect')
var polygon = nodes[i].querySelector('polygon')
if(rect){
rect.style.fill='#ECECFF';
}
if(polygon){
polygon.style.fill='#D3D3D3';
polygon.style.stroke = '#FFFFFF'
}
try
{
var tagdata = redata.filter(item => item.TagName === doid)[0];
var value = tagdata.TagValue;
if(value == '1'){
if(rect){
rect.style.fill='#009900';
}
if(polygon){
polygon.style.fill='#98FB98';
}
}
if(value == '0'){
if(rect){
rect.style.fill='#ECECFF';
}
if(polygon){
polygon.style.fill='#D3D3D3';
polygon.style.stroke = '#FFFFFF'
}
}
}catch{
}
// rect.addEventListener('ondblclick', function() {
// // 这里写双击事件的处理逻辑
// console.log('节点1被双击了');
// });
}
// var rect = node.querySelector('polygon')
// if (rect) {
// rect.style.fill='#00ff55'; // 浅蓝色背景
// }
// node.style.fill='#B74153';
// node.style.background = '#B74153'
// debugger;
// mermaid.render('graphDiv', diagramDefinition2).then(({svg}) => {
// element.innerHTML = svg;
// });
// var newStyle = '';
// for(var i = 0; i < redata.length; i++)
// {
// // newStyle = 'style B fill:#f96,stroke:#333,stroke-width:4px;';
// }
// var nenestyle = 'style step0 fill:#cecece,stroke:#00ff55,stroke-width:4px;';
// // svgContent = svgContent.replace(/style step0.*?;/, nenestyle);
// svgContent = svgContent.replace('</svg>', `${nenestyle}</svg>`);
// // 更新SVG内容以反映新样式
// element.innerHTML = svgContent;
});
}
t = setTimeout(time, 1 * 1000); //开始运行
})
</script>
<script type="text/javascript" src="~/lib//mermaid/mermaid.js"></script>
<div style ="width:100%;height:100%;">
<div class="layuimini-container" style="width:100%;height:100%; ">
<div class="text-and-button">
<span class="text-content">当前位置:主流程--启动流程--启动设备1</span>
<button id="returnButton">返回上级流程</button>
</div>
<div class="layui-row" style="overflow:hidden">
<div class="layui-col-xs2" style="overflow:hidden">
<div id="ID-tree-demo-onlyIconControl"></div>
</div>
<div class="layui-col-xs10" style="overflow: auto;">
<div id="mermaidDiagram" class="mermaid" style="width:10000px;height:10000px; ">
@* graph TD
step0[S0_初始步]-->con0{ 执行该流程请求 }
con0-->step1["S1_执行动作1"]
step1-->con11{S2转换条件}
con11-->step2["S2_执行子流程"]
step2-->con2{S3转换条件}
con2-->step3["S3_
设备输出1
设备输出2"]
step3-->con3{S6转换条件}
con3-->step6[S6_Set 执行该流程完成]
step1-->con12{S4转换条件}
con12-->step4["S4_执行子流程"]
step4-->con4{S5转换条件}
con4-->step5[S5_执行子流程]
step5-->con5{S6转换条件}
con5-->step6
step6-->con6{执行该流程完成}
con6-->step0 *@
</div>
</div>
</div>
@* <div id="mermaidDiagram" class="mermaid">
graph TD
step0[S0_初始步]-->con0{ 执行该流程请求 }
con0-->step1["S1_执行动作1"]
step1-->con11{S2转换条件}
con11-->step2["S2_执行子流程"]
step2-->con2{S3转换条件}
con2-->step3["S3_
设备输出1
设备输出2"]
step3-->con3{S6转换条件}
con3-->step6[S6_Set 执行该流程完成]
step1-->con12{S4转换条件}
con12-->step4["S4_执行子流程"]
step4-->con4{S5转换条件}
con4-->step5[S5_执行子流程]
step5-->con5{S6转换条件}
con5-->step6
step6-->con6{执行该流程完成}
con6-->step0
</div> *@
</div>
</div>