<Page x:Class="XFEToolBox.Client.Views.Pages.Admin.UserManagementPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:XFEToolBox.WpfCore.Controls;assembly=XFEToolBox.WpfCore"
Background="Transparent" Title="" Loaded="Page_Loaded">
<Grid Margin="14,9,14,12">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Border Style="{StaticResource AdminPageHeaderIcon}">
<Grid Width="23" Height="23">
<Ellipse Width="8" Height="8" Margin="0,0,9,9" HorizontalAlignment="Center" VerticalAlignment="Center"
Stroke="White" StrokeThickness="1.7"/>
<Path Width="13" Height="7" Margin="0,10,9,0" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 1,6 C 1,3 3.2,1 6.5,1 C 9.8,1 12,3 12,6" Stretch="Fill"
Stroke="White" StrokeThickness="1.7" StrokeStartLineCap="Round" StrokeEndLineCap="Round"/>
<Ellipse Width="6" Height="6" Margin="12,1,0,8" HorizontalAlignment="Center" VerticalAlignment="Center"
Stroke="#DFFFFFFF" StrokeThickness="1.5"/>
<Path Width="9" Height="5" Margin="13,10,0,0" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 1,4 C 1,2 2.5,1 4.5,1 C 6.5,1 8,2 8,4" Stretch="Fill"
Stroke="#DFFFFFFF" StrokeThickness="1.5" StrokeStartLineCap="Round" StrokeEndLineCap="Round"/>
</Grid>
</Border>
<StackPanel Grid.Column="1" Margin="11,0,0,0" VerticalAlignment="Center">
<TextBlock Text="用户与权限" Style="{StaticResource AdminPageTitle}"/>
<TextBlock Text="管理服务器账号、角色与访问状态" Style="{StaticResource AdminPageSubtitle}"/>
</StackPanel>
<Button Grid.Column="2" Content="刷新列表"
VerticalAlignment="Center" Click="RefreshButton_Click"/>
</Grid>
<Border Grid.Row="1" MinHeight="155" Style="{StaticResource AdminCard}" Margin="0,10,0,10" Padding="17,14,17,12">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Margin="2,0,2,11">
<StackPanel>
<TextBlock Text="用户列表" Style="{StaticResource AdminSectionTitle}"/>
<TextBlock Text="选择用户后,可在下方修改密码、角色或启用状态" Style="{StaticResource AdminSectionSubtitle}"/>
</StackPanel>
<Border HorizontalAlignment="Right" VerticalAlignment="Center" Padding="10,5"
Background="#EEEEF8" CornerRadius="10">
<StackPanel Orientation="Horizontal">
<Ellipse Width="6" Height="6" Fill="#72CE9A" Margin="0,0,6,0" VerticalAlignment="Center"/>
<TextBlock x:Name="StatusText" MaxWidth="180" Foreground="#508264" FontSize="9.5"
VerticalAlignment="Center" TextTrimming="CharacterEllipsis"/>
</StackPanel>
</Border>
</Grid>
<Grid Grid.Row="1">
<controls:RoundedClipBorder MinHeight="80" Background="White" BorderBrush="#E5E5F0" BorderThickness="1" CornerRadius="12">
<DataGrid x:Name="UserGrid" Style="{StaticResource AdminDataGrid}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="账号" SortMemberPath="UserName" Width="1.15*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="34"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border Width="28" Height="28" CornerRadius="9" Background="#EEEEFC" VerticalAlignment="Center">
<TextBlock Text="◎" Foreground="#7777C9" FontSize="13" FontWeight="SemiBold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<TextBlock Text="{Binding UserName}" Style="{StaticResource ToolBoxDataGridPrimaryTextStyle}"/>
<TextBlock Text="{Binding Id}" Style="{StaticResource ToolBoxDataGridSecondaryTextStyle}" FontSize="8.5" Margin="0,2,0,0"/>
</StackPanel>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="昵称" SortMemberPath="NickName" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate><TextBlock Text="{Binding NickName}" Style="{StaticResource ToolBoxDataGridPrimaryTextStyle}" FontWeight="Normal"/></DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="角色" SortMemberPath="RoleText" Width="116" HeaderStyle="{StaticResource AdminDataGridCenteredHeader}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border x:Name="RoleBadge" Padding="9,4" Background="#F2F2F8" CornerRadius="9" HorizontalAlignment="Center">
<TextBlock x:Name="RoleText" Text="普通用户" Foreground="#77778C" FontSize="9.5"/>
</Border>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsAdministrator}" Value="True">
<Setter TargetName="RoleBadge" Property="Background" Value="#ECECFC"/>
<Setter TargetName="RoleText" Property="Text" Value="管理员"/>
<Setter TargetName="RoleText" Property="Foreground" Value="#6666B2"/>
<Setter TargetName="RoleText" Property="FontWeight" Value="SemiBold"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="状态" SortMemberPath="StatusText" Width="100" HeaderStyle="{StaticResource AdminDataGridCenteredHeader}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Ellipse x:Name="StatusDot" Width="7" Height="7" Fill="#D5848D" Margin="0,0,6,0" VerticalAlignment="Center"/>
<TextBlock x:Name="UserStatusText" Text="已禁用" Foreground="#A3656C" FontSize="9.5" VerticalAlignment="Center"/>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Enable}" Value="True">
<Setter TargetName="StatusDot" Property="Fill" Value="#72CE9A"/>
<Setter TargetName="UserStatusText" Property="Text" Value="正常"/>
<Setter TargetName="UserStatusText" Property="Foreground" Value="#4F9069"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</controls:RoundedClipBorder>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False">
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers><DataTrigger Binding="{Binding HasItems, ElementName=UserGrid}" Value="False"><Setter Property="Visibility" Value="Visible"/></DataTrigger></Style.Triggers>
</Style>
</StackPanel.Style>
<Border Width="44" Height="44" CornerRadius="14" Background="#F0EFFC" HorizontalAlignment="Center">
<TextBlock Text="◎" Foreground="#8585D3" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<TextBlock Text="暂无用户数据" Foreground="#55556B" FontSize="11" FontWeight="SemiBold" HorizontalAlignment="Center" Margin="0,9,0,0"/>
</StackPanel>
</Grid>
</Grid>
</Border>
<Border Grid.Row="2" Style="{StaticResource AdminCard}" Padding="17,12">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid>
<StackPanel>
<TextBlock Text="新建用户" Style="{StaticResource AdminSectionTitle}"/>
<TextBlock Text="创建普通账号,也可以直接授予管理员权限" Style="{StaticResource AdminSectionSubtitle}"/>
</StackPanel>
<CheckBox x:Name="NewIsAdmin" Content="创建为管理员" Style="{StaticResource AdminCheckBox}"
HorizontalAlignment="Right" VerticalAlignment="Center"/>
</Grid>
<Grid Grid.Row="1" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.05*"/>
<ColumnDefinition Width="1.05*"/>
<ColumnDefinition Width="1.25*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<controls:TextEditor x:Name="NewUserName" Style="{StaticResource AdminTextEditor}"
Margin="0,0,8,0" HintText="账号" ToolTip="账号"/>
<controls:TextEditor x:Name="NewNickName" Grid.Column="1" Style="{StaticResource AdminTextEditor}"
Margin="0,0,8,0" HintText="昵称" ToolTip="昵称"/>
<controls:PasswordEditor x:Name="NewPassword" Grid.Column="2" Style="{StaticResource AdminPasswordEditor}"
Margin="0,0,8,0" HintText="密码(至少 8 位)" ToolTip="密码(至少 8 位)"/>
<Button Grid.Column="3" Content="创建用户" controls:ButtonAssist.IsPrimary="True"
MinWidth="88" Click="CreateButton_Click"/>
</Grid>
<Border Grid.Row="2" Height="1" Background="#E6E6F0" Margin="0,10"/>
<Grid Grid.Row="3">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<controls:PasswordEditor x:Name="ResetPassword" Width="155"
Style="{StaticResource AdminPasswordEditor}" Margin="0,0,8,0"
HintText="设置新密码" ToolTip="为选中用户设置新密码"/>
<Button Content="重置密码" Margin="0,0,7,0"
Click="ResetPasswordButton_Click"/>
<Button Content="切换角色" Margin="0,0,7,0"
Click="ToggleRoleButton_Click"/>
<Button Content="启用 / 禁用" MinWidth="88"
Click="ToggleStatusButton_Click"/>
</StackPanel>
</Grid>
</Grid>
</Border>
</Grid>
</Page>
<Page x:Class="XFEToolBox.Client.Views.Pages.Admin.UserManagementPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:XFEToolBox.WpfCore.Controls;assembly=XFEToolBox.WpfCore"
Background="Transparent" Title="" Loaded="Page_Loaded">
<Grid Margin="14,9,14,12">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Border Style="{StaticResource AdminPageHeaderIcon}">
<Grid Width="23" Height="23">
<Ellipse Width="8" Height="8" Margin="0,0,9,9" HorizontalAlignment="Center" VerticalAlignment="Center"
Stroke="White" StrokeThickness="1.7"/>
<Path Width="13" Height="7" Margin="0,10,9,0" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 1,6 C 1,3 3.2,1 6.5,1 C 9.8,1 12,3 12,6" Stretch="Fill"
Stroke="White" StrokeThickness="1.7" StrokeStartLineCap="Round" StrokeEndLineCap="Round"/>
<Ellipse Width="6" Height="6" Margin="12,1,0,8" HorizontalAlignment="Center" VerticalAlignment="Center"
Stroke="#DFFFFFFF" StrokeThickness="1.5"/>
<Path Width="9" Height="5" Margin="13,10,0,0" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 1,4 C 1,2 2.5,1 4.5,1 C 6.5,1 8,2 8,4" Stretch="Fill"
Stroke="#DFFFFFFF" StrokeThickness="1.5" StrokeStartLineCap="Round" StrokeEndLineCap="Round"/>
</Grid>
</Border>
<StackPanel Grid.Column="1" Margin="11,0,0,0" VerticalAlignment="Center">
<TextBlock Text="用户与权限" Style="{StaticResource AdminPageTitle}"/>
<TextBlock Text="管理服务器账号、角色与访问状态" Style="{StaticResource AdminPageSubtitle}"/>
</StackPanel>
<Button Grid.Column="2" Content="刷新列表"
VerticalAlignment="Center" Click="RefreshButton_Click"/>
</Grid>
<Border Grid.Row="1" MinHeight="155" Style="{StaticResource AdminCard}" Margin="0,10,0,10" Padding="17,14,17,12">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Margin="2,0,2,11">
<StackPanel>
<TextBlock Text="用户列表" Style="{StaticResource AdminSectionTitle}"/>
<TextBlock Text="选择用户后,可在下方修改密码、角色或启用状态" Style="{StaticResource AdminSectionSubtitle}"/>
</StackPanel>
<Border HorizontalAlignment="Right" VerticalAlignment="Center" Padding="10,5"
Background="#EEEEF8" CornerRadius="10">
<StackPanel Orientation="Horizontal">
<Ellipse Width="6" Height="6" Fill="#72CE9A" Margin="0,0,6,0" VerticalAlignment="Center"/>
<TextBlock x:Name="StatusText" MaxWidth="180" Foreground="#508264" FontSize="9.5"
VerticalAlignment="Center" TextTrimming="CharacterEllipsis"/>
</StackPanel>
</Border>
</Grid>
<Grid Grid.Row="1">
<controls:RoundedClipBorder MinHeight="80" Background="White" BorderBrush="#E5E5F0" BorderThickness="1" CornerRadius="12">
<DataGrid x:Name="UserGrid" Style="{StaticResource AdminDataGrid}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="账号" SortMemberPath="UserName" Width="1.15*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="34"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border Width="28" Height="28" CornerRadius="9" Background="#EEEEFC" VerticalAlignment="Center">
<TextBlock Text="◎" Foreground="#7777C9" FontSize="13" FontWeight="SemiBold" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<TextBlock Text="{Binding UserName}" Style="{StaticResource ToolBoxDataGridPrimaryTextStyle}"/>
<TextBlock Text="{Binding Id}" Style="{StaticResource ToolBoxDataGridSecondaryTextStyle}" FontSize="8.5" Margin="0,2,0,0"/>
</StackPanel>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="昵称" SortMemberPath="NickName" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate><TextBlock Text="{Binding NickName}" Style="{StaticResource ToolBoxDataGridPrimaryTextStyle}" FontWeight="Normal"/></DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="角色" SortMemberPath="RoleText" Width="116" HeaderStyle="{StaticResource AdminDataGridCenteredHeader}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border x:Name="RoleBadge" Padding="9,4" Background="#F2F2F8" CornerRadius="9" HorizontalAlignment="Center">
<TextBlock x:Name="RoleText" Text="普通用户" Foreground="#77778C" FontSize="9.5"/>
</Border>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsAdministrator}" Value="True">
<Setter TargetName="RoleBadge" Property="Background" Value="#ECECFC"/>
<Setter TargetName="RoleText" Property="Text" Value="管理员"/>
<Setter TargetName="RoleText" Property="Foreground" Value="#6666B2"/>
<Setter TargetName="RoleText" Property="FontWeight" Value="SemiBold"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="状态" SortMemberPath="StatusText" Width="100" HeaderStyle="{StaticResource AdminDataGridCenteredHeader}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Ellipse x:Name="StatusDot" Width="7" Height="7" Fill="#D5848D" Margin="0,0,6,0" VerticalAlignment="Center"/>
<TextBlock x:Name="UserStatusText" Text="已禁用" Foreground="#A3656C" FontSize="9.5" VerticalAlignment="Center"/>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Enable}" Value="True">
<Setter TargetName="StatusDot" Property="Fill" Value="#72CE9A"/>
<Setter TargetName="UserStatusText" Property="Text" Value="正常"/>
<Setter TargetName="UserStatusText" Property="Foreground" Value="#4F9069"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</controls:RoundedClipBorder>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False">
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers><DataTrigger Binding="{Binding HasItems, ElementName=UserGrid}" Value="False"><Setter Property="Visibility" Value="Visible"/></DataTrigger></Style.Triggers>
</Style>
</StackPanel.Style>
<Border Width="44" Height="44" CornerRadius="14" Background="#F0EFFC" HorizontalAlignment="Center">
<TextBlock Text="◎" Foreground="#8585D3" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<TextBlock Text="暂无用户数据" Foreground="#55556B" FontSize="11" FontWeight="SemiBold" HorizontalAlignment="Center" Margin="0,9,0,0"/>
</StackPanel>
</Grid>
</Grid>
</Border>
<Border Grid.Row="2" Style="{StaticResource AdminCard}" Padding="17,12">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid>
<StackPanel>
<TextBlock Text="新建用户" Style="{StaticResource AdminSectionTitle}"/>
<TextBlock Text="创建普通账号,也可以直接授予管理员权限" Style="{StaticResource AdminSectionSubtitle}"/>
</StackPanel>
<CheckBox x:Name="NewIsAdmin" Content="创建为管理员" Style="{StaticResource AdminCheckBox}"
HorizontalAlignment="Right" VerticalAlignment="Center"/>
</Grid>
<Grid Grid.Row="1" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.05*"/>
<ColumnDefinition Width="1.05*"/>
<ColumnDefinition Width="1.25*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<controls:TextEditor x:Name="NewUserName" Style="{StaticResource AdminTextEditor}"
Margin="0,0,8,0" HintText="账号" ToolTip="账号"/>
<controls:TextEditor x:Name="NewNickName" Grid.Column="1" Style="{StaticResource AdminTextEditor}"
Margin="0,0,8,0" HintText="昵称" ToolTip="昵称"/>
<controls:PasswordEditor x:Name="NewPassword" Grid.Column="2" Style="{StaticResource AdminPasswordEditor}"
Margin="0,0,8,0" HintText="密码(至少 8 位)" ToolTip="密码(至少 8 位)"/>
<Button Grid.Column="3" Content="创建用户" controls:ButtonAssist.IsPrimary="True"
MinWidth="88" Click="CreateButton_Click"/>
</Grid>
<Border Grid.Row="2" Height="1" Background="#E6E6F0" Margin="0,10"/>
<Grid Grid.Row="3">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<controls:PasswordEditor x:Name="ResetPassword" Width="155"
Style="{StaticResource AdminPasswordEditor}" Margin="0,0,8,0"
HintText="设置新密码" ToolTip="为选中用户设置新密码"/>
<Button Content="重置密码" Margin="0,0,7,0"
Click="ResetPasswordButton_Click"/>
<Button Content="切换角色" Margin="0,0,7,0"
Click="ToggleRoleButton_Click"/>
<Button Content="启用 / 禁用" MinWidth="88"
Click="ToggleStatusButton_Click"/>
</StackPanel>
</Grid>
</Grid>
</Border>
</Grid>
</Page>