From b544d5cccd76735e034c8055918a50927b437474 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期二, 10 十一月 2026 08:29:04 +0800
Subject: [PATCH] fix: 维护模式重复进入失败与按钮灰死 + Broker 并发验证用例

---
 Plugin.DeviceConfig/DeviceEditModal.xaml |   66 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/Plugin.DeviceConfig/DeviceEditModal.xaml b/Plugin.DeviceConfig/DeviceEditModal.xaml
index cb7c97d..52b9b19 100644
--- a/Plugin.DeviceConfig/DeviceEditModal.xaml
+++ b/Plugin.DeviceConfig/DeviceEditModal.xaml
@@ -27,6 +27,7 @@
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="Auto"/>
+            <RowDefinition Height="Auto"/>
         </Grid.RowDefinitions>
 
         <!-- 璁惧鍩烘湰淇℃伅 -->
@@ -65,8 +66,69 @@
             </Grid>
         </GroupBox>
 
+        <!-- 鎵ц浣嶇疆锛圴3.0 搂05锛� -->
+        <GroupBox Grid.Row="1" Header="鎵ц浣嶇疆" FontWeight="SemiBold" Margin="0,0,0,12">
+            <Grid Margin="8">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="100"/>
+                    <ColumnDefinition Width="*"/>
+                    <ColumnDefinition Width="100"/>
+                    <ColumnDefinition Width="*"/>
+                </Grid.ColumnDefinitions>
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="36"/>
+                    <RowDefinition Height="36"/>
+                    <RowDefinition Height="36"/>
+                </Grid.RowDefinitions>
+
+                <TextBlock Grid.Row="0" Grid.Column="0" Text="鎵ц妯″紡 *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+                <StackPanel Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" Orientation="Horizontal" VerticalAlignment="Center"
+                            dp:StackPanelHelper.ChildSpace="16" Margin="4,0">
+                    <RadioButton x:Name="rbLocal" Content="鏈湴浠櫒 (Local 鐩磋繛)" GroupName="ExecMode" IsChecked="True"
+                                 Checked="ExecMode_Changed" VerticalAlignment="Center"/>
+                    <RadioButton x:Name="rbBroker" Content="鍏变韩浠櫒 (Broker 浠g悊)" GroupName="ExecMode"
+                                 Checked="ExecMode_Changed" VerticalAlignment="Center"/>
+                </StackPanel>
+
+                <TextBlock Grid.Row="1" Grid.Column="0" Text="浠茶鍩� *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+                <ComboBox Grid.Row="1" Grid.Column="1" x:Name="cbAuthority" VerticalAlignment="Center" Margin="4,0"
+                         SelectionChanged="CbAuthority_SelectionChanged"/>
+
+                <TextBlock Grid.Row="1" Grid.Column="2" Text="璁块棶绛栫暐" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+                <TextBox Grid.Row="1" Grid.Column="3" x:Name="tbAccessPolicy" VerticalAlignment="Center" IsReadOnly="True"
+                         Style="{StaticResource EditorTextBoxStyle}" Margin="4,0"/>
+
+                <!-- Broker 妯″紡涓撳睘瀛楁锛氶粯璁ら殣钘� -->
+                <Grid Grid.Row="2" Grid.ColumnSpan="4" x:Name="spBroker" Visibility="Collapsed">
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="100"/>
+                        <ColumnDefinition Width="*"/>
+                        <ColumnDefinition Width="100"/>
+                        <ColumnDefinition Width="*"/>
+                    </Grid.ColumnDefinitions>
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="36"/>
+                        <RowDefinition Height="36"/>
+                    </Grid.RowDefinitions>
+
+                    <TextBlock Grid.Row="0" Grid.Column="0" Text="BrokerId *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+                    <ComboBox Grid.Row="0" Grid.Column="1" x:Name="cbBrokerId" 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="tbOwnerProcessId" VerticalAlignment="Center" IsReadOnly="True"
+                             Style="{StaticResource EditorTextBoxStyle}" Margin="4,0"
+                             pu:TextBoxHelper.Watermark="Broker 瀹夸富 PID锛圡VP 鍗犱綅褰撳墠杩涚▼锛�"/>
+
+                    <TextBlock Grid.Row="1" Grid.Column="0" Text="鐗╃悊浼氳瘽閿� *" VerticalAlignment="Center" Style="{StaticResource ListTableTextBlock}"/>
+                    <ComboBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" x:Name="cbSessionKey" VerticalAlignment="Center"
+                             IsEditable="True" Margin="4,0"
+                             pu:TextBoxHelper.Watermark="鐢辩鐐硅鑼冨寲鐨勫浐瀹氬瓧绗︿覆锛屽 can/CAN_BUS_1/main"/>
+                </Grid>
+            </Grid>
+        </GroupBox>
+
         <!-- 閫氶亾鍒楄〃 -->
-        <GroupBox Grid.Row="1" Header="閫氶亾鍒楄〃" FontWeight="SemiBold" Margin="0,0,0,12">
+        <GroupBox Grid.Row="2" Header="閫氶亾鍒楄〃" FontWeight="SemiBold" Margin="0,0,0,12">
             <Grid Margin="8">
                 <Grid.RowDefinitions>
                     <RowDefinition Height="Auto"/>
@@ -172,7 +234,7 @@
         </GroupBox>
 
         <!-- 搴曢儴鎸夐挳 -->
-        <StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right" dp:StackPanelHelper.ChildSpace="10" Margin="0,12,0,0">
+        <StackPanel Grid.Row="4" Orientation="Horizontal" HorizontalAlignment="Right" dp:StackPanelHelper.ChildSpace="10" Margin="0,12,0,0">
             <Button x:Name="saveBtn" Click="SaveBtn_Click" Content="淇濆瓨"
                     Style="{StaticResource AddBtn}" Width="90"/>
             <Button x:Name="cancelBtn" Click="CancelBtn_Click" Content="鍙栨秷"

--
Gitblit v1.9.1