HKC/DM_Weight/Views/RoleManagerWindow.xaml

225 lines
12 KiB
Plaintext
Raw Normal View History

2023-11-13 11:52:43 +08:00
<UserControl x:Class="DM_Weight.Views.RoleManagerWindow"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:DM_Weight.Views"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:convert="clr-namespace:DM_Weight.Converter"
xmlns:prism="http://prismlibrary.com/"
mc:Ignorable="d">
<UserControl.Resources>
<Style x:Key="st" TargetType="GridViewColumnHeader">
<Style.Setters>
<Setter Property="Height">
<Setter.Value>55</Setter.Value>
</Setter>
<Setter Property="Background">
<Setter.Value>#31ccec</Setter.Value>
</Setter>
<Setter Property="Foreground">
<Setter.Value>white</Setter.Value>
</Setter>
</Style.Setters>
</Style>
</UserControl.Resources>
<Grid>
<Grid.Resources>
<convert:NullableToEnabelConverter x:Key="NullableToEnabelConverter" />
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Margin="0 6 0 6" Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="180" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBox
Grid.Column="0"
Text="{Binding SearchValue, UpdateSourceTrigger=PropertyChanged}"
materialDesign:HintAssist.Hint="角色名"
Margin="6 0 0 0"
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button
Margin="0 0 6 0"
VerticalAlignment="Center"
Style="{StaticResource MaterialDesignOutlinedLightButton}"
ToolTip="刷新" Command="{Binding Query}">
<materialDesign:PackIcon
Kind="Refresh" />
</Button>
</StackPanel>
</Grid>
<ListView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding RoleList}"
SelectedItem="{Binding Role}"
materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
materialDesign:DataGridAssist.ColumnHeaderPadding="10"
materialDesign:ListViewAssist.ListViewItemPadding="13">
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding RowSelected}" />
</i:EventTrigger>
</i:Interaction.Triggers>-->
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
<Setter Property="Foreground" Value="White" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView ColumnHeaderContainerStyle="{StaticResource st}">
<GridViewColumn Width="253"
Header="角色编号"
DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Width="253"
DisplayMemberBinding="{Binding RoleName}"
Header="角色名"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
<GroupBox Margin="6" Grid.Column="1" Header="编辑/新增" materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
2023-11-13 11:52:43 +08:00
<TextBox
Grid.Column="0" Margin="10" Grid.Row="0"
2023-11-13 11:52:43 +08:00
Text="{Binding Role.RoleName}"
materialDesign:HintAssist.Hint="角色名"
Style="{StaticResource MaterialDesignOutlinedTextBox}"/>
<!-- piece together your own items control to create some nice stuff that will make everyone think you are cool. and rightly so, because you are cool. you might even be a hipster for all I know -->
<StackPanel Margin="10" Orientation="Horizontal" Grid.Row="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<!--<ColumnDefinition/>-->
</Grid.ColumnDefinitions>
<CheckBox Margin="0 0 3 9" Grid.Row="0" Grid.Column="0" IsChecked="{Binding Drawer1}" Content="1号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="0" Grid.Column="1" IsChecked="{Binding Drawer2}" Content="2号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="0" Grid.Column="2" IsChecked="{Binding Drawer3}" Content="3号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="1" Grid.Column="0" IsChecked="{Binding Drawer4}" Content="4号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="1" Grid.Column="1" IsChecked="{Binding Drawer5}" Content="5号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="1" Grid.Column="2" IsChecked="{Binding Drawer6}" Content="6号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="2" Grid.Column="0" IsChecked="{Binding Drawer7}" Content="7号抽屉" />
<CheckBox Margin="0 0 3 9" Grid.Row="2" Grid.Column="1" IsChecked="{Binding Drawer8}" Content="8号抽屉" />
</Grid>
</StackPanel>
<StackPanel Grid.Column="1" Grid.RowSpan="2" Orientation="Horizontal" Margin="10" HorizontalAlignment="Right" VerticalAlignment="Center">
2023-11-13 11:52:43 +08:00
<Button
Margin="6"
Command="{Binding EditRole}"
IsEnabled="{Binding Role.Id, Converter={StaticResource NullableToEnabelConverter}}"
Content="修改" Cursor="Hand" />
<Button
Command="{Binding AddRole}"
Content="新增" />
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<GroupBox Header="全部菜单" Grid.Column="0" Margin="10">
<ScrollViewer Grid.Row="1" Grid.Column="1">
<TreeView x:Name="LeftTree" MinWidth="220" ItemsSource="{Binding AllPremissions}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding Path=LeftSelectedItemChangedCommand}"
CommandParameter="{Binding ElementName=LeftTree, Path=SelectedItem}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding PremissionName}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</ScrollViewer>
</GroupBox>
<StackPanel Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button
Margin="0 4 0 4"
Style="{StaticResource MaterialDesignPaperLightButton}"
ToolTip="右移"
IsEnabled="{Binding LeftPremission, Converter={StaticResource NullableToEnabelConverter}}"
Command="{Binding ToRight}"
Content="{materialDesign:PackIcon ChevronRight}"/>
<Button
Margin="0 4 0 4"
Style="{StaticResource MaterialDesignPaperLightButton}"
ToolTip="左移"
IsEnabled="{Binding RightPremission, Converter={StaticResource NullableToEnabelConverter}}"
Command="{Binding ToLeft}"
Content="{materialDesign:PackIcon ChevronLeft}"/>
<Button
Margin="0 4 0 4"
Style="{StaticResource MaterialDesignPaperLightButton}"
ToolTip="全部右移"
Command="{Binding AllToRight}"
Content="{materialDesign:PackIcon ChevronDoubleRight}"/>
<Button
Margin="0 4 0 4"
Style="{StaticResource MaterialDesignPaperLightButton}"
ToolTip="全部左移"
Command="{Binding AllToLeft}"
Content="{materialDesign:PackIcon ChevronDoubleLeft}" />
</StackPanel>
<GroupBox Header="已选菜单" Grid.Column="2" Margin="10">
<ScrollViewer Grid.Row="1" Grid.Column="1">
<TreeView x:Name="RightTree" MinWidth="220" ItemsSource="{Binding RightPremissions}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding Path=RightSelectedItemChangedCommand}"
CommandParameter="{Binding ElementName=RightTree, Path=SelectedItem}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding PremissionName}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</ScrollViewer>
</GroupBox>
<materialDesign:Snackbar
Background="{Binding SnackbarBackground}"
MessageQueue="{Binding SnackbarMessageQueue}"/>
</Grid>
</Grid>
</GroupBox>
</Grid>
</UserControl>