ViewCView.axaml 6.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <UserControl xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:vm="using:YZWater.Core.ViewModels"
  4. xmlns:lvc="using:LiveChartsCore.SkiaSharpView.Avalonia"
  5. x:Class="YZWater.Avalonia.Views.ViewCView"
  6. x:DataType="vm:ViewCViewModel">
  7. <UserControl.DataContext>
  8. <vm:ViewCViewModel/>
  9. </UserControl.DataContext>
  10. <Border Background="{DynamicResource AppBgBrush}">
  11. <Grid RowDefinitions="48,*,32">
  12. <!-- 椤堕儴 -->
  13. <Border Grid.Row="0" Background="{DynamicResource SurfaceBgBrush}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
  14. <Grid Margin="16,0">
  15. <StackPanel Orientation="Horizontal" Spacing="12" VerticalAlignment="Center">
  16. <Border Background="#4CAF50" Width="3" Height="20" CornerRadius="1"/>
  17. <TextBlock Text="FLOW RECORDS" FontFamily="{DynamicResource MonoFont}" FontSize="16" FontWeight="Bold"
  18. Foreground="{DynamicResource TextPrimaryBrush}" VerticalAlignment="Center"/>
  19. <TextBlock Text="娴侀噺鍘嗗彶鏁版嵁" FontSize="12" Foreground="{DynamicResource TextTertiaryBrush}" VerticalAlignment="Center"/>
  20. </StackPanel>
  21. </Grid>
  22. </Border>
  23. <!-- 鍐呭 -->
  24. <Grid Grid.Row="1" RowDefinitions="Auto,*,Auto" Margin="8,4">
  25. <!-- 鏌ヨ鏉′欢 -->
  26. <Border Grid.Row="0" Background="{DynamicResource SurfaceBgBrush}" CornerRadius="2"
  27. BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Padding="12" Margin="0,0,0,4">
  28. <StackPanel Orientation="Horizontal" Spacing="16">
  29. <StackPanel Orientation="Horizontal" Spacing="6">
  30. <TextBlock Text="FROM" FontFamily="{DynamicResource MonoFont}" FontSize="10" Foreground="{DynamicResource TextTertiaryBrush}" VerticalAlignment="Center"/>
  31. <DatePicker SelectedDate="{Binding StartDate}" Width="150"/>
  32. </StackPanel>
  33. <StackPanel Orientation="Horizontal" Spacing="6">
  34. <TextBlock Text="TO" FontFamily="{DynamicResource MonoFont}" FontSize="10" Foreground="{DynamicResource TextTertiaryBrush}" VerticalAlignment="Center"/>
  35. <DatePicker SelectedDate="{Binding EndDate}" Width="150"/>
  36. </StackPanel>
  37. <Button Content="QUERY" Command="{Binding LoadFlowRecordsCommand}" Classes="btn-info"/>
  38. <Button Content="EXPORT CSV" Command="{Binding ExportDataCommand}" Classes="btn-success"/>
  39. <Button Content="PURGE OLD" Command="{Binding ClearOldDataCommand}" Classes="btn-danger"/>
  40. </StackPanel>
  41. </Border>
  42. <!-- 鍥捐〃 -->
  43. <Border Grid.Row="1" Background="{DynamicResource SurfaceBgBrush}" CornerRadius="2"
  44. BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Padding="12" Margin="0,0,0,4">
  45. <ScrollViewer>
  46. <StackPanel>
  47. <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,0,0,8">
  48. <Border Background="#4CAF50" Width="3" Height="14" CornerRadius="1"/>
  49. <TextBlock Text="INFLOW TREND" FontFamily="{DynamicResource MonoFont}" FontSize="11" Foreground="{DynamicResource TextSecondaryBrush}"/>
  50. </StackPanel>
  51. <lvc:CartesianChart Series="{Binding InflowSeries}" XAxes="{Binding XAxes}" YAxes="{Binding YAxes}" Height="200"/>
  52. <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,16,0,8">
  53. <Border Background="#2196F3" Width="3" Height="14" CornerRadius="1"/>
  54. <TextBlock Text="OUTFLOW TREND" FontFamily="{DynamicResource MonoFont}" FontSize="11" Foreground="{DynamicResource TextSecondaryBrush}"/>
  55. </StackPanel>
  56. <lvc:CartesianChart Series="{Binding OutflowSeries}" XAxes="{Binding XAxes}" YAxes="{Binding YAxes}" Height="200"/>
  57. </StackPanel>
  58. </ScrollViewer>
  59. </Border>
  60. <!-- 鏁版嵁琛ㄦ牸 -->
  61. <Border Grid.Row="2" Background="{DynamicResource SurfaceBgBrush}" CornerRadius="2"
  62. BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Padding="8">
  63. <DataGrid ItemsSource="{Binding FlowRecords}" AutoGenerateColumns="False" IsReadOnly="True" Height="150">
  64. <DataGrid.Columns>
  65. <DataGridTextColumn Header="TIME" Binding="{Binding RecordTime, StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}" Width="160"/>
  66. <DataGridTextColumn Header="IN (m鲁/h)" Binding="{Binding InflowRate, StringFormat='{}{0:F1}'}" Width="100"/>
  67. <DataGridTextColumn Header="OUT (m鲁/h)" Binding="{Binding OutflowRate, StringFormat='{}{0:F1}'}" Width="100"/>
  68. <DataGridTextColumn Header="TOTAL IN (m鲁)" Binding="{Binding TotalInflow, StringFormat='{}{0:F1}'}" Width="120"/>
  69. <DataGridTextColumn Header="TOTAL OUT (m鲁)" Binding="{Binding TotalOutflow, StringFormat='{}{0:F1}'}" Width="120"/>
  70. </DataGrid.Columns>
  71. </DataGrid>
  72. </Border>
  73. </Grid>
  74. <!-- 搴曢儴 -->
  75. <Border Grid.Row="2" Background="{DynamicResource SurfaceBgBrush}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,1,0,0">
  76. <TextBlock Text="FLOW DATA v1.0" FontFamily="{DynamicResource MonoFont}" FontSize="10"
  77. Foreground="{DynamicResource TextDisabledBrush}" VerticalAlignment="Center" Margin="16,0"/>
  78. </Border>
  79. </Grid>
  80. </Border>
  81. </UserControl>