user_zyx 9 місяців тому
батько
коміт
173f1bcead

+ 18 - 1
B20UVLog/B20UVLog.csproj

@@ -10,7 +10,6 @@
 
   <ItemGroup>
     <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
-    <PackageReference Include="LiveChartsCore.SkiaSharpView.WPF" Version="2.0.0-rc2" />
     <PackageReference Include="MiniExcel" Version="1.32.1" />
     <PackageReference Include="SqlSugarCore" Version="5.1.4.159" />
   </ItemGroup>
@@ -31,4 +30,22 @@
     </Compile>
   </ItemGroup>
 
+  <ItemGroup>
+    <None Update="Charts\CSS\Main.css">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Update="Charts\Htmls\AxisData.html">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <None Update="Charts\JS\echarts.min.js">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Update="Charts\JS\jquery.min.js">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Update="Charts\JS\walden.js">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+
 </Project>

+ 74 - 0
B20UVLog/Charts/CSS/Main.css

@@ -0,0 +1,74 @@
+
+button{
+	margin: 2px;
+	padding: 2px 30px;
+	border: solid 1px #008DC7;
+	background-color: #008DC7;
+	color: white;
+}
+button:hover{
+	background: white;
+	color:#008DC7;
+	font-weight: bold;
+}
+/* button:active{
+	padding: 1px 29px;
+	border-width: 2px;
+} */
+input{
+	outline: none;
+	margin: 2px;
+	padding: 5px;
+	border: solid 1px lightgray;
+}
+.echartsDiv{
+	width: 100%;
+	height: 230px;
+	/*position: absolute;*/
+}
+.AllechartsDiv{
+	width: 100%;
+	height: 690px;
+}
+.div-cover{
+	display:none;
+	position: absolute;
+	top: 0%;
+	left: 0%;
+	width: 100%;
+	height: 100%;
+	background:rgba(0,0,0,0.4);
+	z-index: 9999;
+}
+.div-title{
+	margin:10px 15px;
+}
+.div-container{    
+	opacity: 0.95;
+    position: fixed;
+    background: white;
+    width: 300px;
+    height: 150px;
+    left: 50%;
+    top: 50%;
+	transform: translate(-50%,-50%);
+    border: 0;
+    overflow-y: auto;
+    filter: progid:DXImageTransform.Microsoft.Shadow(color=#909090,direction=120,strength=3); /*ie*/
+    -moz-box-shadow: 2px 2px 10px #909090; /*firefox*/
+    -webkit-box-shadow: 2px 2px 10px #909090; /*safari或chrome*/
+    box-shadow: 2px 2px 10px #909090; /*opera或ie9*/
+}
+.div-contentContainer{
+	height: calc(100% - 100px);
+	width: 100%;
+	text-align: center;
+
+}
+.div-contentContainer input{
+	margin-top: 15px;
+}
+.div-btnContainer{
+	margin: 10px;
+	text-align: center;
+}

+ 112 - 0
B20UVLog/Charts/Htmls/AxisData.html

@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html lang="zh-cn" xmlns="http://www.w3.org/1999/xhtml">
+<!-- saved from url=(0013)about:internet -->
+
+<head>
+    <meta charset="utf-8" http-equiv="X-UA-Compatible" content="IE=5,6,7,8,9,10,11, chrome=1" />
+    <link href="../CSS/Main.css" type="text/css" rel="stylesheet" />
+    <script src="../JS/jquery.min.js" type="text/javascript"></script>
+    <title>Test</title>
+</head>
+
+<body>
+    <div class="Container_right_echartsDiv">
+        <div id="Div_Main" class="echartsDiv"></div>
+    </div>
+    <script src="../JS/echarts.min.js" type="text/javascript"></script>
+    <script src="../JS/walden.js" type="text/javascript"></script>
+    <!-- 按照习惯应该将Script放到指定的js文件中并引用,但是测试发现WPF不便调用js文件中的function,却可以直接调用html中的。-->
+    <script>
+        console.log("Echarts Version:" + echarts.version);
+        // 基于准备好的dom,初始化echarts实例
+        var myChart = echarts.init(document.getElementById('Div_Main'), 'walden');
+
+        var myData1 = [];
+        var myData2 = [];
+        var myData3 = [];
+        var myData4 = [];
+        ///初始化chart数据。 
+        function Init(titleText, jsonX, jsonY) {
+            console.log(jsonX)
+            console.log(jsonY)
+            //处理json数据
+            var DataX = eval('(' + jsonX + ')');
+            var DataY = eval('(' + jsonY + ')');
+            console.log(DataX)
+            console.log(DataY)
+            var myData1 = DataY["WSZ1"];
+            var myData2 = DataY["WSZ2"];
+            var myData3 = DataY["WSZ3"];
+            var myData4 = DataY["WSZ4"];
+            console.log(myData1)
+            console.log(myData2)
+            console.log(myData3)
+            console.log(myData4)
+            // 指定图表的配置项和数据
+            option = {
+                title: {
+                    text: titleText
+                },
+                toolbox: {
+                    right: 10,
+                    feature: {
+                        dataZoom: {
+                            yAxisIndex: 'none'
+                        },
+                        restore: {}
+                    }
+                },
+                tooltip: {
+                    trigger: 'axis'
+                },
+                xAxis: {
+                    type: 'category',
+                    splitLine: {
+                        show: false
+                    },
+                    data: DataX
+                },
+                yAxis: {
+                    type:'value',
+                    axisLable:{
+                        formatter:'{value}mm'
+                    },
+                    boundaryGap: [0, '50%'],
+                    scale: true,
+                    splitLine: {
+                        show: false
+                    }
+                },
+                series: [
+                    {
+                        name: 'WSZ1',
+                        type: 'line',
+                        showSymbol: false,
+                        data: myData1
+                    }, {
+                        name: 'WSZ2',
+                        type: 'line',
+                        showSymbol: false,
+                        data: myData2
+                    }, {
+                        name: 'WSZ3',
+                        type: 'line',
+                        showSymbol: false,
+                        data: myData3
+                    }, {
+                        name: 'WSZ4',
+                        type: 'line',
+                        showSymbol: false,
+                        data: myData4
+                    }
+                ]
+            };
+            // 使用刚指定的配置项和数据显示图表。
+            myChart.setOption(option);
+        }
+
+        Init("测试", "['2024-07-09 17:24:35','2024-07-09 17:27:08']", "{'WSZ1':[1,2],'WSZ2':[2,3],'WSZ3':[3,4],'WSZ4':[4,5]}");
+    </script>
+</body>
+
+</html>

Різницю між файлами не показано, бо вона завелика
+ 21 - 0
B20UVLog/Charts/JS/echarts.min.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
B20UVLog/Charts/JS/jquery.min.js


+ 413 - 0
B20UVLog/Charts/JS/walden.js

@@ -0,0 +1,413 @@
+(function (root, factory) {
+    if (typeof define === 'function' && define.amd) {
+        // AMD. Register as an anonymous module.
+        define(['exports', 'echarts'], factory);
+    } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
+        // CommonJS
+        factory(exports, require('echarts'));
+    } else {
+        // Browser globals
+        factory({}, root.echarts);
+    }
+}(this, function (exports, echarts) {
+    var log = function (msg) {
+        if (typeof console !== 'undefined') {
+            console && console.error && console.error(msg);
+        }
+    };
+    if (!echarts) {
+        log('ECharts is not Loaded');
+        return;
+    }
+    echarts.registerTheme('walden', {
+        "color": [
+            "#3fb1e3",
+            "#6be6c1",
+            "#626c91",
+            "#a0a7e6",
+            "#c4ebad",
+            "#96dee8"
+        ],
+        "backgroundColor": "rgba(252,252,252,0)",
+        "textStyle": {},
+        "title": {
+            "textStyle": {
+                "color": "#666666"
+            },
+            "subtextStyle": {
+                "color": "#999999"
+            }
+        },
+        "line": {
+            "itemStyle": {
+                "borderWidth": "2"
+            },
+            "lineStyle": {
+                "width": "3"
+            },
+            "symbolSize": "8",
+            "symbol": "emptyCircle",
+            "smooth": false
+        },
+        "radar": {
+            "itemStyle": {
+                "borderWidth": "2"
+            },
+            "lineStyle": {
+                "width": "3"
+            },
+            "symbolSize": "8",
+            "symbol": "emptyCircle",
+            "smooth": false
+        },
+        "bar": {
+            "itemStyle": {
+                "barBorderWidth": 0,
+                "barBorderColor": "#ccc"
+            }
+        },
+        "pie": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "scatter": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "boxplot": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "parallel": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "sankey": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "funnel": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "gauge": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            }
+        },
+        "candlestick": {
+            "itemStyle": {
+                "color": "#e6a0d2",
+                "color0": "transparent",
+                "borderColor": "#e6a0d2",
+                "borderColor0": "#3fb1e3",
+                "borderWidth": "2"
+            }
+        },
+        "graph": {
+            "itemStyle": {
+                "borderWidth": 0,
+                "borderColor": "#ccc"
+            },
+            "lineStyle": {
+                "width": "1",
+                "color": "#cccccc"
+            },
+            "symbolSize": "8",
+            "symbol": "emptyCircle",
+            "smooth": false,
+            "color": [
+                "#3fb1e3",
+                "#6be6c1",
+                "#626c91",
+                "#a0a7e6",
+                "#c4ebad",
+                "#96dee8"
+            ],
+            "label": {
+                "color": "#ffffff"
+            }
+        },
+        "map": {
+            "itemStyle": {
+                "areaColor": "#eeeeee",
+                "borderColor": "#aaaaaa",
+                "borderWidth": 0.5
+            },
+            "label": {
+                "color": "#ffffff"
+            },
+            "emphasis": {
+                "itemStyle": {
+                    "areaColor": "rgba(63,177,227,0.25)",
+                    "borderColor": "#3fb1e3",
+                    "borderWidth": 1
+                },
+                "label": {
+                    "color": "#3fb1e3"
+                }
+            }
+        },
+        "geo": {
+            "itemStyle": {
+                "areaColor": "#eeeeee",
+                "borderColor": "#aaaaaa",
+                "borderWidth": 0.5
+            },
+            "label": {
+                "color": "#ffffff"
+            },
+            "emphasis": {
+                "itemStyle": {
+                    "areaColor": "rgba(63,177,227,0.25)",
+                    "borderColor": "#3fb1e3",
+                    "borderWidth": 1
+                },
+                "label": {
+                    "color": "#3fb1e3"
+                }
+            }
+        },
+        "categoryAxis": {
+            "axisLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": "#cccccc"
+                }
+            },
+            "axisTick": {
+                "show": false,
+                "lineStyle": {
+                    "color": "#333"
+                }
+            },
+            "axisLabel": {
+                "show": true,
+                "color": "#999999"
+            },
+            "splitLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": [
+                        "#eeeeee"
+                    ]
+                }
+            },
+            "splitArea": {
+                "show": false,
+                "areaStyle": {
+                    "color": [
+                        "rgba(250,250,250,0.05)",
+                        "rgba(200,200,200,0.02)"
+                    ]
+                }
+            }
+        },
+        "valueAxis": {
+            "axisLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": "#cccccc"
+                }
+            },
+            "axisTick": {
+                "show": false,
+                "lineStyle": {
+                    "color": "#333"
+                }
+            },
+            "axisLabel": {
+                "show": true,
+                "color": "#999999"
+            },
+            "splitLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": [
+                        "#eeeeee"
+                    ]
+                }
+            },
+            "splitArea": {
+                "show": false,
+                "areaStyle": {
+                    "color": [
+                        "rgba(250,250,250,0.05)",
+                        "rgba(200,200,200,0.02)"
+                    ]
+                }
+            }
+        },
+        "logAxis": {
+            "axisLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": "#cccccc"
+                }
+            },
+            "axisTick": {
+                "show": false,
+                "lineStyle": {
+                    "color": "#333"
+                }
+            },
+            "axisLabel": {
+                "show": true,
+                "color": "#999999"
+            },
+            "splitLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": [
+                        "#eeeeee"
+                    ]
+                }
+            },
+            "splitArea": {
+                "show": false,
+                "areaStyle": {
+                    "color": [
+                        "rgba(250,250,250,0.05)",
+                        "rgba(200,200,200,0.02)"
+                    ]
+                }
+            }
+        },
+        "timeAxis": {
+            "axisLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": "#cccccc"
+                }
+            },
+            "axisTick": {
+                "show": false,
+                "lineStyle": {
+                    "color": "#333"
+                }
+            },
+            "axisLabel": {
+                "show": true,
+                "color": "#999999"
+            },
+            "splitLine": {
+                "show": true,
+                "lineStyle": {
+                    "color": [
+                        "#eeeeee"
+                    ]
+                }
+            },
+            "splitArea": {
+                "show": false,
+                "areaStyle": {
+                    "color": [
+                        "rgba(250,250,250,0.05)",
+                        "rgba(200,200,200,0.02)"
+                    ]
+                }
+            }
+        },
+        "toolbox": {
+            "iconStyle": {
+                "borderColor": "#999999"
+            },
+            "emphasis": {
+                "iconStyle": {
+                    "borderColor": "#008cd7"
+                }
+            }
+        },
+        "legend": {
+            "textStyle": {
+                "color": "#999999"
+            }
+        },
+        "tooltip": {
+            "axisPointer": {
+                "lineStyle": {
+                    "color": "#cccccc",
+                    "width": 1
+                },
+                "crossStyle": {
+                    "color": "#cccccc",
+                    "width": 1
+                }
+            }
+        },
+        "timeline": {
+            "lineStyle": {
+                "color": "#626c91",
+                "width": 1
+            },
+            "itemStyle": {
+                "color": "#626c91",
+                "borderWidth": 1
+            },
+            "controlStyle": {
+                "color": "#626c91",
+                "borderColor": "#626c91",
+                "borderWidth": 0.5
+            },
+            "checkpointStyle": {
+                "color": "#3fb1e3",
+                "borderColor": "#3fb1e3"
+            },
+            "label": {
+                "color": "#626c91"
+            },
+            "emphasis": {
+                "itemStyle": {
+                    "color": "#626c91"
+                },
+                "controlStyle": {
+                    "color": "#626c91",
+                    "borderColor": "#626c91",
+                    "borderWidth": 0.5
+                },
+                "label": {
+                    "color": "#626c91"
+                }
+            }
+        },
+        "visualMap": {
+            "color": [
+                "#2a99c9",
+                "#afe8ff"
+            ]
+        },
+        "dataZoom": {
+            "backgroundColor": "rgba(255,255,255,0)",
+            "dataBackgroundColor": "rgba(222,222,222,1)",
+            "fillerColor": "rgba(114,230,212,0.25)",
+            "handleColor": "#cccccc",
+            "handleSize": "100%",
+            "textStyle": {
+                "color": "#999999"
+            }
+        },
+        "markPoint": {
+            "label": {
+                "color": "#ffffff"
+            },
+            "emphasis": {
+                "label": {
+                    "color": "#ffffff"
+                }
+            }
+        }
+    });
+}));

+ 74 - 19
B20UVLog/Controls/IOCell.xaml

@@ -9,27 +9,82 @@
         <StackPanel Orientation="Horizontal">
             <StackPanel.Resources>
                 <Style TargetType="Rectangle">
-                    <Setter Property="Margin" Value="2 2 0 0"/>
-                    <Setter Property="Height" Value="10"/>
-                    <Setter Property="Width" Value="5"/>
+                    <Setter Property="Margin" Value="2"/>
+                    <Setter Property="Height" Value="15"/>
+                    <Setter Property="Width" Value="15"/>
+                    <Setter Property="Fill" Value="{StaticResource Danger}"/>
+                </Style>
+                <Style TargetType="StackPanel">
+                    <Setter Property="Margin" Value="2"/>
+                </Style>
+                <Style TargetType="TextBlock">
+                    <Setter Property="HorizontalAlignment" Value="Center"/>
                 </Style>
             </StackPanel.Resources>
-            <Rectangle x:Name="B0"/>
-            <Rectangle x:Name="B1"/>
-            <Rectangle x:Name="B2"/>
-            <Rectangle x:Name="B3"/>
-            <Rectangle x:Name="B4"/>
-            <Rectangle x:Name="B5"/>
-            <Rectangle x:Name="B6"/>
-            <Rectangle x:Name="B7"/>
-            <Rectangle x:Name="B8"/>
-            <Rectangle x:Name="B9"/>
-            <Rectangle x:Name="BA"/>
-            <Rectangle x:Name="BB"/>
-            <Rectangle x:Name="BC"/>
-            <Rectangle x:Name="BD"/>
-            <Rectangle x:Name="BE"/>
-            <Rectangle x:Name="BF"/>
+            <StackPanel>
+                <TextBlock>0</TextBlock>
+                <Rectangle x:Name="B0"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>1</TextBlock>
+                <Rectangle x:Name="B1"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>2</TextBlock>
+                <Rectangle x:Name="B2"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>3</TextBlock>
+                <Rectangle x:Name="B3"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>4</TextBlock>
+                <Rectangle x:Name="B4"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>5</TextBlock>
+                <Rectangle x:Name="B5"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>6</TextBlock>
+                <Rectangle x:Name="B6"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>7</TextBlock>
+                <Rectangle x:Name="B7"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>8</TextBlock>
+                <Rectangle x:Name="B8"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>9</TextBlock>
+                <Rectangle x:Name="B9"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>A</TextBlock>
+                <Rectangle x:Name="BA"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>B</TextBlock>
+                <Rectangle x:Name="BB"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>C</TextBlock>
+                <Rectangle x:Name="BC"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>D</TextBlock>
+                <Rectangle x:Name="BD"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>E</TextBlock>
+                <Rectangle x:Name="BE"/>
+            </StackPanel>
+            <StackPanel>
+                <TextBlock>F</TextBlock>
+                <Rectangle x:Name="BF"/>
+            </StackPanel>
         </StackPanel>
     </Grid>
 </UserControl>

BIN
B20UVLog/LogPcTask_Biz.cs


BIN
B20UVLog/Models/IOModel.cs


+ 0 - 44
B20UVLog/Models/IONewModel.cs

@@ -1,44 +0,0 @@
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace B20UVLog.Models
-{
-    [SugarTable("io_new")]
-    public class IONewModel
-    {
-        public IONewModel()
-        {
-
-
-        }
-        /// <summary>
-        /// Desc:
-        /// Default:
-        /// Nullable:True
-        /// </summary>           
-        public int Id { get; set; }
-
-        /// <summary>
-        /// Desc:
-        /// Default:
-        /// Nullable:True
-        /// </summary>           
-        public string EquId { get; set; }
-        public string IOName { get; set; }
-
-        public string IOType { get; set; }
-
-        public int IOValue { get; set; }
-
-        /// <summary>
-        /// Desc:
-        /// Default:
-        /// Nullable:True
-        /// </summary>           
-        public DateTime? RecordTime { get; set; }
-    }
-}

+ 1 - 1
B20UVLog/Pages/ANALogData.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="ANALog Data" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="ANALog Data" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 1 - 1
B20UVLog/Pages/Alarm.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Axis Data" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Axis Data" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 5 - 7
B20UVLog/Pages/AxisData.xaml

@@ -3,7 +3,9 @@
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-      xmlns:local="clr-namespace:B20UVLog.Pages" xmlns:My="clr-namespace:MyWPFControl.Controls;assembly=MyWPFControl"  xmlns:viewmodels="clr-namespace:B20UVLog.ViewModels" xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"
+      xmlns:local="clr-namespace:B20UVLog.Pages" 
+      xmlns:My="clr-namespace:MyWPFControl.Controls;assembly=MyWPFControl"  
+      xmlns:viewmodels="clr-namespace:B20UVLog.ViewModels" 
       mc:Ignorable="d" 
       d:DesignHeight="450" d:DesignWidth="800"
       Title="AxisData">
@@ -16,7 +18,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Axis Data" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Axis Data" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <My:MComboBox SelectedIndex="{Binding DataGroupIndex}" SelectionChanged="MComboBox_SelectionChanged">
                 <ComboBoxItem>WSZ1,2,3,4</ComboBoxItem>
@@ -102,11 +104,7 @@
                 <StackPanel>
                     <StackPanel Orientation="Horizontal">
                     </StackPanel>
-                    <lvc:CartesianChart Height="600" Width="1000" 
-                                    Series="{Binding Series}" 
-                                    Title="{Binding Title}"
-                                    LegendPosition="Top">
-                    </lvc:CartesianChart>
+                    <WebBrowser x:Name="WBrowser" Margin="10 10 0 10" LoadCompleted="WBrowser_LoadCompleted"/>
                 </StackPanel>
             </Border>
         </Popup>

BIN
B20UVLog/Pages/AxisData.xaml.cs


+ 1 - 1
B20UVLog/Pages/EQPStatus.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="EQP Status" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="EQP Status" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 1 - 1
B20UVLog/Pages/GlassInformation.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Glass Information" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Glass Information" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 37 - 4
B20UVLog/Pages/IO.xaml

@@ -16,9 +16,10 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="IO" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="IO" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
-            <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
+            <My:MTextBox Title="IO点名称" Text="{Binding IONameQuery}"/>
+            <My:MTextBox Title="IO点类型" Text="{Binding IOTypeQuery}"/>
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>
             <TextBlock Text="--" VerticalAlignment="Center" Margin="2"/>
             <My:MDateTimePicker x:Name="DTPEnd" Title="结束时间"/>
@@ -31,7 +32,39 @@
                 <RowDefinition Height="*"/>
                 <RowDefinition Height="auto"/>
             </Grid.RowDefinitions>
-            <My:MDataGrid  ItemsSource="{Binding GridData}">
+            <My:MDataGrid ItemsSource="{Binding GridData}">
+                <DataGrid.Columns>
+                    <DataGridTextColumn Header="IO点名称" Binding="{Binding IOName}"/>
+                    <DataGridTextColumn Header="类型" Binding="{Binding IOType}"/>
+                    <DataGridTextColumn Header="记录时间" Binding="{Binding RecordTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
+                    <DataGridTextColumn Header="值" Binding="{Binding IOValue}"/>
+                    <DataGridTemplateColumn>
+                        <DataGridTemplateColumn.Header>
+                            <StackPanel Orientation="Horizontal">
+                                <StackPanel.Resources>
+                                    <Style TargetType="Rectangle">
+                                        <Setter Property="Height" Value="15"/>
+                                        <Setter Property="Width" Value="15"/>
+                                    </Style>
+                                </StackPanel.Resources>
+                                <TextBlock Text="图例" Margin="10 0 0 0"/>
+                                <TextBlock Text="0 :" Margin="20 0 5 0"/>
+                                <Rectangle Fill="{StaticResource Danger}"/>
+                                <TextBlock Text="1 :" Margin="20 0 5 0"/>
+                                <Rectangle Fill="{StaticResource Success}"/>
+                            </StackPanel>
+                        </DataGridTemplateColumn.Header>
+                        <DataGridTemplateColumn.CellTemplate>
+                            <DataTemplate>
+                                <StackPanel>
+                                    <controls:IOCell Data="{Binding IOValue}"/>
+                                </StackPanel>
+                            </DataTemplate>
+                        </DataGridTemplateColumn.CellTemplate>
+                    </DataGridTemplateColumn>
+                </DataGrid.Columns>
+            </My:MDataGrid>
+            <!--<My:MDataGrid  ItemsSource="{Binding GridData}">
                 <DataGrid.Columns>
                     <DataGridTemplateColumn Header="StageInput1">
                         <DataGridTemplateColumn.CellTemplate>
@@ -825,7 +858,7 @@
                     </DataGridTemplateColumn>
                     <DataGridTextColumn Header="记录时间" Binding="{Binding RecordTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
                 </DataGrid.Columns>
-            </My:MDataGrid>
+            </My:MDataGrid>-->
             <My:MPagination Grid.Row="1" x:Name="MyPagination" PageIndexChange="MyPagination_PageIndexChange" PageSizeChange="MyPagination_PageSizeChange"/>
         </Grid>
 

BIN
B20UVLog/Pages/IO.xaml.cs


+ 116 - 3
B20UVLog/Pages/LampData.xaml

@@ -3,12 +3,125 @@
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-      xmlns:local="clr-namespace:B20UVLog.Pages"
+      xmlns:local="clr-namespace:B20UVLog.Pages" xmlns:My="clr-namespace:MyWPFControl.Controls;assembly=MyWPFControl" xmlns:viewmodels="clr-namespace:B20UVLog.ViewModels"
       mc:Ignorable="d" 
       d:DesignHeight="450" d:DesignWidth="800"
       Title="LampData">
-
+    <Page.DataContext>
+        <viewmodels:LampDataViewModel/>
+    </Page.DataContext>
     <Grid>
-        
+        <Grid.RowDefinitions>
+            <RowDefinition Height="auto"/>
+            <RowDefinition Height="auto"/>
+            <RowDefinition Height="*"/>
+        </Grid.RowDefinitions>
+        <!--<TextBlock Grid.Row="0" Text="IO" FontSize="25" Margin="10 5"/>-->
+        <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
+            <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
+            <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>
+            <TextBlock Text="--" VerticalAlignment="Center" Margin="2"/>
+            <My:MDateTimePicker x:Name="DTPEnd" Title="结束时间"/>
+            <My:MButton x:Name="BtnSearch" Content="查询" Type="Primary"  Click="BtnSearch_Click"/>
+            <My:MButton x:Name="BtnReset" Content="条件重置"  Click="BtnReset_Click"/>
+            <My:MButton x:Name="BtnExport" Content="导出报表"  Click="BtnExport_Click" Type="Warning"/>
+        </StackPanel>
+        <Grid Grid.Row="2">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="*"/>
+                <RowDefinition Height="auto"/>
+            </Grid.RowDefinitions>
+            <My:MDataGrid ItemsSource="{Binding GridData}">
+                <DataGrid.Columns>
+                    <DataGridTextColumn Header="L1 Luminance(W/cm²)" Binding="{Binding L1Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L2 Luminance(W/cm²)" Binding="{Binding L2Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L3 Luminance(W/cm²)" Binding="{Binding L3Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L4 Luminance(W/cm²)" Binding="{Binding L4Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L5 Luminance(W/cm²)" Binding="{Binding L5Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L6 Luminance(W/cm²)" Binding="{Binding L6Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L7 Luminance(W/cm²)" Binding="{Binding L7Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L8 Luminance(W/cm²)" Binding="{Binding L8Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L9 Luminance(W/cm²)" Binding="{Binding L9Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L10 Luminance(W/cm²)" Binding="{Binding L10Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L11 Luminance(W/cm²)" Binding="{Binding L11Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L12 Luminance(W/cm²)" Binding="{Binding L12Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L13 Luminance(W/cm²)" Binding="{Binding L13Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="L14 Luminance(W/cm²)" Binding="{Binding L14Luminance,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.1}"/>
+                    <DataGridTextColumn Header="Lamp1电流(A)" Binding="{Binding Lamp1Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp2电流(A)" Binding="{Binding Lamp2Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp3电流(A)" Binding="{Binding Lamp3Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp4电流(A)" Binding="{Binding Lamp4Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp5电流(A)" Binding="{Binding Lamp5Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp6电流(A)" Binding="{Binding Lamp6Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp7电流(A)" Binding="{Binding Lamp7Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp8电流(A)" Binding="{Binding Lamp8Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp9电流(A)" Binding="{Binding Lamp9Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp10电流(A)" Binding="{Binding Lamp10Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp11电流(A)" Binding="{Binding Lamp11Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp12电流(A)" Binding="{Binding Lamp12Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp13电流(A)" Binding="{Binding Lamp13Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp14电流(A)" Binding="{Binding Lamp14Current,
+                        Converter={StaticResource ConverterMultipleDouble},ConverterParameter=0.01}"/>
+                    <DataGridTextColumn Header="Lamp1电压(V)" Binding="{Binding Lamp1Voltage}"/>
+                    <DataGridTextColumn Header="Lamp2电压(V)" Binding="{Binding Lamp2Voltage}"/>
+                    <DataGridTextColumn Header="Lamp3电压(V)" Binding="{Binding Lamp3Voltage}"/>
+                    <DataGridTextColumn Header="Lamp4电压(V)" Binding="{Binding Lamp4Voltage}"/>
+                    <DataGridTextColumn Header="Lamp5电压(V)" Binding="{Binding Lamp5Voltage}"/>
+                    <DataGridTextColumn Header="Lamp6电压(V)" Binding="{Binding Lamp6Voltage}"/>
+                    <DataGridTextColumn Header="Lamp7电压(V)" Binding="{Binding Lamp7Voltage}"/>
+                    <DataGridTextColumn Header="Lamp8电压(V)" Binding="{Binding Lamp8Voltage}"/>
+                    <DataGridTextColumn Header="Lamp9电压(V)" Binding="{Binding Lamp9Voltage}"/>
+                    <DataGridTextColumn Header="Lamp10电压(V)" Binding="{Binding Lamp10Voltage}"/>
+                    <DataGridTextColumn Header="Lamp11电压(V)" Binding="{Binding Lamp11Voltage}"/>
+                    <DataGridTextColumn Header="Lamp12电压(V)" Binding="{Binding Lamp12Voltage}"/>
+                    <DataGridTextColumn Header="Lamp13电压(V)" Binding="{Binding Lamp13Voltage}"/>
+                    <DataGridTextColumn Header="Lamp14电压(V)" Binding="{Binding Lamp14Voltage}"/>
+                    <DataGridTextColumn Header="Lamp1出力(W/cm)" Binding="{Binding Lamp1Output}"/>
+                    <DataGridTextColumn Header="Lamp2出力(W/cm)" Binding="{Binding Lamp2Output}"/>
+                    <DataGridTextColumn Header="Lamp3出力(W/cm)" Binding="{Binding Lamp3Output}"/>
+                    <DataGridTextColumn Header="Lamp4出力(W/cm)" Binding="{Binding Lamp4Output}"/>
+                    <DataGridTextColumn Header="Lamp5出力(W/cm)" Binding="{Binding Lamp5Output}"/>
+                    <DataGridTextColumn Header="Lamp6出力(W/cm)" Binding="{Binding Lamp6Output}"/>
+                    <DataGridTextColumn Header="Lamp7出力(W/cm)" Binding="{Binding Lamp7Output}"/>
+                    <DataGridTextColumn Header="Lamp8出力(W/cm)" Binding="{Binding Lamp8Output}"/>
+                    <DataGridTextColumn Header="Lamp9出力(W/cm)" Binding="{Binding Lamp9Output}"/>
+                    <DataGridTextColumn Header="Lamp10出力(W/cm)" Binding="{Binding Lamp10Output}"/>
+                    <DataGridTextColumn Header="Lamp11出力(W/cm)" Binding="{Binding Lamp11Output}"/>
+                    <DataGridTextColumn Header="Lamp12出力(W/cm)" Binding="{Binding Lamp12Output}"/>
+                    <DataGridTextColumn Header="Lamp13出力(W/cm)" Binding="{Binding Lamp13Output}"/>
+                    <DataGridTextColumn Header="Lamp14出力(W/cm)" Binding="{Binding Lamp14Output}"/>
+                    <DataGridTextColumn Header="记录时间" Binding="{Binding RecordTime,StringFormat=yyyy-MM-dd HH:mm:ss}"/>
+                </DataGrid.Columns>
+            </My:MDataGrid>
+            <My:MPagination Grid.Row="1" x:Name="MyPagination" PageIndexChange="MyPagination_PageIndexChange" PageSizeChange="MyPagination_PageSizeChange"/>
+        </Grid>
+
     </Grid>
 </Page>

BIN
B20UVLog/Pages/LampData.xaml.cs


+ 1 - 1
B20UVLog/Pages/LampUseTime.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Lamp Use Time" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Lamp Use Time" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 1 - 1
B20UVLog/Pages/RecipeBody.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Recipe Body" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Recipe Body" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 1 - 1
B20UVLog/Pages/RecipeCount.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Recipe Count" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Recipe Count" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 1 - 1
B20UVLog/Pages/ServoAxisStatus.xaml

@@ -16,7 +16,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Servo Axis Status" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Servo Axis Status" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <My:MComboBox SelectedItem="{Binding AxisName}" ItemsSource="{Binding AxisNames}" SelectionChanged="MComboBox_SelectionChanged"/>
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

+ 1 - 1
B20UVLog/Pages/YMeasureData.xaml

@@ -13,7 +13,7 @@
             <RowDefinition Height="auto"/>
             <RowDefinition Height="*"/>
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="0" Text="Y Measure Data" FontSize="25" Margin="10 5"/>
+        <!--<TextBlock Grid.Row="0" Text="Y Measure Data" FontSize="25" Margin="10 5"/>-->
         <StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center">
             <!--<My:MTextBox x:Name="TextIndex" Title="Index_No"/>-->
             <My:MDateTimePicker x:Name="DTPStart" Title="开始时间"/>

BIN
B20UVLog/ViewModels/AxisDataViewModel.cs


BIN
B20UVLog/ViewModels/IOViewModel.cs


Деякі файли не було показано, через те що забагато файлів було змінено