Files
WCS/Plugins/Driver/Cowain.Driver/Views/AlarmHistoryView.axaml
2026-03-02 09:08:20 +08:00

165 lines
5.3 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:semi="https://irihi.tech/semi"
xmlns:u="https://irihi.tech/ursa"
xmlns:ia="using:Avalonia.Xaml.Interactions.Core"
xmlns:converters="using:Cowain.Base.Converters"
xmlns:i18n="clr-namespace:Ke.Bee.Localization.Extensions;assembly=Ke.Bee.Localization"
xmlns:vm="using:Plugin.Cowain.Driver.ViewModels"
xmlns:bvm="using:Cowain.Base.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Plugin.Cowain.Driver.Views.AlarmHistoryView">
<Interaction.Behaviors>
<ia:EventTriggerBehavior EventName="Loaded">
<ia:InvokeCommandAction Command="{Binding LoadedCommand}"/>
</ia:EventTriggerBehavior>
</Interaction.Behaviors>
<UserControl.Resources>
<converters:StringToBrushConverter x:Key="StringToBrushConverter" />
</UserControl.Resources>
<UserControl.Styles>
<Style Selector="DataGridRow">
<Setter Property="Foreground"
Value="{Binding Color, Converter={StaticResource StringToBrushConverter}, ConverterParameter=Foreground}" />
</Style>
<Style Selector="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="2" />
</Style>
</UserControl.Styles>
<Grid RowDefinitions="Auto * Auto">
<StackPanel Orientation="Horizontal" Spacing="10" Margin="6 2">
<u:DateRangePicker
Width="360"
Classes="ClearButton"
DisplayFormat="yyyy-MM-dd"
SelectedEndDate="{Binding EndDate}"
SelectedStartDate="{Binding StartDate}"/>
<TextBlock Text="{i18n:Localize AlarmHistory.SelectGroup}" />
<u:MultiComboBox
Width="200"
MaxHeight="200"
SelectedItems="{Binding SelectedGroups}"
ItemsSource="{Binding AlarmGroups}" >
<u:MultiComboBox.SelectedItemTemplate>
<DataTemplate x:DataType="vm:AlarmGroupViewModel">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</u:MultiComboBox.SelectedItemTemplate>
<u:MultiComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:AlarmGroupViewModel">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</u:MultiComboBox.ItemTemplate>
</u:MultiComboBox>
<TextBlock Text="{i18n:Localize AlarmHistory.SelectLevel}" />
<u:MultiComboBox
Width="200"
MaxHeight="200"
SelectedItems="{Binding SelectedLevels}"
ItemsSource="{Binding AlarmLevels}" >
<u:MultiComboBox.SelectedItemTemplate>
<DataTemplate x:DataType="vm:AlarmLevelViewModel">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</u:MultiComboBox.SelectedItemTemplate>
<u:MultiComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:AlarmLevelViewModel">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</u:MultiComboBox.ItemTemplate>
</u:MultiComboBox>
<u:IconButton
ToolTip.Tip="{i18n:Localize Button.Tooltip.Refresh}"
Command="{Binding RefreshCommand}"
Theme="{DynamicResource BorderlessIconButton}">
<u:IconButton.Icon>
<PathIcon
Width="16"
Height="16"
Data="{StaticResource SemiIconRedoStroked}" />
</u:IconButton.Icon>
</u:IconButton>
<!--µ¼³ö-->
<u:IconButton
Command="{Binding ExportCommand}"
Theme="{DynamicResource BorderlessIconButton}"
ToolTip.Tip="{i18n:Localize Button.Tooptip.Export}">
<u:IconButton.Icon>
<PathIcon
Width="16"
Height="16"
Data="{StaticResource SemiIconExternalOpenStroked}" />
</u:IconButton.Icon>
</u:IconButton>
</StackPanel>
<DataGrid
Margin="8"
Grid.Row="1"
CanUserReorderColumns="True"
CanUserResizeColumns="True"
CanUserSortColumns="True"
HeadersVisibility="All"
IsReadOnly="True"
ItemsSource="{Binding Alarms}">
<DataGrid.Columns>
<DataGridTextColumn
Width="Auto"
x:DataType="bvm:AlarmViewModel"
Binding="{Binding Desc}"
Header="{i18n:Localize AlarmRealTimeView.DataGrid.Desc}" />
<DataGridTextColumn
Width="180"
x:DataType="bvm:AlarmViewModel"
Binding="{Binding StartTime}"
Header="{i18n:Localize AlarmRealTimeView.DataGrid.StartTime}" />
<DataGridTextColumn
Width="180"
x:DataType="bvm:AlarmViewModel"
Binding="{Binding StopTime}"
Header="{i18n:Localize AlarmRealTimeView.DataGrid.StopTime}" />
<DataGridTextColumn
Width="120"
x:DataType="bvm:AlarmViewModel"
Binding="{Binding GroupName}"
Header="{i18n:Localize AlarmRealTimeView.DataGrid.GroupName}" />
<DataGridTextColumn
Width="120"
x:DataType="bvm:AlarmViewModel"
Binding="{Binding LevelName}"
Header="{i18n:Localize AlarmRealTimeView.DataGrid.LevelName}" />
</DataGrid.Columns>
</DataGrid>
<u:Pagination
Name="page"
Grid.Row="2"
Command="{Binding RefreshCommand}"
CommandParameter="{Binding $self.CurrentPage}"
CurrentPage="{Binding PageIndex, Mode=TwoWay}"
PageSize="{Binding PageSize, Mode=TwoWay}"
PageSizeOptions="10, 20, 50, 100"
ShowPageSizeSelector="True"
ShowQuickJump="True"
TotalCount="{Binding Totals}" />
</Grid>
</UserControl>