修正命名错误
xiyunfei authored at 2023-04-09 21:10:58
6.45 KiB
NewLife.JT808
<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="Client.Avalonia.Views.ServerView">
  <Grid RowDefinitions="Auto,*" Margin="12">
    <StackPanel Grid.Row="0" Spacing="12">
      <!-- API 配置 -->
      <Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
              BorderThickness="1" CornerRadius="6" Padding="14">
        <StackPanel Spacing="10">
          <Grid ColumnDefinitions="6,*">
            <Border Grid.Column="0" Background="{DynamicResource SystemAccentColor}" CornerRadius="3" />
            <Label Grid.Column="1" FontWeight="Bold" FontSize="14" Margin="8,0,0,0"
                   VerticalAlignment="Center">Web API 配置</Label>
          </Grid>

          <StackPanel Spacing="8">
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">API 地址:</Label>
              <TextBox Grid.Column="1" Text="{Binding ApiAddress}" Watermark="http://127.0.0.1:5000" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">Token:</Label>
              <TextBox Grid.Column="1" Text="{Binding ApiToken}" Watermark="可选" />
            </Grid>
          </StackPanel>

          <StackPanel Orientation="Horizontal" Spacing="8">
            <Button Content="刷新统计" Command="{Binding RefreshStatsCommand}" Padding="14,6" />
            <Button Content="刷新会话" Command="{Binding RefreshSessionsCommand}" Padding="14,6" />
            <Button Content="刷新黑名单" Command="{Binding RefreshBlacklistCommand}" Padding="14,6" />
            <Label Content="{Binding ApiStatus}" VerticalAlignment="Center" FontSize="12" Foreground="Gray" />
          </StackPanel>
        </StackPanel>
      </Border>

      <!-- 服务器统计 -->
      <Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
              BorderThickness="1" CornerRadius="6" Padding="14">
        <StackPanel Spacing="10">
          <Grid ColumnDefinitions="6,*">
            <Border Grid.Column="0" Background="{DynamicResource SystemAccentColor}" CornerRadius="3" />
            <Label Grid.Column="1" FontWeight="Bold" FontSize="14" Margin="8,0,0,0"
                   VerticalAlignment="Center">服务器统计</Label>
          </Grid>

          <StackPanel Orientation="Horizontal" Spacing="24" HorizontalAlignment="Center">
            <Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
                    BorderThickness="1" CornerRadius="6" Padding="16,10" MinWidth="120">
              <StackPanel Spacing="4" HorizontalAlignment="Center">
                <Label FontSize="12" Foreground="Gray" HorizontalAlignment="Center">服务</Label>
                <Label FontSize="14" FontWeight="Bold" HorizontalAlignment="Center"
                       Content="{Binding StatsServer}" />
              </StackPanel>
            </Border>
            <Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
                    BorderThickness="1" CornerRadius="6" Padding="16,10" MinWidth="120">
              <StackPanel Spacing="4" HorizontalAlignment="Center">
                <Label FontSize="12" Foreground="Gray" HorizontalAlignment="Center">运行状态</Label>
                <Label FontSize="14" FontWeight="Bold" HorizontalAlignment="Center"
                       Content="{Binding StatsRunning}" />
              </StackPanel>
            </Border>
            <Border BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
                    BorderThickness="1" CornerRadius="6" Padding="16,10" MinWidth="120">
              <StackPanel Spacing="4" HorizontalAlignment="Center">
                <Label FontSize="12" Foreground="Gray" HorizontalAlignment="Center">启动时间</Label>
                <Label FontSize="14" FontWeight="Bold" HorizontalAlignment="Center"
                       Content="{Binding StatsStarted}" />
              </StackPanel>
            </Border>
          </StackPanel>
        </StackPanel>
      </Border>
    </StackPanel>

    <!-- 会话与黑名单 TabControl -->
    <TabControl Grid.Row="1">
      <TabControl.Styles>
        <Style Selector="TabItem">
          <Setter Property="FontSize" Value="13" />
          <Setter Property="Padding" Value="14,8" />
        </Style>
      </TabControl.Styles>
      <TabItem Header="👥 在线会话">
        <Grid RowDefinitions="Auto,*" Margin="6">
          <StackPanel Grid.Row="0" Orientation="Horizontal" Spacing="4" Margin="0,0,0,6">
            <Label FontWeight="Bold">在线会话 (共 </Label>
            <Label FontWeight="Bold" Content="{Binding SessionTotal}" />
            <Label FontWeight="Bold"> 个)</Label>
          </StackPanel>
          <ListBox Grid.Row="1" ItemsSource="{Binding Sessions}"
                   BorderThickness="1"
                   BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}">
            <ListBox.ItemTemplate>
              <DataTemplate>
                <Grid ColumnDefinitions="Auto,*,Auto" Margin="6,4">
                  <Label Grid.Column="0" Content="{Binding Mobile}" FontWeight="Bold" FontSize="13" />
                  <Label Grid.Column="1" Content="{Binding Remote}" FontSize="12" Foreground="#666" Margin="8,0,0,0" />
                </Grid>
              </DataTemplate>
            </ListBox.ItemTemplate>
          </ListBox>
        </Grid>
      </TabItem>
      <TabItem Header="🚫 黑名单">
        <Grid RowDefinitions="Auto,*,Auto" Margin="6">
          <Label Grid.Row="0" FontWeight="Bold">黑名单管理</Label>
          <ListBox Grid.Row="1" ItemsSource="{Binding Blacklist}"
                   BorderThickness="1"
                   BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}">
            <ListBox.ItemTemplate>
              <DataTemplate>
                <Label Content="{Binding}" Padding="6,4" />
              </DataTemplate>
            </ListBox.ItemTemplate>
          </ListBox>
          <Grid Grid.Row="2" ColumnDefinitions="*,Auto">
            <TextBox Grid.Column="0" Text="{Binding NewBlacklistMobile}" Watermark="手机号" />
            <Button Grid.Column="1" Content="添加黑名单" Command="{Binding AddBlacklistCommand}" Padding="14,6" />
          </Grid>
        </Grid>
      </TabItem>
    </TabControl>
  </Grid>
</UserControl>