WinEquipment.xaml 12 KB
<win:HideCloseWindow 
    x:Class="HHECS.WinClient.View.EquipmentInfo.WinEquipment"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:hc="https://handyorg.github.io/handycontrol"
    xmlns:win="clr-namespace:HHECS.WinCommon.Win;assembly=HHECS.WinCommon"
    xmlns:local="clr-namespace:HHECS.WinClient.View.EquipmentInfo"
    Title="设备管理" 
    Height="450" 
    Width="800" 
    d:DataContext="{d:DesignInstance Type=local:EquipmentVM}"
    mc:Ignorable="d">
    <Window.Resources>
        <Style x:Key="sp" TargetType="StackPanel" >
            <Setter Property="Orientation" Value="Horizontal"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="Margin" Value="5"/>
        </Style>
        <Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="MinWidth" Value="100"/>
            <Setter Property="MaxWidth" Value="200"/>
            <Setter Property="Width" Value="auto"/>
        </Style>
        <Style x:Key="btn" TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
            <Setter Property="Margin" Value="2"/>
        </Style>
        <Style TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
            <Setter Property="MinWidth" Value="100"/>
            <Setter Property="MaxWidth" Value="240"/>
        </Style>
    </Window.Resources>
    <Grid>
        <TabControl>
            <TabItem x:Name="TIMain" Header="设备" IsSelected="{Binding IsTabMainSelected,Mode=TwoWay}">
                <Grid x:Name="GridMain">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <Border  Grid.Row="0" CornerRadius="6">
                        <WrapPanel>
                            <StackPanel Style="{StaticResource sp}">
                                <TextBlock Text="设备编码:"/>
                                <TextBox Text="{Binding Code}"/>
                            </StackPanel>
                            <StackPanel Style="{StaticResource sp}">
                                <TextBlock Text="设备名:"/>
                                <TextBox Text="{Binding Name}"/>
                            </StackPanel>
                            <StackPanel Style="{StaticResource sp}">
                                <TextBlock Text="设备类型:"/>
                                <ComboBox SelectedValue="{Binding TypeId}" 
                                          ItemsSource="{Binding EquipmentTypes}" 
                                          DisplayMemberPath="Key" 
                                          SelectedValuePath="Value" 
                                          SelectedIndex="0"/>
                            </StackPanel>
                            <StackPanel Style="{StaticResource sp}">
                                <TextBlock Text="IP:"/>
                                <TextBox Text="{Binding IP}"/>
                            </StackPanel>
                            <StackPanel Style="{StaticResource sp}">
                                <TextBlock Text="区域:"/>
                                <TextBox Text="{Binding DestinationArea}"/>
                            </StackPanel>
                        </WrapPanel>
                    </Border>

                    <WrapPanel x:Name="WPMain" Grid.Row="1" HorizontalAlignment="Right">
                        <Button x:Name="BtnQuery" Content="查询" Style="{StaticResource btn}" Click="BtnQuery_Click" Tag="equipment:query"/>
                        <Button x:Name="BtnViewDetails" Content="查看详细" Style="{StaticResource btn}" Click="BtnViewDetails_Click" Tag="equipment:viewdetails"/>
                        <Button x:Name="BtnAdd" Content="新增设备" Style="{StaticResource btn}" Click="BtnAdd_Click" Tag="equipment:add"/>
                        <Button x:Name="BtnCopy" Content="复制设备" Style="{StaticResource btn}" Click="BtnCopy_Click" Tag="equipment:copy"/>
                        <Button x:Name="BtnEdit" Content="编辑设备" Style="{StaticResource btn}" Click="BtnEdit_Click" Tag="equipment:edit"/>
                        <Button x:Name="BtnDelete" Content="删除设备" Style="{StaticResource btn}" Click="BtnDelete_Click" Tag="equipment:delete"/>
                        <Button x:Name="BtnExport" Content="导出" Style="{StaticResource btn}" Click="BtnExport_Click" Tag="equipment:export"/>
                    </WrapPanel>
                    <DockPanel Grid.Row="2">
                        <hc:Pagination 
                            x:Name="Page" 
                            DockPanel.Dock="Bottom" 
                            MaxPageCount="{Binding PageInfo.MaxPage}" 
                            PageIndex="{Binding PageInfo.PageIndex,Mode=TwoWay}" 
                            HorizontalAlignment="Center" 
                            IsJumpEnabled="True" 
                            PageUpdated="Page_PageUpdated">
                        </hc:Pagination>
                        <DataGrid x:Name="DGMain" ItemsSource="{Binding Equipments}">
                            <DataGrid.RowStyle>
                                <Style TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource BaseDataGridRowStyle}">
                                    <EventSetter Event="MouseDoubleClick" Handler="DataGridRow_MouseDoubleClick"/>
                                </Style>
                            </DataGrid.RowStyle>
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Id" Binding="{Binding Id}"/>
                                <DataGridTextColumn Header="设备编码" Binding="{Binding Code}"/>
                                <DataGridTextColumn Header="设备名" Binding="{Binding Name}"/>
                                <DataGridTextColumn Header="设备类型编码" Binding="{Binding EquipmentType.Code}"/>
                                <DataGridTextColumn Header="设备类型名" Binding="{Binding EquipmentType.Name}"/>
                                <DataGridTextColumn Header="IP" Binding="{Binding IP}"/>
                                <DataGridTextColumn Header="区域" Binding="{Binding DestinationArea}"/>
                                <DataGridTextColumn Header="描述" Binding="{Binding Description}"/>
                                <DataGridTextColumn Header="连接名" Binding="{Binding ConnectName}"/>
                                <DataGridTextColumn Header="维护规则名称" Binding="{Binding EquipmentMaintainRule.Name}"/>
                                <DataGridCheckBoxColumn Header="禁用" Binding="{Binding Disable}"/>
                                <DataGridTextColumn Header="创建时间" Binding="{Binding Created}"/>
                                <DataGridTextColumn Header="创建人" Binding="{Binding CreatedBy}"/>
                                <DataGridTextColumn Header="更新时间" Binding="{Binding Updated}"/>
                                <DataGridTextColumn Header="更新人" Binding="{Binding UpdatedBy}"/>
                            </DataGrid.Columns>
                        </DataGrid>
                    </DockPanel>
                </Grid>
            </TabItem>
            <TabItem x:Name="TIDetail" Header="设备属性" IsSelected="{Binding IsTabDetailSelected,Mode=TwoWay}">
                <Grid x:Name="GridDetail">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>

                    <WrapPanel Grid.Row="0">
                        <StackPanel Style="{StaticResource sp}">
                            <TextBlock Text="设备编码:"/>
                            <TextBox Text="{Binding CurrentEquipment.Code}" IsReadOnly="true" Background="LightGray"/>
                        </StackPanel>
                        <StackPanel Style="{StaticResource sp}">
                            <TextBlock Text="设备名:"/>
                            <TextBox Text="{Binding CurrentEquipment.Name}" IsReadOnly="true" Background="LightGray"/>
                        </StackPanel>
                        <StackPanel Style="{StaticResource sp}">
                            <TextBlock Text="属性编码:"/>
                            <TextBox Text="{Binding PropCode}"/>
                        </StackPanel>
                        <StackPanel Style="{StaticResource sp}">
                            <TextBlock Text="地址:"/>
                            <TextBox Text="{Binding Adress}"/>
                        </StackPanel>
                    </WrapPanel>

                    <WrapPanel x:Name="WPDetail" HorizontalAlignment="Right" Grid.Row="1">
                        <Button x:Name="BtnQueryDetail" Content="刷新" Style="{StaticResource btn}" Click="BtnQueryDetail_Click" Tag="equipment:detailquery"/>
                        <Button x:Name="BtnSaveDetail" Content="保存" Style="{StaticResource btn}" Click="BtnSaveDetail_Click" Tag="equipment:detailsave"/>
                        <Button x:Name="BtnSyncDetail" Content="同步" Style="{StaticResource btn}" Click="BtnSyncDetail_Click" Tag="equipment:detailsync"/>
                        <Button x:Name="BtnDeleteDetail" Content="删除" Style="{StaticResource btn}" Click="BtnDeleteDetail_Click" Tag="equipment:detaildelete"/>
                        <Button x:Name="BtnExportDetail" Content="导出" Style="{StaticResource btn}" Click="BtnExportDetail_Click" Tag="equipment:detailexport"/>
                    </WrapPanel>

                    <DataGrid x:Name="DGDetail" ItemsSource="{Binding EquipmentProps}" IsReadOnly="False" Grid.Row="2">
                        <DataGrid.CellStyle>
                            <Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource BaseDataGridCellStyle}">
                                <Style.Triggers>
                                    <Trigger Property="IsReadOnly"  Value="False">
                                        <Setter Property="Background" Value="GreenYellow">
                                        </Setter>
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </DataGrid.CellStyle>
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Id" Binding="{Binding Id}" IsReadOnly="True"/>
                            <DataGridTextColumn Header="属性编码" Binding="{Binding EquipmentTypePropTemplateCode}" IsReadOnly="True"/>
                            <DataGridTextColumn Header="地址" Binding="{Binding Address}" IsReadOnly="False"/>
                            <DataGridTextColumn Header="值" Binding="{Binding Value}" IsReadOnly="False"/>
                            <DataGridTextColumn Header="备注" Binding="{Binding Remark}" IsReadOnly="False"/>
                            <DataGridTextColumn Header="创建时间" Binding="{Binding Created}" IsReadOnly="True"/>
                            <DataGridTextColumn Header="创建人" Binding="{Binding CreatedBy}" IsReadOnly="True"/>
                            <DataGridTextColumn Header="更新时间" Binding="{Binding Updated}" IsReadOnly="True"/>
                            <DataGridTextColumn Header="更新人" Binding="{Binding UpdatedBy}" IsReadOnly="True"/>
                        </DataGrid.Columns>
                    </DataGrid>

                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</win:HideCloseWindow>