539 lines
14 KiB
Plaintext
539 lines
14 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>
|
|||
|
|
|||
|
.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'], function () {
|
|||
|
var $ = layui.jquery,
|
|||
|
layer = layui.layer,
|
|||
|
common = layui.common,
|
|||
|
echarts = layui.echarts;
|
|||
|
wcLoading.close();
|
|||
|
|
|||
|
//基准配置项
|
|||
|
const width_iobox = 300;
|
|||
|
const height_iobox = 810;
|
|||
|
|
|||
|
//32IO配置项
|
|||
|
const top_row_height_32bit = 35;
|
|||
|
const separator_32bit = 20;
|
|||
|
const io_row_height_32bit = 45;
|
|||
|
|
|||
|
const io_row_y_offset_32bit = 17;
|
|||
|
const io_row_left_x_name_32bit = 10;
|
|||
|
const io_row_left_x_value_32bit = 65;
|
|||
|
const io_row_right_x_name_32bit = 160;
|
|||
|
const io_row_left_width_name_32bit = 40;
|
|||
|
const io_row_left_width_value_32bit = 55;
|
|||
|
const io_row_right_width_name_32bit = 20;
|
|||
|
const io_row_right_width_value_32bit = 130;
|
|||
|
|
|||
|
const left_top_text_name_four_array_32bit = ['模块Slot:','在线状态:'];//左上左下
|
|||
|
const right_top_text_name_four_array_32bit_old = ['型号:','系统:'];//右上右下
|
|||
|
const right_top_text_name_four_array_32bit = ['',''];//右上右下
|
|||
|
const left_top_text_value_four_array_32bit = ['3','在线'];//左上左下
|
|||
|
const right_top_text_value_four_array_32bit = ['DQ 32xDC 24V/0.5A HF','2#高炉喷煤控制系统'];//右上右下
|
|||
|
|
|||
|
const rect_height = 10;
|
|||
|
|
|||
|
const rect_top_y_offset = 90;
|
|||
|
const rect_bottom_y_offset = 65;
|
|||
|
|
|||
|
const io_rect_left_x_32bit = 10;
|
|||
|
const io_rect_name_left_x_32bit = 35;
|
|||
|
const io_rect_description_left_x_32bit = 35;
|
|||
|
const io_rect_right_x_32bit = 270;
|
|||
|
const io_rect_name_right_x_32bit = 225;
|
|||
|
const io_rect_description_right_x_32bit = 155;
|
|||
|
|
|||
|
const io_rect_left_y_offset_32bit = 0;
|
|||
|
const io_rect_name_left_y_offset_32bit = -7;
|
|||
|
const io_rect_description_left_y_offset_32bit = 12;
|
|||
|
const io_rect_right_y_offset_32bit = 0;
|
|||
|
const io_rect_name_right_y_offset_32bit = -7;
|
|||
|
const io_rect_description_right_y_offset_32bit = 12;
|
|||
|
|
|||
|
const io_rect_left_width_32bit = 20;
|
|||
|
const io_rect_name_left_width_32bit = 40;
|
|||
|
const io_rect_description_left_width_32bit = 110;
|
|||
|
const io_rect_right_width_32bit = 20;
|
|||
|
const io_rect_name_right_width_32bit = 40;
|
|||
|
const io_rect_description_right_width_32bit = 110;
|
|||
|
|
|||
|
|
|||
|
const leafer = new LeaferUI.Leafer({
|
|||
|
view: 'idmain', // 支持 window 、div、canvas 标签对象, 可使用id字符串(不用加 # 号)
|
|||
|
width: 1700, // 不能设置为 0, 否则会变成自动布局
|
|||
|
height: 900,
|
|||
|
})
|
|||
|
|
|||
|
const group = new LeaferUI.Group({ x: 0, y: 0, scaleX: 1, scaleY: 1 })
|
|||
|
|
|||
|
const image_cpu = new LeaferUI.Image({x:100,y:50,url:'/images/S71500.png',draggable:true,height:800})
|
|||
|
|
|||
|
//32IO生成
|
|||
|
const box_32bit = new LeaferUI.Box({ x: 402, y: 50, width:width_iobox,height:height_iobox, fill: '#707980', draggable: true })
|
|||
|
|
|||
|
var ylinex_sum_four = 0;
|
|||
|
var ylinex_array_four = [];
|
|||
|
for(var linexid = 0;linexid<18;linexid++)
|
|||
|
{
|
|||
|
if(linexid == 0)
|
|||
|
{
|
|||
|
ylinex_sum_four = ylinex_sum_four + top_row_height_32bit;
|
|||
|
ylinex_array_four.push(ylinex_sum_four);
|
|||
|
}
|
|||
|
else if(linexid == 1)
|
|||
|
{
|
|||
|
ylinex_sum_four = ylinex_sum_four + top_row_height_32bit;
|
|||
|
ylinex_array_four.push(ylinex_sum_four);
|
|||
|
}
|
|||
|
else if(linexid == 10)
|
|||
|
{
|
|||
|
ylinex_sum_four = ylinex_sum_four + separator_32bit;
|
|||
|
ylinex_array_four.push(ylinex_sum_four);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ylinex_sum_four = ylinex_sum_four + io_row_height_32bit;
|
|||
|
ylinex_array_four.push(ylinex_sum_four);
|
|||
|
}
|
|||
|
}
|
|||
|
for(var linexid = 0;linexid<18;linexid++)
|
|||
|
{
|
|||
|
if(linexid == 0)
|
|||
|
{
|
|||
|
var line = new LeaferUI.Line({
|
|||
|
x: 0,
|
|||
|
y:ylinex_array_four[linexid],// ylinex_sum_four + 35,
|
|||
|
width: width_iobox,
|
|||
|
strokeWidth: 1,
|
|||
|
stroke: 'rgb(50,205,121)',
|
|||
|
//id: "line" + linexid.toString()
|
|||
|
});
|
|||
|
box_32bit.add(line);
|
|||
|
}
|
|||
|
else if(linexid == 1)
|
|||
|
{
|
|||
|
var line = new LeaferUI.Line({
|
|||
|
x: 0,
|
|||
|
y:ylinex_array_four[linexid],// ylinex_sum_four + 35,
|
|||
|
width: width_iobox,
|
|||
|
strokeWidth: 1,
|
|||
|
stroke: 'rgb(50,205,121)',
|
|||
|
//id: "line" + linexid.toString()
|
|||
|
});
|
|||
|
box_32bit.add(line);
|
|||
|
}
|
|||
|
else if(linexid == 10)
|
|||
|
{
|
|||
|
var line = new LeaferUI.Line({
|
|||
|
x: 0,
|
|||
|
y: ylinex_array_four[linexid],// ylinex_sum_four + 20,
|
|||
|
width: width_iobox,
|
|||
|
strokeWidth: 1,
|
|||
|
stroke: 'rgb(50,205,121)',
|
|||
|
//id: "line" + linexid.toString()
|
|||
|
});
|
|||
|
box_32bit.add(line);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
var line = new LeaferUI.Line({
|
|||
|
x: 0,
|
|||
|
y: ylinex_array_four[linexid],// ylinex_sum_four + 45,
|
|||
|
width: width_iobox,
|
|||
|
strokeWidth: 1,
|
|||
|
stroke: 'rgb(50,205,121)',
|
|||
|
//id: "line" + linexid.toString()
|
|||
|
});
|
|||
|
box_32bit.add(line);
|
|||
|
}
|
|||
|
//box_32bit.add(line);
|
|||
|
}
|
|||
|
|
|||
|
var spiltline_four = new LeaferUI.Line({
|
|||
|
x:width_iobox/2,
|
|||
|
width:height_iobox,
|
|||
|
rotation:90,
|
|||
|
stroke:'rgb(50,205,121)',
|
|||
|
strokeWidth:1,
|
|||
|
dashPattern : [5, 2]
|
|||
|
})
|
|||
|
box_32bit.add(spiltline_four);
|
|||
|
|
|||
|
|
|||
|
//box4左侧顶部状态效果
|
|||
|
for(var tid = 0;tid<2;tid++)
|
|||
|
{
|
|||
|
let y = io_row_y_offset_32bit + tid * top_row_height_32bit;
|
|||
|
var left_top_text_name = new LeaferUI.Text({
|
|||
|
x:io_row_left_x_name_32bit,
|
|||
|
y:y,//+10
|
|||
|
//height:10,
|
|||
|
width:io_row_left_width_name_32bit,
|
|||
|
fill: '#5aa585',
|
|||
|
text:left_top_text_name_four_array_32bit[tid],
|
|||
|
textAlign :'left',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
var left_top_text_name_value = new LeaferUI.Text({
|
|||
|
x:io_row_left_x_value_32bit,
|
|||
|
y:y,//+10
|
|||
|
//height:10,
|
|||
|
width:io_row_left_width_value_32bit,
|
|||
|
fill: '#5aa585',
|
|||
|
text:left_top_text_value_four_array_32bit[tid],
|
|||
|
textAlign :'left',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
//建议取消
|
|||
|
var right_top_text_name = new LeaferUI.Text({
|
|||
|
x:io_row_right_x_name_32bit,
|
|||
|
y:y,//+10
|
|||
|
//height:10,
|
|||
|
width:io_row_right_width_name_32bit,
|
|||
|
fill: '#5aa585',
|
|||
|
text:right_top_text_name_four_array_32bit[tid],
|
|||
|
textAlign :'left',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
var right_top_text_name_value = new LeaferUI.Text({
|
|||
|
x:io_row_right_x_name_32bit,
|
|||
|
y:y,//+10
|
|||
|
//height:10,
|
|||
|
width:io_row_right_width_value_32bit,
|
|||
|
fill: '#5aa585',
|
|||
|
text:right_top_text_value_four_array_32bit[tid],
|
|||
|
textAlign :'left',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
box_32bit.add(left_top_text_name)
|
|||
|
//box_32bit.add(right_top_text_name)
|
|||
|
box_32bit.add(left_top_text_name_value)
|
|||
|
box_32bit.add(right_top_text_name_value)
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//box4效果
|
|||
|
for(var sid = 0;sid<16;sid++)
|
|||
|
{
|
|||
|
let y =0 ;
|
|||
|
if(sid<8)
|
|||
|
{
|
|||
|
y = io_row_height_32bit*(sid) + rect_top_y_offset ;
|
|||
|
}
|
|||
|
if(sid>=8)
|
|||
|
{
|
|||
|
y = io_row_height_32bit*(sid+1) + rect_bottom_y_offset ;
|
|||
|
}
|
|||
|
var rect_left = new LeaferUI.Rect({
|
|||
|
x:io_rect_left_x_32bit,
|
|||
|
y:y+io_rect_left_y_offset_32bit,
|
|||
|
height:rect_height,
|
|||
|
width:io_rect_left_width_32bit,
|
|||
|
fill:'#55557f',
|
|||
|
draggable:false,
|
|||
|
id:'io'+sid.toString()+'_box_32bit'
|
|||
|
})
|
|||
|
var rect_left_text_name = new LeaferUI.Text({
|
|||
|
x:io_rect_name_left_x_32bit,
|
|||
|
y:y+io_rect_name_left_y_offset_32bit,
|
|||
|
width:io_rect_name_left_width_32bit,
|
|||
|
fill: '#5aa585',
|
|||
|
text:'DO 0.X',
|
|||
|
textAlign :'left',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
var rect_left_text_description = new LeaferUI.Text({
|
|||
|
x:io_rect_description_left_x_32bit,
|
|||
|
y:y+io_rect_description_left_y_offset_32bit,
|
|||
|
width:io_rect_description_left_width_32bit,
|
|||
|
fill: '#20343c',
|
|||
|
text:'1罐大卸压阀输出',
|
|||
|
textAlign :'left',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
//1罐仓流化阀原输出
|
|||
|
var rect_right = new LeaferUI.Rect({
|
|||
|
x:io_rect_right_x_32bit,
|
|||
|
y:y+io_rect_right_y_offset_32bit,
|
|||
|
height:rect_height,
|
|||
|
width:io_rect_right_width_32bit,
|
|||
|
fill:'#55557f',
|
|||
|
draggable:false,
|
|||
|
id:'io'+(sid+16).toString()+'_box_32bit'
|
|||
|
})
|
|||
|
var rect_right_text_name = new LeaferUI.Text({
|
|||
|
x:io_rect_name_right_x_32bit,
|
|||
|
y:y+io_rect_name_right_y_offset_32bit,
|
|||
|
width:io_rect_name_right_width_32bit,
|
|||
|
fill: '#5aa585',
|
|||
|
text:'DO 0.X',
|
|||
|
textAlign :'right',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
var rect_right_text_description = new LeaferUI.Text({
|
|||
|
x:io_rect_description_right_x_32bit,
|
|||
|
y:y+io_rect_description_right_y_offset_32bit,
|
|||
|
width:io_rect_description_right_width_32bit,
|
|||
|
fill: '#20343c',
|
|||
|
text:'1罐大卸压阀输出',
|
|||
|
textAlign :'right',
|
|||
|
verticalAlign:'middle',
|
|||
|
textWrap:'none',
|
|||
|
padding:0,
|
|||
|
fontSize:12
|
|||
|
})
|
|||
|
//console.log(rect)
|
|||
|
box_32bit.add(rect_left);
|
|||
|
box_32bit.add(rect_left_text_name);
|
|||
|
box_32bit.add(rect_left_text_description);
|
|||
|
box_32bit.add(rect_right);
|
|||
|
box_32bit.add(rect_right_text_name);
|
|||
|
box_32bit.add(rect_right_text_description);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
leafer.add(group)
|
|||
|
group.add(box_32bit)
|
|||
|
|
|||
|
var t = null;
|
|||
|
function time() {
|
|||
|
clearTimeout(t); //清除定时器
|
|||
|
UpdataChart()
|
|||
|
t = setTimeout(time, 1 * 1000); //设定定时器,循环运行
|
|||
|
|
|||
|
}
|
|||
|
async function UpdataChart() {
|
|||
|
|
|||
|
myajax = await $.ajax({
|
|||
|
url: "/PenMeiReportManage/PenMeiJMReport/GetRealIOState",
|
|||
|
type: "Get",
|
|||
|
dataType: "json",
|
|||
|
// traditional: true,//这里设置为true
|
|||
|
// data: { charts_TagNames: SelectTagNamelist },
|
|||
|
success: function (redata) {
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
$.when(myajax).done(function (redata) {
|
|||
|
debugger;
|
|||
|
for(var ioName in redata)
|
|||
|
{
|
|||
|
leafer.findOne('#'+ioName+'_box_one').fill =(redata[ioName] == '1') ? '#d4d04e' : '#9f9f91';
|
|||
|
leafer.findOne('#'+ioName+'_box_tow').fill =(redata[ioName] != '1') ? '#d4d04e' : '#9f9f91';
|
|||
|
leafer.findOne('#'+ioName+'_box_three').fill =(((Math.random()) < 0.5) == false) ? '#d4d04e' : '#9f9f91';
|
|||
|
debugger;
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
t = setTimeout(time, 1 * 1000); //开始运行
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
})
|
|||
|
</script>
|
|||
|
<script type="text/javascript" src="~/lib//leafer-ui@1.0.0-rc.8/web.js"></script>
|
|||
|
<div style ="width:100%;height:100%;">
|
|||
|
<div class="layuimini-container" style="width:100%;height:100%;">
|
|||
|
<div id = "idmain">
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<!-- <div style ="width:100%;height:100%;">
|
|||
|
<div class="layuimini-container" style="width:100%;height:100%;">
|
|||
|
<div class="layuimini-main">
|
|||
|
<div class="layui-row layui-col-space15">
|
|||
|
<div class="layui-col-md15">
|
|||
|
<iframe style="width:100%;height:95vh" src="http://192.168.110.247:8250/run?reportName=HTTEST/%E6%8A%A5%E8%AD%A6%E6%B1%87%E6%80%BB.cr"></iframe>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div> -->
|