修正命名错误
xiyunfei authored at 2023-04-09 21:10:58
7.72 KiB
NewLife.JT808
<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="Client.Avalonia.Views.DeviceView">
  <ScrollViewer>
    <StackPanel Margin="12" Spacing="12">
      <!-- 注册与鉴权 -->
      <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 Spacing="8">
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">省域ID:</Label>
              <TextBox Grid.Column="1" Text="{Binding Province}" Watermark="44" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">市县域ID:</Label>
              <TextBox Grid.Column="1" Text="{Binding City}" Watermark="4403" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">制造商:</Label>
              <TextBox Grid.Column="1" Text="{Binding Manufacturer}" Watermark="NewLife" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">终端型号:</Label>
              <TextBox Grid.Column="1" Text="{Binding DeviceModel}" Watermark="JT808-Test" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">终端ID:</Label>
              <TextBox Grid.Column="1" Text="{Binding DeviceId}" Watermark="TEST001" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">车牌号:</Label>
              <TextBox Grid.Column="1" Text="{Binding PlateNo}" Watermark="粤B12345" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">鉴权码:</Label>
              <TextBox Grid.Column="1" Text="{Binding AuthCode}" Watermark="从注册应答获取" />
            </Grid>
          </StackPanel>

          <StackPanel Orientation="Horizontal" Spacing="10">
            <Button Content="发送注册" Command="{Binding SendRegisterCommand}"
                    Background="{DynamicResource SystemAccentColor}" Foreground="White" Padding="16,6" />
            <Button Content="发送鉴权" Command="{Binding SendAuthCommand}" Padding="16,6" />
            <Label Content="{Binding RegisterStatus}" 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 Spacing="8">
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">纬度(百万分之一度):</Label>
              <TextBox Grid.Column="1" Text="{Binding Latitude}" Watermark="22650000" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">经度(百万分之一度):</Label>
              <TextBox Grid.Column="1" Text="{Binding Longitude}" Watermark="114030000" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">海拔(米):</Label>
              <TextBox Grid.Column="1" Text="{Binding Altitude}" Watermark="50" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">速度(1/10 km/h):</Label>
              <TextBox Grid.Column="1" Text="{Binding Speed}" Watermark="0" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">方向(度):</Label>
              <TextBox Grid.Column="1" Text="{Binding Direction}" Watermark="180" />
            </Grid>
          </StackPanel>

          <StackPanel Orientation="Horizontal" Spacing="10">
            <Button Content="发送位置" Command="{Binding SendLocationCommand}"
                    Background="{DynamicResource SystemAccentColor}" Foreground="White" Padding="16,6" />
            <Button Content="发送心跳" Command="{Binding SendHeartbeatCommand}" Padding="16,6" />
            <CheckBox IsChecked="{Binding TimerEnabled}" Content="定时上报" VerticalAlignment="Center" />
            <TextBox Text="{Binding TimerInterval}" Width="60" Watermark="30" />
            <Label VerticalAlignment="Center" FontSize="12" Foreground="Gray">秒</Label>
          </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 Spacing="8">
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,8,0">消息类型:</Label>
              <ComboBox Grid.Column="1"
                        ItemsSource="{Binding MessageKindNames}"
                        SelectedItem="{Binding SelectedMessageKind}" />
            </Grid>
            <Grid ColumnDefinitions="110,*">
              <Label Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4,8,0">消息体JSON:</Label>
              <TextBox Grid.Column="1"
                       Text="{Binding MessageBodyJson}"
                       MinHeight="80"
                       AcceptsReturn="True"
                       Watermark='{}' />
            </Grid>
          </StackPanel>

          <StackPanel Orientation="Horizontal" Spacing="10">
            <Button Content="发送消息" Command="{Binding SendMessageCommand}"
                    Background="{DynamicResource SystemAccentColor}" Foreground="White" Padding="16,6" />
            <CheckBox IsChecked="{Binding WaitResponse}" Content="等待响应" VerticalAlignment="Center" />
          </StackPanel>
        </StackPanel>
      </Border>
    </StackPanel>
  </ScrollViewer>
</UserControl>