diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/ViewModelLocator.cs b/SubCabinetSolution/ViewModel/ViewModelLocator.cs index 8ccd680..bd71330 100644 --- a/SubCabinetSolution/ViewModel/ViewModelLocator.cs +++ b/SubCabinetSolution/ViewModel/ViewModelLocator.cs @@ -44,9 +44,11 @@ SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); @@ -70,7 +72,6 @@ { var service = new NavigationService(); - // service.Configure("MainWindow", new Uri("/SubCabinetSolution;component/Views/MainWindow.xaml", UriKind.Relative)); service.Configure("CabinetWindow", @@ -94,6 +95,10 @@ service.Configure("SettingsPage", new Uri("/SubCabinetSolution;component/Views/SettingsPage.xaml", UriKind.Relative)); + service.Configure("AddUserDialog", + new Uri("/SubCabinetSolution;component/Views/AddUserDialog.xaml", UriKind.Relative)); + service.Configure("EditUserDialog", + new Uri("/SubCabinetSolution;component/Views/EditUserDialog.xaml", UriKind.Relative)); service.Configure("RecentUsePage", new Uri("/SubCabinetSolution;component/Views/RecentUsePage.xaml", UriKind.Relative)); @@ -135,10 +140,9 @@ ServiceLocator.Current.GetInstance(); public SettingsPageViewModel SettingsPage => ServiceLocator.Current.GetInstance(); - - public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); - public AddUserDialogViewModel AddUserDialog => ServiceLocator.Current.GetInstance(); + public EditUserDialogViewModel EditUserDialog => ServiceLocator.Current.GetInstance(); + public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); public InventoryQueryPageViewModel InventoryQueryPage => ServiceLocator.Current.GetInstance(); diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/ViewModelLocator.cs b/SubCabinetSolution/ViewModel/ViewModelLocator.cs index 8ccd680..bd71330 100644 --- a/SubCabinetSolution/ViewModel/ViewModelLocator.cs +++ b/SubCabinetSolution/ViewModel/ViewModelLocator.cs @@ -44,9 +44,11 @@ SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); @@ -70,7 +72,6 @@ { var service = new NavigationService(); - // service.Configure("MainWindow", new Uri("/SubCabinetSolution;component/Views/MainWindow.xaml", UriKind.Relative)); service.Configure("CabinetWindow", @@ -94,6 +95,10 @@ service.Configure("SettingsPage", new Uri("/SubCabinetSolution;component/Views/SettingsPage.xaml", UriKind.Relative)); + service.Configure("AddUserDialog", + new Uri("/SubCabinetSolution;component/Views/AddUserDialog.xaml", UriKind.Relative)); + service.Configure("EditUserDialog", + new Uri("/SubCabinetSolution;component/Views/EditUserDialog.xaml", UriKind.Relative)); service.Configure("RecentUsePage", new Uri("/SubCabinetSolution;component/Views/RecentUsePage.xaml", UriKind.Relative)); @@ -135,10 +140,9 @@ ServiceLocator.Current.GetInstance(); public SettingsPageViewModel SettingsPage => ServiceLocator.Current.GetInstance(); - - public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); - public AddUserDialogViewModel AddUserDialog => ServiceLocator.Current.GetInstance(); + public EditUserDialogViewModel EditUserDialog => ServiceLocator.Current.GetInstance(); + public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); public InventoryQueryPageViewModel InventoryQueryPage => ServiceLocator.Current.GetInstance(); diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml b/SubCabinetSolution/Views/EditUserDialog.xaml new file mode 100644 index 0000000..00364ba --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/ViewModelLocator.cs b/SubCabinetSolution/ViewModel/ViewModelLocator.cs index 8ccd680..bd71330 100644 --- a/SubCabinetSolution/ViewModel/ViewModelLocator.cs +++ b/SubCabinetSolution/ViewModel/ViewModelLocator.cs @@ -44,9 +44,11 @@ SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); @@ -70,7 +72,6 @@ { var service = new NavigationService(); - // service.Configure("MainWindow", new Uri("/SubCabinetSolution;component/Views/MainWindow.xaml", UriKind.Relative)); service.Configure("CabinetWindow", @@ -94,6 +95,10 @@ service.Configure("SettingsPage", new Uri("/SubCabinetSolution;component/Views/SettingsPage.xaml", UriKind.Relative)); + service.Configure("AddUserDialog", + new Uri("/SubCabinetSolution;component/Views/AddUserDialog.xaml", UriKind.Relative)); + service.Configure("EditUserDialog", + new Uri("/SubCabinetSolution;component/Views/EditUserDialog.xaml", UriKind.Relative)); service.Configure("RecentUsePage", new Uri("/SubCabinetSolution;component/Views/RecentUsePage.xaml", UriKind.Relative)); @@ -135,10 +140,9 @@ ServiceLocator.Current.GetInstance(); public SettingsPageViewModel SettingsPage => ServiceLocator.Current.GetInstance(); - - public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); - public AddUserDialogViewModel AddUserDialog => ServiceLocator.Current.GetInstance(); + public EditUserDialogViewModel EditUserDialog => ServiceLocator.Current.GetInstance(); + public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); public InventoryQueryPageViewModel InventoryQueryPage => ServiceLocator.Current.GetInstance(); diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml b/SubCabinetSolution/Views/EditUserDialog.xaml new file mode 100644 index 0000000..00364ba --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml.cs b/SubCabinetSolution/Views/EditUserDialog.xaml.cs new file mode 100644 index 0000000..636eb64 --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows; + +namespace SubCabinetSolution.Views +{ + public partial class EditUserDialog : Window + { + public EditUserDialog() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/ViewModelLocator.cs b/SubCabinetSolution/ViewModel/ViewModelLocator.cs index 8ccd680..bd71330 100644 --- a/SubCabinetSolution/ViewModel/ViewModelLocator.cs +++ b/SubCabinetSolution/ViewModel/ViewModelLocator.cs @@ -44,9 +44,11 @@ SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); @@ -70,7 +72,6 @@ { var service = new NavigationService(); - // service.Configure("MainWindow", new Uri("/SubCabinetSolution;component/Views/MainWindow.xaml", UriKind.Relative)); service.Configure("CabinetWindow", @@ -94,6 +95,10 @@ service.Configure("SettingsPage", new Uri("/SubCabinetSolution;component/Views/SettingsPage.xaml", UriKind.Relative)); + service.Configure("AddUserDialog", + new Uri("/SubCabinetSolution;component/Views/AddUserDialog.xaml", UriKind.Relative)); + service.Configure("EditUserDialog", + new Uri("/SubCabinetSolution;component/Views/EditUserDialog.xaml", UriKind.Relative)); service.Configure("RecentUsePage", new Uri("/SubCabinetSolution;component/Views/RecentUsePage.xaml", UriKind.Relative)); @@ -135,10 +140,9 @@ ServiceLocator.Current.GetInstance(); public SettingsPageViewModel SettingsPage => ServiceLocator.Current.GetInstance(); - - public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); - public AddUserDialogViewModel AddUserDialog => ServiceLocator.Current.GetInstance(); + public EditUserDialogViewModel EditUserDialog => ServiceLocator.Current.GetInstance(); + public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); public InventoryQueryPageViewModel InventoryQueryPage => ServiceLocator.Current.GetInstance(); diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml b/SubCabinetSolution/Views/EditUserDialog.xaml new file mode 100644 index 0000000..00364ba --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml.cs b/SubCabinetSolution/Views/EditUserDialog.xaml.cs new file mode 100644 index 0000000..636eb64 --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows; + +namespace SubCabinetSolution.Views +{ + public partial class EditUserDialog : Window + { + public EditUserDialog() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/Views/SettingsPage.xaml b/SubCabinetSolution/Views/SettingsPage.xaml index 6221782..34ae35e 100644 --- a/SubCabinetSolution/Views/SettingsPage.xaml +++ b/SubCabinetSolution/Views/SettingsPage.xaml @@ -3,6 +3,7 @@ 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:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:widgets="clr-namespace:CSharpToolkit.Widgets;assembly=CSharpToolkit" Title="SettingsPage" @@ -60,8 +61,8 @@ BorderThickness="0,0,0,1"> - + + + @@ -83,6 +96,13 @@ Grid.Row="1" ItemsSource="{Binding UserModels}" Style="{StaticResource DataGridStyle}"> + + + + + + + MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/ViewModelLocator.cs b/SubCabinetSolution/ViewModel/ViewModelLocator.cs index 8ccd680..bd71330 100644 --- a/SubCabinetSolution/ViewModel/ViewModelLocator.cs +++ b/SubCabinetSolution/ViewModel/ViewModelLocator.cs @@ -44,9 +44,11 @@ SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); @@ -70,7 +72,6 @@ { var service = new NavigationService(); - // service.Configure("MainWindow", new Uri("/SubCabinetSolution;component/Views/MainWindow.xaml", UriKind.Relative)); service.Configure("CabinetWindow", @@ -94,6 +95,10 @@ service.Configure("SettingsPage", new Uri("/SubCabinetSolution;component/Views/SettingsPage.xaml", UriKind.Relative)); + service.Configure("AddUserDialog", + new Uri("/SubCabinetSolution;component/Views/AddUserDialog.xaml", UriKind.Relative)); + service.Configure("EditUserDialog", + new Uri("/SubCabinetSolution;component/Views/EditUserDialog.xaml", UriKind.Relative)); service.Configure("RecentUsePage", new Uri("/SubCabinetSolution;component/Views/RecentUsePage.xaml", UriKind.Relative)); @@ -135,10 +140,9 @@ ServiceLocator.Current.GetInstance(); public SettingsPageViewModel SettingsPage => ServiceLocator.Current.GetInstance(); - - public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); - public AddUserDialogViewModel AddUserDialog => ServiceLocator.Current.GetInstance(); + public EditUserDialogViewModel EditUserDialog => ServiceLocator.Current.GetInstance(); + public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); public InventoryQueryPageViewModel InventoryQueryPage => ServiceLocator.Current.GetInstance(); diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml b/SubCabinetSolution/Views/EditUserDialog.xaml new file mode 100644 index 0000000..00364ba --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml.cs b/SubCabinetSolution/Views/EditUserDialog.xaml.cs new file mode 100644 index 0000000..636eb64 --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows; + +namespace SubCabinetSolution.Views +{ + public partial class EditUserDialog : Window + { + public EditUserDialog() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/Views/SettingsPage.xaml b/SubCabinetSolution/Views/SettingsPage.xaml index 6221782..34ae35e 100644 --- a/SubCabinetSolution/Views/SettingsPage.xaml +++ b/SubCabinetSolution/Views/SettingsPage.xaml @@ -3,6 +3,7 @@ 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:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:widgets="clr-namespace:CSharpToolkit.Widgets;assembly=CSharpToolkit" Title="SettingsPage" @@ -60,8 +61,8 @@ BorderThickness="0,0,0,1"> - + + + @@ -83,6 +96,13 @@ Grid.Row="1" ItemsSource="{Binding UserModels}" Style="{StaticResource DataGridStyle}"> + + + + + + + // 此代码由工具生成。 diff --git a/.vs/SubCabinetSolution/v17/.suo b/.vs/SubCabinetSolution/v17/.suo index bf19c3c..9f4b263 100644 --- a/.vs/SubCabinetSolution/v17/.suo +++ b/.vs/SubCabinetSolution/v17/.suo Binary files differ diff --git a/SubCabinetSolution/IconFont/iconfont.ttf b/SubCabinetSolution/IconFont/iconfont.ttf index 2544133..e872d5f 100644 --- a/SubCabinetSolution/IconFont/iconfont.ttf +++ b/SubCabinetSolution/IconFont/iconfont.ttf Binary files differ diff --git a/SubCabinetSolution/Model/AdminFuncModel.cs b/SubCabinetSolution/Model/AdminFuncModel.cs new file mode 100644 index 0000000..0cbcb29 --- /dev/null +++ b/SubCabinetSolution/Model/AdminFuncModel.cs @@ -0,0 +1,14 @@ +namespace SubCabinetSolution.Model +{ + public class AdminFuncModel + { + public AdminFuncModel(string image, string title) + { + Image = image; + Title = title; + } + + public string Image { get; } + public string Title { get; } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/SubCabinetSolution.csproj b/SubCabinetSolution/SubCabinetSolution.csproj index ffcdde3..73292f0 100644 --- a/SubCabinetSolution/SubCabinetSolution.csproj +++ b/SubCabinetSolution/SubCabinetSolution.csproj @@ -155,6 +155,7 @@ MSBuild:Compile Designer + @@ -171,6 +172,7 @@ + @@ -203,6 +205,9 @@ ConsumeQueryPage.xaml + + EditUserDialog.xaml + EmergencyPage.xaml @@ -265,6 +270,7 @@ + diff --git a/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs new file mode 100644 index 0000000..012c32a --- /dev/null +++ b/SubCabinetSolution/ViewModel/EditUserDialogViewModel.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Command; +using SubCabinetSolution.Model; + +namespace SubCabinetSolution.ViewModel +{ + public class EditUserDialogViewModel : ViewModelBase + { + public List AdminFuncModels { get; set; } + public RelayCommand CloseWindowCommand { get; set; } + public RelayCommand ItemSelectedCommand { get; set; } + + public EditUserDialogViewModel() + { + AdminFuncModels = new List + { + //动态绑定字体图标需要替换转义 + new AdminFuncModel("\ue6a4", "角色转换"), + new AdminFuncModel("\ue6c6", "人脸登记"), + new AdminFuncModel("\ue675", "登记卡号"), + new AdminFuncModel("\ue66e", "重置密码"), + new AdminFuncModel("\ue665", "删除用户"), + new AdminFuncModel("\ue676", "锁定用户"), + new AdminFuncModel("\ue682", "解除锁定"), + new AdminFuncModel("\ue6c6", "解除人脸") + }; + CloseWindowCommand = new RelayCommand(CloseWindow); + ItemSelectedCommand = new RelayCommand(ItemSelectionChanged); + } + + private void CloseWindow(Window window) + { + window.Close(); + } + + private void ItemSelectionChanged(object sender) + { + var listBox = (ListBox)sender; + var functionModel = (AdminFuncModel)listBox.SelectedItem; + + MessageBox.Show(functionModel.Title); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs index e9e6734..6d87981 100644 --- a/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs +++ b/SubCabinetSolution/ViewModel/SettingsPageViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using SubCabinetSolution.Model; @@ -10,17 +12,19 @@ { public ObservableCollection UserModels { get; set; } public RelayCommand AddUserCommand { get; set; } + public RelayCommand UserSelectedCommand { get; set; } public SettingsPageViewModel() { - this.UserModels = new ObservableCollection + UserModels = new ObservableCollection { new UserModel("266", "1", "管理员", "admin", "008108899", "2022/7/7 14:53", "已录入", "--", "正常"), new UserModel("268", "0809", "管理员", "0809", "007667643", "2022/7/7 17:22", "已录入", "--", "正常"), new UserModel("267", "77", "管理员", "77", "", "2022/7/7 17:06", "已录入", "--", "正常"), }; - this.AddUserCommand = new RelayCommand(AddUser); + AddUserCommand = new RelayCommand(AddUser); + UserSelectedCommand = new RelayCommand(UserItemSelected); } private void AddUser() @@ -28,5 +32,19 @@ var addUserDialog = new AddUserDialog(); addUserDialog.ShowDialog(); } + + private void UserItemSelected(object sender) + { + var dataGrid = (DataGrid)sender; + var userModel = (UserModel)dataGrid.SelectedItem; + var window = new EditUserDialog + { + WindowStartupLocation = WindowStartupLocation.Manual, + Top = 0 + }; + window.Left = SystemParameters.FullPrimaryScreenWidth - window.Width; + window.Height = SystemParameters.WorkArea.Height; + window.ShowDialog(); + } } } \ No newline at end of file diff --git a/SubCabinetSolution/ViewModel/ViewModelLocator.cs b/SubCabinetSolution/ViewModel/ViewModelLocator.cs index 8ccd680..bd71330 100644 --- a/SubCabinetSolution/ViewModel/ViewModelLocator.cs +++ b/SubCabinetSolution/ViewModel/ViewModelLocator.cs @@ -44,9 +44,11 @@ SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); @@ -70,7 +72,6 @@ { var service = new NavigationService(); - // service.Configure("MainWindow", new Uri("/SubCabinetSolution;component/Views/MainWindow.xaml", UriKind.Relative)); service.Configure("CabinetWindow", @@ -94,6 +95,10 @@ service.Configure("SettingsPage", new Uri("/SubCabinetSolution;component/Views/SettingsPage.xaml", UriKind.Relative)); + service.Configure("AddUserDialog", + new Uri("/SubCabinetSolution;component/Views/AddUserDialog.xaml", UriKind.Relative)); + service.Configure("EditUserDialog", + new Uri("/SubCabinetSolution;component/Views/EditUserDialog.xaml", UriKind.Relative)); service.Configure("RecentUsePage", new Uri("/SubCabinetSolution;component/Views/RecentUsePage.xaml", UriKind.Relative)); @@ -135,10 +140,9 @@ ServiceLocator.Current.GetInstance(); public SettingsPageViewModel SettingsPage => ServiceLocator.Current.GetInstance(); - - public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); - public AddUserDialogViewModel AddUserDialog => ServiceLocator.Current.GetInstance(); + public EditUserDialogViewModel EditUserDialog => ServiceLocator.Current.GetInstance(); + public RecentUsePageViewModel RecentUsePage => ServiceLocator.Current.GetInstance(); public InventoryQueryPageViewModel InventoryQueryPage => ServiceLocator.Current.GetInstance(); diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml b/SubCabinetSolution/Views/EditUserDialog.xaml new file mode 100644 index 0000000..00364ba --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SubCabinetSolution/Views/EditUserDialog.xaml.cs b/SubCabinetSolution/Views/EditUserDialog.xaml.cs new file mode 100644 index 0000000..636eb64 --- /dev/null +++ b/SubCabinetSolution/Views/EditUserDialog.xaml.cs @@ -0,0 +1,12 @@ +using System.Windows; + +namespace SubCabinetSolution.Views +{ + public partial class EditUserDialog : Window + { + public EditUserDialog() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/SubCabinetSolution/Views/SettingsPage.xaml b/SubCabinetSolution/Views/SettingsPage.xaml index 6221782..34ae35e 100644 --- a/SubCabinetSolution/Views/SettingsPage.xaml +++ b/SubCabinetSolution/Views/SettingsPage.xaml @@ -3,6 +3,7 @@ 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:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:widgets="clr-namespace:CSharpToolkit.Widgets;assembly=CSharpToolkit" Title="SettingsPage" @@ -60,8 +61,8 @@ BorderThickness="0,0,0,1"> - + + + @@ -83,6 +96,13 @@ Grid.Row="1" ItemsSource="{Binding UserModels}" Style="{StaticResource DataGridStyle}"> + + + + + + + // 此代码由工具生成。 diff --git a/SubCabinetSolution/obj/Debug/MainWindow.g.i.cs b/SubCabinetSolution/obj/Debug/MainWindow.g.i.cs index 75a46c5..e89ecd0 100644 --- a/SubCabinetSolution/obj/Debug/MainWindow.g.i.cs +++ b/SubCabinetSolution/obj/Debug/MainWindow.g.i.cs @@ -1,4 +1,4 @@ -#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "902436421D463978A87A577B9DA394664E587CA1CE4DF52EFEBE2482E3A07659" +#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "5BB9E5998A3116A9EAACE10BB89376D9D83E065EA9F52F4DBEC932969B97E181" //------------------------------------------------------------------------------ // // 此代码由工具生成。