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/BatchGenerateModal.xaml | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 175 insertions(+), 0 deletions(-)
diff --git a/Plugin.DeviceConfig/BatchGenerateModal.xaml b/Plugin.DeviceConfig/BatchGenerateModal.xaml
new file mode 100644
index 0000000..dd7dd35
--- /dev/null
+++ b/Plugin.DeviceConfig/BatchGenerateModal.xaml
@@ -0,0 +1,175 @@
+<pu:WindowX x:Class="Plugin.DeviceConfig.BatchGenerateModal"
+ 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="鎵归噺鐢熸垚璁惧"
+ SizeToContent="Height"
+ Width="780"
+ 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="Auto"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+
+ <!-- 鍙傛暟杈撳叆鍖� -->
+ <GroupBox Grid.Row="0" Header="鐢熸垚鍙傛暟" FontWeight="SemiBold" Margin="0,0,0,12">
+ <Grid Margin="8">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="120"/>
+ <ColumnDefinition Width="*"/>
+ <ColumnDefinition Width="120"/>
+ <ColumnDefinition Width="*"/>
+ </Grid.ColumnDefinitions>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="36"/>
+ <RowDefinition Height="36"/>
+ <RowDefinition Height="36"/>
+ <RowDefinition Height="36"/>
+ <RowDefinition Height="36"/>
+ </Grid.RowDefinitions>
+
+ <TextBlock Grid.Row="0" Grid.Column="0" Text="璁惧绫诲瀷 *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <ComboBox Grid.Row="0" Grid.Column="1" x:Name="cbDeviceType" VerticalAlignment="Center" Margin="4,0"/>
+
+ <TextBlock Grid.Row="0" Grid.Column="2" Text="椹卞姩绫诲瀷" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <TextBox Grid.Row="0" Grid.Column="3" x:Name="tbDriverType" VerticalAlignment="Center"
+ Style="{StaticResource EditorTextBoxStyle}" Margin="4,0"/>
+
+ <TextBlock Grid.Row="1" Grid.Column="0" Text="浼犺緭鏂瑰紡 *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <ComboBox Grid.Row="1" Grid.Column="1" x:Name="cbTransport" VerticalAlignment="Center" Margin="4,0"/>
+
+ <TextBlock Grid.Row="1" Grid.Column="2" Text="璁惧鏁伴噺 *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <pu:NumberInput Grid.Row="1" Grid.Column="3" x:Name="niDeviceCount" VerticalAlignment="Center"
+ Style="{StaticResource FormNumberInput}" Margin="4,0" Minimum="1" Maximum="100" Value="1"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="0" Text="姣忚澶囬�氶亾鏁�" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <pu:NumberInput Grid.Row="2" Grid.Column="1" x:Name="niChannelsPerDevice" VerticalAlignment="Center"
+ Style="{StaticResource FormNumberInput}" Margin="4,0" Minimum="0" Maximum="64" Value="1"/>
+
+ <TextBlock Grid.Row="2" Grid.Column="2" Text="璧峰绔彛鍙�" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <pu:NumberInput Grid.Row="2" Grid.Column="3" x:Name="niStartPort" VerticalAlignment="Center"
+ Style="{StaticResource FormNumberInput}" Margin="4,0" Minimum="1" Maximum="65535" Value="30000"/>
+
+ <TextBlock Grid.Row="3" Grid.Column="0" Text="鍦板潃鐢熸垚瑙勫垯" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" x:Name="tbAddressRule" VerticalAlignment="Center"
+ Style="{StaticResource EditorTextBoxStyle}" Margin="4,0"
+ pu:TextBoxHelper.Watermark="渚�: 192.168.10.{0}锛寋0}涓哄簭鍙峰崰浣嶇"/>
+
+ <TextBlock Grid.Row="4" Grid.Column="0" Text="Slot鏄犲皠璧风偣" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <TextBox Grid.Row="4" Grid.Column="1" x:Name="tbSlotStart" VerticalAlignment="Center"
+ Style="{StaticResource EditorTextBoxStyle}" Margin="4,0"
+ pu:TextBoxHelper.Watermark="渚�: Slot001"/>
+
+ <TextBlock Grid.Row="4" Grid.Column="2" Text="璁惧ID鍓嶇紑" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+ <TextBox Grid.Row="4" Grid.Column="3" x:Name="tbDeviceIdPrefix" VerticalAlignment="Center"
+ Style="{StaticResource EditorTextBoxStyle}" Margin="4,0"
+ pu:TextBoxHelper.Watermark="渚�: PSU"/>
+ </Grid>
+ </GroupBox>
+
+ <!-- 棰勮鍖� -->
+ <GroupBox Grid.Row="1" Header="鐢熸垚棰勮" FontWeight="SemiBold" Margin="0,0,0,12">
+ <Grid Margin="8">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="200"/>
+ </Grid.RowDefinitions>
+
+ <TextBlock Grid.Row="0" x:Name="tbConflictMsg" Foreground="Red" Margin="0,0,0,4"
+ TextWrapping="Wrap" Visibility="Collapsed"/>
+
+ <ListView Grid.Row="1" Style="{StaticResource DefaultListTable}" x:Name="previewListView"
+ 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="140" Header="DeviceId">
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding DeviceId}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="100" Header="Kind">
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding Kind}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="180" Header="Endpoint">
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding Endpoint}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="80" Header="閫氶亾鏁�">
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding ChannelCount}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="100" Header="Slot璧风偣">
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}" Text="{Binding SlotStart}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ </GridView>
+ </ListView.View>
+ </ListView>
+ </Grid>
+ </GroupBox>
+
+ <!-- 搴曢儴鎸夐挳 -->
+ <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" dp:StackPanelHelper.ChildSpace="10" Margin="0,12,0,0">
+ <Button x:Name="previewBtn" Click="PreviewBtn_Click" Content="鐢熸垚棰勮"
+ Style="{StaticResource RfhBtn}" Width="90"/>
+ <Button x:Name="saveBtn" Click="SaveBtn_Click" Content="纭淇濆瓨"
+ Style="{StaticResource AddBtn}" Width="90"/>
+ <Button x:Name="cancelBtn" Click="CancelBtn_Click" Content="鍙栨秷"
+ Style="{StaticResource RfhBtn}" Width="90"/>
+ </StackPanel>
+ </Grid>
+</pu:WindowX>
--
Gitblit v1.9.1