Bläddra i källkod

修改手动测试左侧颜色

ltwork 1 år sedan
förälder
incheckning
873290e608

+ 40 - 0
BlankApp1/BlankApp1/Controls/Convert/ContentToBackgroundConverter.cs

@@ -0,0 +1,40 @@
+using PLCTool.Models;
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace PLCTool.Controls.Convert
+{
+    public class ContentToBackgroundConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            // 根据内容返回不同的背景色
+            TestResult content =(TestResult) value;
+            switch (content)
+            {
+                case TestResult.NoPass:
+                    return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#2684CB"));
+                case TestResult.Pass:
+                    return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#409EFF"));
+                case TestResult.NoTest:
+                    return new SolidColorBrush(Colors.Transparent);
+                case TestResult.Testing:
+                    return new SolidColorBrush((Color)ColorConverter.ConvertFromString("#409EFF"));
+                default:
+                    return new SolidColorBrush(Colors.Transparent);
+            }
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}

+ 34 - 0
BlankApp1/BlankApp1/Models/ItemAndBackColorModel.cs

@@ -0,0 +1,34 @@
+using Model.Dto;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PLCTool.Models
+{
+    public class ItemAndBackColorModel:BaseDto
+    {
+        private string itemName { get; set; }
+        public  string ItemName
+        {
+            get { return itemName; }
+            set { itemName = value; OnPropertyChanged(); }
+        }
+
+        private TestResult backResultValue { get; set; }
+        public TestResult BackResultValue
+        {
+            get { return backResultValue; }
+            set { backResultValue = value; OnPropertyChanged(); }
+        }
+        
+    }
+    public enum TestResult{
+        NoTest,
+        Pass,
+        NoPass,
+        Testing
+
+    }
+}

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

@@ -8,6 +8,7 @@ using Newtonsoft.Json;
 using OmronFinsTCP.Net;
 using PLCTool.Common;
 using PLCTool.Events;
+using PLCTool.Models;
 using Prism.Commands;
 using Prism.Events;
 using Prism.Mvvm;
@@ -92,7 +93,7 @@ namespace PLCTool.ViewModels.BusinessManageViewModel
         /// </summary>
         private void ItemChange()
         {
-            var findDtlMsg = allSchDtlsById?.FirstOrDefault(X => X.item_name == SelectItem);
+            var findDtlMsg = allSchDtlsById?.FirstOrDefault(X => X.item_name == SelectItem.ItemName);
             if(findDtlMsg != null)
             {
                 int id = Convert.ToInt32(findDtlMsg.scheme_dtl_id);
@@ -102,6 +103,12 @@ 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
@@ -151,8 +158,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)
@@ -827,6 +839,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;
@@ -1670,15 +1699,15 @@ 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(); }

+ 40 - 10
BlankApp1/BlankApp1/Views/BusinessManageView/ManualTestView.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"/>
@@ -23,14 +24,7 @@
             <Setter Property="TextAlignment" Value="Right"/>
             <Setter Property="Margin" Value="0,0,5,0"/>
         </Style>
-        <Style TargetType="ListBoxItem">
-            <Style.Triggers>
-                <Trigger Property="ListBoxItem.IsSelected" Value="True">
-                    <Setter Property="ListBoxItem.Background" Value="red"/>
-                </Trigger>
-           
-            </Style.Triggers>
-        </Style>
+    
 
      
     </UserControl.Resources>
@@ -48,14 +42,50 @@
         <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">