Browse Source

修改自动测试

ltwork 1 năm trước cách đây
mục cha
commit
2b11960b47

+ 2 - 1
BlankApp1/BlankApp1/Controls/Convert/ContentToBackgroundConverter.cs

@@ -20,7 +20,8 @@ namespace PLCTool.Controls.Convert
             switch (content)
             {
                 case TestResult.NoPass:
-                    return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2684CB"));
+                    //return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2684CB"));
+                    return new SolidColorBrush(Colors.Red);
                 case TestResult.Pass:
                     return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#409EFF"));
                 case TestResult.NoTest:

+ 46 - 6
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/AutoTestViewModel.cs

@@ -7,6 +7,7 @@ using Newtonsoft.Json;
 
 using PLCTool.Common;
 using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -139,7 +140,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// </summary>
         private void ItemChange()
         {
-            var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem);
+            var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem.ItemName);
             if (findDtlMsg != null)
             {
                 int id = Convert.ToInt32(findDtlMsg.scheme_dtl_id);
@@ -181,8 +182,13 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                     foreach (var sch in schDtls)
                     {
                         long dtlId = sch.scheme_dtl_id;
+                        SchItems.Add(new ItemAndBackColorModel()
+                        {
+                            ItemName = sch.item_name,
+                            BackResultValue = TestResult.NoTest,
+                        });
 
-                        SchItems.Add(sch.item_name);
+                       
                     }
                     //默认显示第一个测试项的信息
                     if (schDtls.Count != 0)
@@ -671,6 +677,12 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// <param name="obj"></param>
         private  void Start()
         {
+            MessageBoxResult boxResult = MessageBox.Show("确认开始测试?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
+            if (boxResult != MessageBoxResult.OK)
+            {
+
+                return;
+            }
             m2.Reset();  //阻塞线程(不再读取前置项)
             CancellationToken cancellationToken = tokensource.Token;
             StartEnalbe = false;
@@ -776,6 +788,33 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             bool isJudgeResult = await TestJudgementMethod();
             //增加测试记录
             AddDtltRecord(globalSchDetailId);
+
+            //更新左侧菜单颜色
+            if (GetTestResult() == 1)
+            {
+                System.Windows.Application.Current.Dispatcher.Invoke((delegate
+                {
+                    
+                    var findItem = SchItems.FirstOrDefault(x => x.ItemName == SelectItem.ItemName);
+                    if (findItem != null)
+                    {
+                        findItem.BackResultValue = TestResult.Pass;
+                    }
+                }));
+              
+            }
+            else
+            {
+                System.Windows.Application.Current.Dispatcher.Invoke((delegate
+                {
+
+                    var findItem = SchItems.FirstOrDefault(x => x.ItemName == SelectItem.ItemName);
+                    if (findItem != null)
+                    {
+                        findItem.BackResultValue = TestResult.NoPass;
+                    }
+                }));
+            }
             //下一项
             StepIndex = 0;
 
@@ -1644,15 +1683,16 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             set { startEnalbe = value; RaisePropertyChanged(); }
         }
         //所有测试项列表
-        private List<string> schItems = new List<string>();
-        public List<string> SchItems
+        //所有测试项列表
+        private List<ItemAndBackColorModel> schItems = new List<ItemAndBackColorModel>();
+        public List<ItemAndBackColorModel> SchItems
         {
             get { return schItems; }
             set { schItems = value; RaisePropertyChanged(); }
         }
         //所选测试方案
-        private string selectItem;
-        public string SelectItem
+        private ItemAndBackColorModel selectItem;
+        public ItemAndBackColorModel SelectItem
         {
             get { return selectItem; }
             set { selectItem = value; RaisePropertyChanged(); }

+ 7 - 6
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/ManualTestViewModel.cs

@@ -103,12 +103,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                 GetDetailInfo(id);
                 m2.Set();  //继续线程(读取前置项)
             }
-            ////更改背景色
-            //var findItem = SchItems.FirstOrDefault(x => x.ItemName == SelectItem.ItemName);
-            //if (findItem != null)
-            //{
-            //    findItem.BackResultValue = TestResult.Testing;
-            //}
+          
         }
         /// <summary>
         /// 复位PLC
@@ -791,6 +786,12 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// <param name="obj"></param>
         private async  void Start(object obj)
         {
+            MessageBoxResult boxResu = MessageBox.Show("确认开始测试?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
+            if (boxResu != MessageBoxResult.OK)
+            {
+
+                return;
+            }
 
             m2.Reset();  //阻塞线程(不再读取前置项)
             StartEnalbe = false;

+ 35 - 7
BlankApp1/BlankApp1/ViewModels/BusinessManageViewModel/RetryTestViewModel.cs

@@ -6,6 +6,7 @@ using Model.Entities;
 using Newtonsoft.Json;
 using PLCTool.Common;
 using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -121,8 +122,12 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
                             //时间最新的结果 ,不通过
                             if (dtlResult[0].test_result == 0)
                             {
-                                SchItems.Add(sch.item_name);
-
+                               
+                                SchItems.Add(new ItemAndBackColorModel()
+                                {
+                                    ItemName = sch.item_name,
+                                    BackResultValue = TestResult.NoTest,
+                                });
                                 reTrysList.Add(sch);
                             }
 
@@ -333,7 +338,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         private void ItemChange()
         {
             m2.Set();  //继续线程(读取前置项)
-            var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem);
+            var findDtlMsg = _basicPlcTestSchemeDtlService.FindAllBySchId(schId)?.FirstOrDefault(X => X.item_name == SelectItem.ItemName);
             if (findDtlMsg != null)
             {
                 int id = Convert.ToInt32(findDtlMsg.scheme_dtl_id);
@@ -711,7 +716,12 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// <param name="obj"></param>
         private async void Start(object obj)
         {
+            MessageBoxResult boxResu = MessageBox.Show("确认开始测试?", "确认", MessageBoxButton.OKCancel, MessageBoxImage.Question);
+            if (boxResu != MessageBoxResult.OK)
+            {
 
+                return;
+            }
             m2.Reset();  //阻塞线程(不再读取前置项)
             StartEnalbe = false;
             _logger.LogInformation($"开始手动测试。方案名{ScheduleName},测试项{TestName}");
@@ -758,6 +768,23 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             //将测试结果添加到数据库
 
             AddDtltRecord(globalSchDetailId);
+            //更新左侧菜单颜色
+            if (GetTestResult() == 1)
+            {
+                var findItem = SchItems.FirstOrDefault(x => x.ItemName == SelectItem.ItemName);
+                if (findItem != null)
+                {
+                    findItem.BackResultValue = TestResult.Pass;
+                }
+            }
+            else
+            {
+                var findItem = SchItems.FirstOrDefault(x => x.ItemName == SelectItem.ItemName);
+                if (findItem != null)
+                {
+                    findItem.BackResultValue = TestResult.NoPass;
+                }
+            }
             SendLogToDis($"手动测试完成。方案名{ScheduleName},测试项{TestName}");
             _logger.LogInformation($"手动测试完成。方案名{ScheduleName},测试项{TestName}");
             StartEnalbe = true;
@@ -1597,15 +1624,16 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
             set { startEnalbe = value; RaisePropertyChanged(); }
         }
         //所有测试项列表
-        private List<string> schItems = new List<string>();
-        public List<string> SchItems
+        //所有测试项列表
+        private List<ItemAndBackColorModel> schItems = new List<ItemAndBackColorModel>();
+        public List<ItemAndBackColorModel> SchItems
         {
             get { return schItems; }
             set { schItems = value; RaisePropertyChanged(); }
         }
         //所选测试方案
-        private string selectItem;
-        public string SelectItem
+        private ItemAndBackColorModel selectItem;
+        public ItemAndBackColorModel SelectItem
         {
             get { return selectItem; }
             set { selectItem = value; RaisePropertyChanged(); }

+ 37 - 0
BlankApp1/BlankApp1/Views/BusinessManageView/AutoTestView.xaml

@@ -14,6 +14,7 @@
         <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
         <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
         <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
+        <cvt:ContentToBackgroundConverter x:Key="ContentToBackConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -36,7 +37,43 @@
         <DockPanel Grid.Column="0" LastChildFill="True">
             <TextBlock Text="测试项列表:"  Style="{StaticResource NormalTextBlockStyle}" Margin="5,0,5,0" DockPanel.Dock="Top"/>
             <ListBox ItemsSource="{Binding SchItems}" SelectedValue="{Binding SelectItem}" SelectedIndex="{Binding SelectItemIndex}" >
+                <ListBox.ItemContainerStyle>
+                    <Style TargetType="ListBoxItem">
+                        <!-- 设置控件模板 -->
+                        <!--<Setter Property="Template">
+                 <Setter.Value>
+                     <ControlTemplate TargetType="ListBoxItem">
+                         <Grid Background="{TemplateBinding Background}" TextBlock.Foreground="{TemplateBinding Foreground}">
+                             <TextBlock Text="{Binding ItemName}" />
+                         </Grid>
 
+                     </ControlTemplate>
+                 </Setter.Value>
+             </Setter>-->
+                        <Setter Property="Template">
+                            <Setter.Value>
+                                <ControlTemplate TargetType="ListBoxItem">
+                                    <Border Background="{TemplateBinding Background}" CornerRadius="5"  Padding="5"
+                                 BorderThickness="1">
+                                        <Grid>
+                                            <TextBlock Text="{Binding ItemName}" />
+                                        </Grid>
+                                    </Border>
+                                </ControlTemplate>
+                            </Setter.Value>
+                        </Setter>
+                        <Setter Property="Background" Value="{Binding BackResultValue,Converter={StaticResource ContentToBackConverter}}"/>
+                        <Setter Property="Margin" Value="5,0"/>
+                        <Setter Property="FontSize" Value="12"/>
+                        <!-- 设置触发器 -->
+                        <Style.Triggers>
+                            <Trigger Property="IsSelected" Value="true">
+                                <Setter Property="Background" Value="#7ABBFF"/>
+                                <Setter Property="Foreground" Value="White"/>
+                            </Trigger>
+                        </Style.Triggers>
+                    </Style>
+                </ListBox.ItemContainerStyle>
                 <b:Interaction.Triggers>
                     <b:EventTrigger EventName="SelectionChanged">
                         <b:InvokeCommandAction Command="{Binding ItemChangeCommand}"/>

+ 38 - 1
BlankApp1/BlankApp1/Views/BusinessManageView/RetryTestView.xaml

@@ -16,6 +16,7 @@
         <cvt:ValueToLedAndValueConverter x:Key="ValueToColorConverter"/>
         <cvt:ValueToVisibilityConverter x:Key="ValueToElispConverter"/>
         <cvt:ValueToTxtVisibilityConverter x:Key="ValueToTxtConverter"/>
+        <cvt:ContentToBackgroundConverter x:Key="ContentToBackConverter"/>
         <Style TargetType="TextBlock" x:Key="textBlockStyle">
             <Setter Property="Width" Value="80"/>
             <Setter Property="FontSize" Value="12"/>
@@ -47,15 +48,51 @@
         </Grid.ColumnDefinitions>
         <DockPanel Grid.Column="0" LastChildFill="True">
             <TextBlock Text="测试项列表:"  Style="{StaticResource NormalTextBlockStyle}" Margin="5,0,5,0" DockPanel.Dock="Top"/>
+      
             <ListBox ItemsSource="{Binding SchItems}" SelectedValue="{Binding SelectItem}" SelectedIndex="{Binding SelectItemIndex}" >
+                <ListBox.ItemContainerStyle>
+                    <Style TargetType="ListBoxItem">
+                        <!-- 设置控件模板 -->
+                        <!--<Setter Property="Template">
+                 <Setter.Value>
+                     <ControlTemplate TargetType="ListBoxItem">
+                         <Grid Background="{TemplateBinding Background}" TextBlock.Foreground="{TemplateBinding Foreground}">
+                             <TextBlock Text="{Binding ItemName}" />
+                         </Grid>
 
+                     </ControlTemplate>
+                 </Setter.Value>
+             </Setter>-->
+                        <Setter Property="Template">
+                            <Setter.Value>
+                                <ControlTemplate TargetType="ListBoxItem">
+                                    <Border Background="{TemplateBinding Background}" CornerRadius="5"  Padding="5"
+                                 BorderThickness="1">
+                                        <Grid>
+                                            <TextBlock Text="{Binding ItemName}" />
+                                        </Grid>
+                                    </Border>
+                                </ControlTemplate>
+                            </Setter.Value>
+                        </Setter>
+                        <Setter Property="Background" Value="{Binding BackResultValue,Converter={StaticResource ContentToBackConverter}}"/>
+                        <Setter Property="Margin" Value="5,0"/>
+                        <Setter Property="FontSize" Value="12"/>
+                        <!-- 设置触发器 -->
+                        <Style.Triggers>
+                            <Trigger Property="IsSelected" Value="true">
+                                <Setter Property="Background" Value="#7ABBFF"/>
+                                <Setter Property="Foreground" Value="White"/>
+                            </Trigger>
+                        </Style.Triggers>
+                    </Style>
+                </ListBox.ItemContainerStyle>
                 <b:Interaction.Triggers>
                     <b:EventTrigger EventName="SelectionChanged">
                         <b:InvokeCommandAction Command="{Binding ItemChangeCommand}"/>
                     </b:EventTrigger>
                 </b:Interaction.Triggers>
             </ListBox>
-
         </DockPanel>
         <Border Grid.Column="0"  BorderBrush="#CBCBCB" BorderThickness="1,0" />
         <Grid Grid.Column="1">