| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <UserControl x:Class="ivf_tl_Operate.View.ServiceMonitorView"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:local="clr-namespace:ivf_tl_Operate.View"
- xmlns:customControl="clr-namespace:ivf_tl_CustomControls;assembly=ivf_tl_CustomControls_Surface"
- mc:Ignorable="d"
- Height="2736" Width="1824">
- <!-- M5-03-3/4:只读「服务监控」页(需求 7/10)。
- 纯只读:除顶部「返回」外无任何按钮/输入/下发控件;所有数值由 ServiceMonitorViewModel 定时(2s)
- 从 ivf_tl_Control.AppData.Instance.GetMonitorSnapshot() 只读拉取。链路健康用颜色区分绿正常/红失联。
- 自适应套 MainWindow 的 Viewbox 等比缩放(M4-01),基准 1824×2736。 -->
- <Grid Background="White">
- <Grid.RowDefinitions>
- <RowDefinition Height="250"/>
- <RowDefinition Height="*"/>
- </Grid.RowDefinitions>
- <!-- 顶部横幅 + 返回(无任何控制按钮) -->
- <Grid Grid.Row="0" Background="{StaticResource BannerTopFill}">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="350"/>
- <ColumnDefinition/>
- <ColumnDefinition Width="350"/>
- </Grid.ColumnDefinitions>
- <customControl:ButtonLeftImage Grid.Column="0" Content="{DynamicResource C0044}" Click="Return_Click" Width="350" Height="250" IconWidth="46" IconHeight="46" FontSize="44" FontWeight="Medium" Foreground="#4D75AC" BorderThickness="0" Background="Transparent" IconSource="/ivf_tl_Operate;component/Resources/Image/button_return.png" IconMargin="0 0 10 0"/>
- <TextBlock Grid.Column="1" Text="服务监控" FontSize="60" VerticalAlignment="Center" HorizontalAlignment="Center"/>
- <StackPanel Grid.Column="2" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
- <TextBlock Text="刷新时间" FontSize="30" Foreground="#4D75AC" HorizontalAlignment="Center"/>
- <TextBlock Text="{Binding SnapshotTime}" FontSize="34" Foreground="#4D75AC" HorizontalAlignment="Center"/>
- </StackPanel>
- </Grid>
- <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
- <StackPanel Margin="60 20">
- <!-- 托管状态 -->
- <Border Margin="0 10" Padding="30 20" Background="#F5F6F8" CornerRadius="10">
- <StackPanel Orientation="Horizontal">
- <Ellipse Width="36" Height="36" Fill="{Binding ControlHostedBrush}" VerticalAlignment="Center"/>
- <TextBlock Text="后台服务:" FontSize="44" VerticalAlignment="Center" Margin="20 0 0 0"/>
- <TextBlock Text="{Binding ControlHostedText}" FontSize="44" FontWeight="Bold" Foreground="{Binding ControlHostedBrush}" VerticalAlignment="Center"/>
- </StackPanel>
- </Border>
- <!-- 链路健康 -->
- <TextBlock Text="链路健康" FontSize="48" FontWeight="Bold" Foreground="#4D75AC" Margin="0 30 0 10"/>
- <!-- MQTT -->
- <Border Margin="0 8" Padding="30 18" Background="#F5F6F8" CornerRadius="10">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="60"/>
- <ColumnDefinition Width="420"/>
- <ColumnDefinition Width="320"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <Ellipse Grid.Column="0" Width="36" Height="36" Fill="{Binding MqttBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="1" Text="MQTT(舱室态推送)" FontSize="42" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="2" Text="{Binding MqttText}" FontSize="42" FontWeight="Bold" Foreground="{Binding MqttBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="3" Text="{Binding MqttLastOk, StringFormat=最后成功 {0}}" FontSize="38" Foreground="#959596" VerticalAlignment="Center"/>
- </Grid>
- </Border>
- <!-- 服务器 HTTP -->
- <Border Margin="0 8" Padding="30 18" Background="#F5F6F8" CornerRadius="10">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="60"/>
- <ColumnDefinition Width="420"/>
- <ColumnDefinition Width="320"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <Ellipse Grid.Column="0" Width="36" Height="36" Fill="{Binding HttpBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="1" Text="服务器通信(HTTP 轮询)" FontSize="42" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="2" Text="{Binding HttpText}" FontSize="42" FontWeight="Bold" Foreground="{Binding HttpBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="3" Text="{Binding HttpLastOk, StringFormat=最后成功 {0}}" FontSize="38" Foreground="#959596" VerticalAlignment="Center"/>
- </Grid>
- </Border>
- <TextBlock Text="{Binding ServerUrl, StringFormat=接口地址:{0}}" FontSize="34" Foreground="#959596" Margin="90 0 0 0"/>
- <!-- Kafka / 图片上传 -->
- <Border Margin="0 8" Padding="30 18" Background="#F5F6F8" CornerRadius="10">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="60"/>
- <ColumnDefinition Width="420"/>
- <ColumnDefinition Width="320"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <Ellipse Grid.Column="0" Width="36" Height="36" Fill="{Binding KafkaBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="1" Text="Kafka(图片上传)" FontSize="42" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="2" Text="{Binding KafkaText}" FontSize="42" FontWeight="Bold" Foreground="{Binding KafkaBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="3" Text="{Binding KafkaLastOk, StringFormat=最后成功 {0}}" FontSize="38" Foreground="#959596" VerticalAlignment="Center"/>
- </Grid>
- </Border>
- <!-- 上传队列 -->
- <Border Margin="0 8" Padding="30 18" Background="#F5F6F8" CornerRadius="10">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="60"/>
- <ColumnDefinition Width="420"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <Ellipse Grid.Column="0" Width="36" Height="36" Fill="{Binding UploadQueueBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="1" Text="上传队列" FontSize="42" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="2" Text="{Binding UploadQueueText}" FontSize="42" FontWeight="Bold" Foreground="{Binding UploadQueueBrush}" VerticalAlignment="Center"/>
- </Grid>
- </Border>
- <!-- 磁盘 -->
- <Border Margin="0 8" Padding="30 18" Background="#F5F6F8" CornerRadius="10">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="60"/>
- <ColumnDefinition Width="420"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <Ellipse Grid.Column="0" Width="36" Height="36" Fill="{Binding DiskBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="1" Text="缓存磁盘" FontSize="42" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="2" Text="{Binding DiskText}" FontSize="42" FontWeight="Bold" Foreground="{Binding DiskBrush}" VerticalAlignment="Center"/>
- </Grid>
- </Border>
- <!-- 各舱室只读态 -->
- <TextBlock Text="舱室状态(温度 / 压力 / CCD / 通讯)" FontSize="48" FontWeight="Bold" Foreground="#4D75AC" Margin="0 30 0 10"/>
- <ItemsControl ItemsSource="{Binding Houses}">
- <ItemsControl.ItemTemplate>
- <DataTemplate>
- <Border Margin="0 6" Padding="20 14" Background="#F5F6F8" CornerRadius="8">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="180"/>
- <ColumnDefinition Width="260"/>
- <ColumnDefinition Width="240"/>
- <ColumnDefinition Width="240"/>
- <ColumnDefinition Width="240"/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <TextBlock Grid.Column="0" Text="{Binding HouseSn, StringFormat={}{0}号舱}" FontSize="38" FontWeight="Bold" VerticalAlignment="Center"/>
- <StackPanel Grid.Column="1" VerticalAlignment="Center">
- <TextBlock Text="{Binding Temperature, StringFormat=温度 {0}}" FontSize="34"/>
- <TextBlock Text="{Binding Pressure, StringFormat=压力 {0}}" FontSize="30" Foreground="#959596"/>
- </StackPanel>
- <TextBlock Grid.Column="2" Text="{Binding StateText, StringFormat=舱室 {0}}" FontSize="34" Foreground="{Binding StateBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="3" Text="{Binding ComText, StringFormat=通讯 {0}}" FontSize="34" Foreground="{Binding ComBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="4" Text="{Binding CcdText, StringFormat=CCD {0}}" FontSize="34" Foreground="{Binding CcdBrush}" VerticalAlignment="Center"/>
- <TextBlock Grid.Column="5" Text="{Binding RunState}" FontSize="30" Foreground="#959596" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"/>
- </Grid>
- </Border>
- </DataTemplate>
- </ItemsControl.ItemTemplate>
- </ItemsControl>
- <TextBlock Text="本页只读,仅展示后台服务运行状态,不提供任何控制/重启/写入操作。" FontSize="30" Foreground="#959596" Margin="0 30 0 40" TextWrapping="Wrap"/>
- </StackPanel>
- </ScrollViewer>
- </Grid>
- </UserControl>
|