From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Plugin.DeviceConfig/VersionManageModal.xaml |  166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 166 insertions(+), 0 deletions(-)

diff --git a/Plugin.DeviceConfig/VersionManageModal.xaml b/Plugin.DeviceConfig/VersionManageModal.xaml
new file mode 100644
index 0000000..5db25e1
--- /dev/null
+++ b/Plugin.DeviceConfig/VersionManageModal.xaml
@@ -0,0 +1,166 @@
+<pu:WindowX x:Class="Plugin.DeviceConfig.VersionManageModal"
+            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:pw="https://opensource.panuon.com/wpf"
+            xmlns:pu="https://opensource.panuon.com/wpf-ui"
+            xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
+            xmlns:local="clr-namespace:Plugin.DeviceConfig"
+            mc:Ignorable="d"
+            Title="鐗堟湰绠$悊"
+            Height="520"
+            Width="800"
+            WindowStartupLocation="CenterOwner"
+            Style="{StaticResource ModalWindow}">
+    <pu:WindowX.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="/HMI.UI;component/Style/PanuonListView.xaml"/>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </pu:WindowX.Resources>
+
+    <Grid Margin="16">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="Auto"/>
+            <RowDefinition Height="*"/>
+            <RowDefinition Height="Auto"/>
+            <RowDefinition Height="Auto"/>
+        </Grid.RowDefinitions>
+
+        <!-- 鎿嶄綔鎸夐挳鏍� -->
+        <StackPanel Grid.Row="0" Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10" Margin="0,0,0,8">
+            <Button x:Name="publishBtn" Click="PublishBtn_Click" Content="鍙戝竷閫変腑鐗堟湰"
+                    Style="{StaticResource AddBtn}" Width="110"/>
+            <Button x:Name="applyBtn" Click="ApplyBtn_Click" Content="搴旂敤閫変腑鐗堟湰"
+                    Style="{StaticResource AddBtn}" Width="110"/>
+            <Button x:Name="detailBtn" Click="DetailBtn_Click" Content="鐗堟湰璇︽儏"
+                    Style="{StaticResource RfhBtn}" Width="90"/>
+            <Button x:Name="rfhBtn" Click="RfhBtn_Click" Content="鍒锋柊"
+                    Style="{StaticResource RfhBtn}" Width="70"/>
+        </StackPanel>
+
+        <!-- 鐗堟湰鍒楄〃 -->
+        <ListView Grid.Row="1" Style="{StaticResource DefaultListTable}" x:Name="versionListView"
+                  VirtualizingPanel.IsVirtualizing="True"
+                  VirtualizingPanel.VirtualizationMode="Standard">
+            <ListView.View>
+                <GridView AllowsColumnReorder="False">
+                    <GridViewColumn Width="50" Header="#">
+                        <GridViewColumn.CellTemplate>
+                            <DataTemplate>
+                                <Border Style="{StaticResource CellBorder}">
+                                    <TextBlock Style="{StaticResource ListTableTextBlock}"
+                                        Text="{Binding Converter={StaticResource lvRowNumber},
+                                        RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
+                                </Border>
+                            </DataTemplate>
+                        </GridViewColumn.CellTemplate>
+                    </GridViewColumn>
+                    <GridViewColumn Width="180" Header="VersionId">
+                        <GridViewColumn.CellTemplate>
+                            <DataTemplate>
+                                <Border Style="{StaticResource CellBorder}">
+                                    <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding VersionId}"/>
+                                </Border>
+                            </DataTemplate>
+                        </GridViewColumn.CellTemplate>
+                    </GridViewColumn>
+                    <GridViewColumn Width="100" Header="Status">
+                        <GridViewColumn.CellTemplate>
+                            <DataTemplate>
+                                <Border Style="{StaticResource CellBorder}">
+                                    <StackPanel Orientation="Horizontal">
+                                        <Border Width="10" Height="10" CornerRadius="5" Margin="0,0,6,0"
+                                                VerticalAlignment="Center">
+                                            <Border.Style>
+                                                <Style TargetType="Border">
+                                                    <Setter Property="Background" Value="Gray"/>
+                                                    <Style.Triggers>
+                                                        <DataTrigger Binding="{Binding Status}" Value="Draft">
+                                                            <Setter Property="Background" Value="Gray"/>
+                                                        </DataTrigger>
+                                                        <DataTrigger Binding="{Binding Status}" Value="Published">
+                                                            <Setter Property="Background" Value="#2196F3"/>
+                                                        </DataTrigger>
+                                                        <DataTrigger Binding="{Binding Status}" Value="Effective">
+                                                            <Setter Property="Background" Value="#4CAF50"/>
+                                                        </DataTrigger>
+                                                    </Style.Triggers>
+                                                </Style>
+                                            </Border.Style>
+                                        </Border>
+                                        <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding Status}" VerticalAlignment="Center"/>
+                                    </StackPanel>
+                                </Border>
+                            </DataTemplate>
+                        </GridViewColumn.CellTemplate>
+                    </GridViewColumn>
+                    <GridViewColumn Width="200" Header="Hash">
+                        <GridViewColumn.CellTemplate>
+                            <DataTemplate>
+                                <Border Style="{StaticResource CellBorder}">
+                                    <TextBlock Style="{StaticResource ListTableTextBlock}" 
+                                               Text="{Binding HashShort}" 
+                                               ToolTip="{Binding Hash}"/>
+                                </Border>
+                            </DataTemplate>
+                        </GridViewColumn.CellTemplate>
+                    </GridViewColumn>
+                    <GridViewColumn Width="100" Header="Author">
+                        <GridViewColumn.CellTemplate>
+                            <DataTemplate>
+                                <Border Style="{StaticResource CellBorder}">
+                                    <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding Author}"/>
+                                </Border>
+                            </DataTemplate>
+                        </GridViewColumn.CellTemplate>
+                    </GridViewColumn>
+                    <GridViewColumn Width="160" Header="Timestamp">
+                        <GridViewColumn.CellTemplate>
+                            <DataTemplate>
+                                <Border Style="{StaticResource CellBorder}">
+                                    <TextBlock Style="{StaticResource ListTableTextBlock}" 
+                                               Text="{Binding Timestamp, StringFormat=yyyy-MM-dd HH:mm:ss}"/>
+                                </Border>
+                            </DataTemplate>
+                        </GridViewColumn.CellTemplate>
+                    </GridViewColumn>
+                </GridView>
+            </ListView.View>
+        </ListView>
+
+        <!-- 鐗堟湰璇︽儏鍖� -->
+        <Border Grid.Row="2" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" CornerRadius="4"
+                Margin="0,8,0,0" Padding="10" x:Name="detailPanel" Visibility="Collapsed">
+            <Grid>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="80"/>
+                    <ColumnDefinition Width="*"/>
+                </Grid.ColumnDefinitions>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="Auto"/>
+                    <RowDefinition Height="Auto"/>
+                    <RowDefinition Height="Auto"/>
+                </Grid.RowDefinitions>
+
+                <TextBlock Grid.Row="0" Grid.Column="0" Text="瀹屾暣Hash:" FontWeight="SemiBold" VerticalAlignment="Center"/>
+                <TextBlock Grid.Row="0" Grid.Column="1" x:Name="tbDetailHash" TextWrapping="Wrap" 
+                           FontFamily="Consolas" Margin="4,2"/>
+
+                <TextBlock Grid.Row="1" Grid.Column="0" Text="宸紓鎻忚堪:" FontWeight="SemiBold" VerticalAlignment="Center"/>
+                <TextBlock Grid.Row="1" Grid.Column="1" x:Name="tbDetailDiff" TextWrapping="Wrap" Margin="4,2"/>
+
+                <TextBlock Grid.Row="2" Grid.Column="0" Text="浣滆��:" FontWeight="SemiBold" VerticalAlignment="Center"/>
+                <TextBlock Grid.Row="2" Grid.Column="1" x:Name="tbDetailAuthor" Margin="4,2"/>
+            </Grid>
+        </Border>
+
+        <!-- 搴曢儴鎸夐挳 -->
+        <StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,12,0,0">
+            <Button x:Name="closeBtn" Click="CloseBtn_Click" Content="鍏抽棴"
+                    Style="{StaticResource RfhBtn}" Width="90"/>
+        </StackPanel>
+    </Grid>
+</pu:WindowX>

--
Gitblit v1.9.1