alielie
2025-03-03 ee9b94104cbb5597c6033d46ec356771d383b21b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<hb:PluginControl x:Class="HMI.MenuManage.UserManage"
             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:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
             xmlns:local="clr-namespace:HMI.MenuManage"
             xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
xmlns:pw="https://opensource.panuon.com/wpf"
xmlns:pu="https://opensource.panuon.com/wpf-ui"
             mc:Ignorable="d" 
             Background="{StaticResource WorkspaceBackground}"
             Padding="10"
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <pu:StyleDictionary Includes="TreeView" />
                <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
                <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
            </ResourceDictionary.MergedDictionaries>
 
            <uic:PathImageConverter x:Key="path2Image"/>
            <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
        </ResourceDictionary>
    </UserControl.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="6*"/>
            <ColumnDefinition Width="4*"/>
        </Grid.ColumnDefinitions>
        <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
            <StackPanel>
                <DockPanel Margin="0,0,0,10">
                    <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="&#xe60f;" 
                            Style="{StaticResource DangerButton}"
                            x:Name="deleteBatchBtn" Click="Button_Click">删除</Button>
                    <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}" 
                            pu:ButtonHelper.Icon="&#xe631;" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">刷新</Button>
                    <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
                            pu:ButtonHelper.Icon="&#xe61a;" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">新增</Button>
                    <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
                           VerticalAlignment="Center" HorizontalAlignment="Left" Text="用户列表"/>
                </DockPanel>
 
                <DataGrid Grid.Column="1" x:Name="table" Style="{StaticResource DefaultDataGrid}" 
                          SelectedItem="{Binding SelectedUser}" ItemsSource="{Binding DataSource}">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Width="Auto" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox VerticalAlignment="Center"
                          IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                        <DataGridTemplateColumn Header="#" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Converter={StaticResource rowNumber},
    RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                        <DataGridTextColumn Width="*"  Binding="{Binding Username}" Header="账号" />
                        <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="用户名称" />
                        <!--<DataGridTextColumn Width="*" Binding="{Binding RoleCode}" Header="角色编号" />
    <DataGridTextColumn Width="*" Binding="{Binding RoleName}" Header="角色名称" />-->
                        <DataGridTemplateColumn Header="操作" Width="100" IsReadOnly="True" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <Button x:Name="editBtn" Style="{StaticResource LinkButton}" Margin="0,0,10,0"
                        DataContext="{Binding }"
                        Click="Button_Click">编辑</Button>
                                        <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}"
                        DataContext="{Binding }"
                        Click="Button_Click">删除</Button>
                                    </StackPanel>
 
                                    <DataTemplate.Triggers>
                                        <DataTrigger Binding="{Binding Path=IsMouseOver,
        RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}" 
                 Value="True">
                                            <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding Path=IsSelected,
        RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}" 
                 Value="True">
                                            <Setter TargetName="editBtn" Property="Foreground" Value="#FFF"/>
                                        </DataTrigger>
                                    </DataTemplate.Triggers>
 
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>
            </StackPanel>
        </Border>
 
        <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
            <StackPanel>
                <DockPanel Margin="0,0,0,10" >
                    <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}"
                            x:Name="saveRoleBtn" Click="Button_Click" pu:ButtonHelper.Icon="&#xe60d;" Content="保存"/>
                    <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
                           VerticalAlignment="Center" HorizontalAlignment="Left" Text="用户角色"/>
                </DockPanel>
 
                <DataGrid x:Name="roleTable" Style="{StaticResource DefaultDataGrid}" SelectionMode="Single" 
                          ItemsSource="{Binding Roles}">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Header="授予" Width="Auto" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox VerticalAlignment="Center" 
                    HorizontalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
 
                        <DataGridTextColumn Header="#" Binding="{Binding Converter={StaticResource rowNumber},
          RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
                  CanUserResize="False"/>
                        <DataGridTextColumn Width="*" Binding="{Binding RoleCode}" Header="角色编号" />
                        <DataGridTextColumn Width="*" Binding="{Binding RoleName}" Header="角色名称" />
                    </DataGrid.Columns>
                </DataGrid>
 
            </StackPanel>
        </Border>
    </Grid>
</hb:PluginControl>