RecordPage.xaml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <Page x:Class="SWRIS.Pages.RecordPage"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:SWRIS.Pages"
  7. FontFamily="{StaticResource PuHuiTiRegular}"
  8. xmlns:pu="https://opensource.panuon.com/wpf-ui"
  9. xmlns:cvt="clr-namespace:SWRIS.Converters"
  10. mc:Ignorable="d" Foreground="#FFFFFF"
  11. Height="1020" Width="1920" FontSize="20" KeepAlive="True"
  12. Title="RecordPage">
  13. <Page.Resources>
  14. <cvt:RiskLevelToColorConverter x:Key="RiskLevelToColorConverter"/>
  15. <cvt:RiskLevelToTextConverter x:Key="RiskLevelToTextConverter"/>
  16. <cvt:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
  17. </Page.Resources>
  18. <Grid Margin="25,20,25,7">
  19. <Grid.RowDefinitions>
  20. <RowDefinition Height="100"/>
  21. <RowDefinition Height="Auto"/>
  22. </Grid.RowDefinitions>
  23. <StackPanel Orientation="Vertical" Grid.Row="0" VerticalAlignment="Center">
  24. <StackPanel Orientation="Horizontal">
  25. <Label Content="钢丝绳" VerticalAlignment="Center" Foreground="#7886B2" Margin="5,0"/>
  26. <ComboBox ItemsSource="{Binding ViewModel.Ropes}" DisplayMemberPath="Value" SelectedValuePath="Key"
  27. SelectedValue="{Binding ViewModel.SearchInput.RopeNumber,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" Margin="5,0"/>
  28. <Label Content="时间范围" VerticalAlignment="Center" Foreground="#7886B2"/>
  29. <pu:DateTimePicker SelectedDateTime="{Binding ViewModel.SearchInput.StartTime,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
  30. Margin="10,0,5,0" />
  31. <Rectangle Width="12" Height="3" Fill="#3B3B7B"/>
  32. <pu:DateTimePicker Margin="5,0" SelectedDateTime="{Binding ViewModel.SearchInput.EndTime,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"/>
  33. <Label Content="风险等级" VerticalAlignment="Center" Foreground="#7886B2" Margin="50,0,5,0"/>
  34. <ComboBox ItemsSource="{Binding ViewModel.RiskLevels}" DisplayMemberPath="Value" SelectedValuePath="Key"
  35. SelectedValue="{Binding ViewModel.SearchInput.RiskLevel,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" Margin="5,0"/>
  36. <Button Content="查询" pu:ButtonHelper.CornerRadius="15" Margin="25,0" Click="Search_Click">
  37. <Button.Background>
  38. <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
  39. <GradientStop Color="#4E38F0 " Offset="0.6"/>
  40. <GradientStop Color="#736AFA " Offset="1.2"/>
  41. </LinearGradientBrush>
  42. </Button.Background>
  43. </Button>
  44. </StackPanel>
  45. <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="5,5">
  46. <Button Content="生成报告" Margin="5,0" Height="35" FontSize="18" pu:ButtonHelper.CornerRadius="12" Click="Batch_Report"/>
  47. <Button Content="批量删除" Margin="5,0" Height="35" FontSize="18" pu:ButtonHelper.CornerRadius="12" Click="Batch_Delete"/>
  48. <Button Content="批量导出" Margin="5,0" Height="35" FontSize="18" pu:ButtonHelper.CornerRadius="12" Click="Batch_Export" Visibility="{Binding ViewModel.ShowExport, Converter={StaticResource BoolToVisibilityConverter}}"/>
  49. </StackPanel>
  50. </StackPanel>
  51. <StackPanel Grid.Row="1" Orientation="Vertical">
  52. <DataGrid Name="RecordDataGrid" Height="810" ItemsSource="{Binding ViewModel.Records,IsAsync=True}"
  53. AlternationCount="2" MouseDoubleClick="RecordDataGrid_MouseDoubleClick"
  54. pu:DataGridHelper.RowHeaderHoverBackground="Transparent">
  55. <DataGrid.RowStyle>
  56. <Style TargetType="DataGridRow">
  57. <Style.Triggers>
  58. <Trigger Property="AlternationIndex" Value="0">
  59. <Setter Property="Background" Value="#19183A"/>
  60. </Trigger>
  61. <Trigger Property="AlternationIndex" Value="1">
  62. <Setter Property="Background" Value="#202045"/>
  63. </Trigger>
  64. <Trigger Property="IsMouseOver" Value="True">
  65. <Setter Property="Background" Value="#29297b"/>
  66. </Trigger>
  67. <Trigger Property="IsSelected" Value="True">
  68. <Setter Property="Background" Value="#272771"/>
  69. </Trigger>
  70. </Style.Triggers>
  71. </Style>
  72. </DataGrid.RowStyle>
  73. <DataGrid.Columns>
  74. <!-- 添加复选框列 -->
  75. <DataGridTemplateColumn Width="50" IsReadOnly="True">
  76. <DataGridTemplateColumn.HeaderTemplate>
  77. <DataTemplate>
  78. <CheckBox x:Name="SelectAllCheckBox" HorizontalAlignment="Center" VerticalAlignment="Center"
  79. IsChecked="{Binding Path=DataContext.ViewModel.IsAllSelected,RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Mode=TwoWay}"
  80. ToolTip="全选"/>
  81. </DataTemplate>
  82. </DataGridTemplateColumn.HeaderTemplate>
  83. <DataGridTemplateColumn.HeaderStyle>
  84. <Style TargetType="DataGridColumnHeader">
  85. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  86. <Setter Property="VerticalContentAlignment" Value="Center"/>
  87. <Setter Property="Background" Value="Transparent"/>
  88. <Setter Property="Height" Value="26"/>
  89. <Style.Triggers>
  90. <Trigger Property="IsMouseOver" Value="True">
  91. <Setter Property="Cursor" Value="Hand"/>
  92. </Trigger>
  93. </Style.Triggers>
  94. </Style>
  95. </DataGridTemplateColumn.HeaderStyle>
  96. <DataGridTemplateColumn.CellTemplate>
  97. <DataTemplate>
  98. <CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding IsSelected,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
  99. </DataTemplate>
  100. </DataGridTemplateColumn.CellTemplate>
  101. </DataGridTemplateColumn>
  102. <DataGridTemplateColumn Width="250" IsReadOnly="True">
  103. <DataGridTemplateColumn.Header>
  104. <TextBlock Text="钢丝绳名称" />
  105. </DataGridTemplateColumn.Header>
  106. <DataGridTemplateColumn.CellTemplate>
  107. <DataTemplate>
  108. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular" Text="{Binding RopeName}"/>
  109. </DataTemplate>
  110. </DataGridTemplateColumn.CellTemplate>
  111. </DataGridTemplateColumn>
  112. <DataGridTemplateColumn Width="220" IsReadOnly="True">
  113. <DataGridTemplateColumn.Header>
  114. <TextBlock Text="开始时间"/>
  115. </DataGridTemplateColumn.Header>
  116. <DataGridTemplateColumn.CellTemplate>
  117. <DataTemplate>
  118. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular"
  119. Text="{Binding StartTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
  120. </DataTemplate>
  121. </DataGridTemplateColumn.CellTemplate>
  122. </DataGridTemplateColumn>
  123. <DataGridTemplateColumn Width="220" IsReadOnly="True">
  124. <DataGridTemplateColumn.Header>
  125. <TextBlock Text="结束时间"/>
  126. </DataGridTemplateColumn.Header>
  127. <DataGridTemplateColumn.CellTemplate>
  128. <DataTemplate>
  129. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular"
  130. Text="{Binding EndTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
  131. </DataTemplate>
  132. </DataGridTemplateColumn.CellTemplate>
  133. </DataGridTemplateColumn>
  134. <DataGridTemplateColumn Width="140" SortMemberPath="RiskLevel">
  135. <DataGridTemplateColumn.Header>
  136. <TextBlock Text="风险等级"/>
  137. </DataGridTemplateColumn.Header>
  138. <DataGridTemplateColumn.CellTemplate>
  139. <DataTemplate>
  140. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0"
  141. Text="{Binding RiskLevel,Converter={StaticResource RiskLevelToTextConverter}}"
  142. Foreground="{Binding RiskLevel,Converter={StaticResource RiskLevelToColorConverter}}"/>
  143. </DataTemplate>
  144. </DataGridTemplateColumn.CellTemplate>
  145. </DataGridTemplateColumn>
  146. <DataGridTemplateColumn Width="150" SortMemberPath="StartPoint">
  147. <DataGridTemplateColumn.Header>
  148. <TextBlock Text="检测起点"/>
  149. </DataGridTemplateColumn.Header>
  150. <DataGridTemplateColumn.CellTemplate>
  151. <DataTemplate>
  152. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular">
  153. <Run Text="{Binding StartPoint,StringFormat=#0.00}"/>
  154. <Run>米</Run>
  155. </TextBlock>
  156. </DataTemplate>
  157. </DataGridTemplateColumn.CellTemplate>
  158. </DataGridTemplateColumn>
  159. <DataGridTemplateColumn Width="150" SortMemberPath="DetectionLength">
  160. <DataGridTemplateColumn.Header>
  161. <TextBlock Text="检测长度"/>
  162. </DataGridTemplateColumn.Header>
  163. <DataGridTemplateColumn.CellTemplate>
  164. <DataTemplate>
  165. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular">
  166. <Run Text="{Binding DetectionLength,StringFormat=#0.00}" />
  167. <Run>米</Run>
  168. </TextBlock>
  169. </DataTemplate>
  170. </DataGridTemplateColumn.CellTemplate>
  171. </DataGridTemplateColumn>
  172. <DataGridTemplateColumn Width="150" SortMemberPath="LightAlarmCount">
  173. <DataGridTemplateColumn.Header>
  174. <TextBlock Text="检测速度" />
  175. </DataGridTemplateColumn.Header>
  176. <DataGridTemplateColumn.CellTemplate>
  177. <DataTemplate>
  178. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular">
  179. <Run Text="{Binding DetectedSpeed,StringFormat=#0.00}" />
  180. <Run>m/s</Run>
  181. </TextBlock>
  182. </DataTemplate>
  183. </DataGridTemplateColumn.CellTemplate>
  184. </DataGridTemplateColumn>
  185. <DataGridTemplateColumn Width="150" SortMemberPath="HeavyAlarmCount">
  186. <DataGridTemplateColumn.Header>
  187. <TextBlock Text="损伤数量"/>
  188. </DataGridTemplateColumn.Header>
  189. <DataGridTemplateColumn.CellTemplate>
  190. <DataTemplate>
  191. <TextBlock HorizontalAlignment="Center" Margin="0,0,10,0" FontWeight="Regular">
  192. <Run Text="{Binding DamageCount}" />
  193. <Run>处</Run>
  194. </TextBlock>
  195. </DataTemplate>
  196. </DataGridTemplateColumn.CellTemplate>
  197. </DataGridTemplateColumn>
  198. <DataGridTemplateColumn Width="350">
  199. <DataGridTemplateColumn.Header>
  200. <TextBlock Text="操作"/>
  201. </DataGridTemplateColumn.Header>
  202. <DataGridTemplateColumn.CellTemplate>
  203. <DataTemplate>
  204. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
  205. <Button Content="生成报告" Background="Transparent" Tag="{Binding}" Foreground="#615CDD" Width="130"
  206. Click="Report_Click" FontWeight="Medium" FontFamily="{StaticResource PuHuiTiRegular}"
  207. VerticalAlignment="Center" pu:ButtonHelper.Icon="&#xe9c4;"
  208. pu:IconHelper.FontSize="17" pu:IconHelper.FontFamily="{StaticResource PanuonIconFont}"/>
  209. <Button Content="删除" Background="Transparent" Tag="{Binding Id}" Foreground="#615CDD" Width="80"
  210. Click="Delete_Click" Margin="10,0,0,0" FontWeight="Medium" FontFamily="{StaticResource PuHuiTiRegular}"
  211. VerticalAlignment="Center" pu:ButtonHelper.Icon="&#xe934;" pu:IconHelper.FontSize="17"
  212. pu:IconHelper.FontFamily="{StaticResource PanuonIconFont}"/>
  213. <Button Content="导出" Background="Transparent" Tag="{Binding}" Foreground="#615CDD" Width="80"
  214. Click="Export_Click" Margin="10,0,0,0" FontWeight="Medium" FontFamily="{StaticResource PuHuiTiRegular}"
  215. VerticalAlignment="Center" pu:ButtonHelper.Icon="&#xe9E2;" pu:IconHelper.FontSize="17"
  216. pu:IconHelper.FontFamily="{StaticResource PanuonIconFont}" Visibility="{Binding DataContext.ViewModel.ShowExport, RelativeSource={RelativeSource AncestorType=Page}, Converter={StaticResource BoolToVisibilityConverter}}"/>
  217. </StackPanel>
  218. </DataTemplate>
  219. </DataGridTemplateColumn.CellTemplate>
  220. </DataGridTemplateColumn>
  221. </DataGrid.Columns>
  222. </DataGrid>
  223. </StackPanel>
  224. </Grid>
  225. </Page>