using ivf_tl_Entity.Entity.AppSetting; using ivf_tl_Entity.Enums; using ivf_tl_Manage.Converts; using ivf_tl_Service.HttpProvider; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace ivf_tl_Manage.Win { /// /// RoleSettingWindow.xaml 的交互逻辑 /// public partial class RoleSettingWindow : Window { SettingProvider settingProvider; List BusinesseList = new List(); long CurrentRole; public RoleSettingWindow(SettingProvider provider,long currentRoleId) { InitializeComponent(); this.Owner = AppData.Instance.MainWindow; settingProvider = provider; CurrentRole = currentRoleId; BusinesseList = settingProvider.GetAllBusinessAndChildrenApi(); var oldRole = settingProvider.GetRoleSettingApi(currentRoleId); if (oldRole != null && oldRole.permissions != null) { var se = oldRole.permissions.Select(x => x.id).ToList(); foreach (var item in BusinesseList) if (se.Contains(item.id)) item.isChecked = true; } this._listBox.ItemsSource = BusinesseList; this.Closed += (a, b) => { AppData.Instance.MainWindow.Activate(); }; } private void MessageBoxShow(string mess) { this.message.Text = mess; } private void ExLog(Exception ex, string name) { AppData.Instance.LogService.ExceptionLog(ex, $"RoleSettingWindow.{name}", LogEnum.RunException); } private void ErrorLog(string message, LogEnum logType) { AppData.Instance.LogService.TLLog($"RoleSettingWindow.{message}", logType); } private void Cancel_Click(object sender, RoutedEventArgs e) { this.DialogResult = false; return; } private void _listBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (!(this._listBox.SelectedItem is Business business)) return; foreach (var item in BusinesseList) { if (item.id == business.id) { item.isOpen = 1; } else { item.isOpen = 0; } } this._children.ItemsSource = business.children; } private void Rectangle_MouseUp(object sender, MouseButtonEventArgs e) { if (!(sender is Image source)) return; if(source.Tag.ToString() == "0") { source.Tag = "1"; source.Source = new BitmapImage(new Uri("pack://application:,,,/ivf_tl_Manage;component/Resources/Images/SettingSubIcon.png", UriKind.Absolute)); } else { source.Tag = "0"; source.Source = new BitmapImage(new Uri("pack://application:,,,/ivf_tl_Manage;component/Resources/Images/SettingAddIcon.png", UriKind.Absolute)); } } private void Ok_Click(object sender, RoutedEventArgs e) { try { if (CurrentRole == null) { //MessageBoxShow("未获取到当前角色"); MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0290")); return; } var ids = BusinesseList.Where(x => x.isChecked).Select(x => x.id).ToList(); string error = settingProvider.RoleSettingApi(CurrentRole, ids); if (!string.IsNullOrEmpty(error)) { MessageBoxShow($"{KeyToStringConvert.GetLanguageStringByKey("0286")},{error}"); return; } new ToastWindow(AppData.Instance.MainWindow, 1920, 65, true).Show(); this.DialogResult = true; return; } catch (Exception ex) { ExLog(ex, "Ok_Click"); MessageBoxShow($"{KeyToStringConvert.GetLanguageStringByKey("0291")}:{ex.Message}"); } } private void Rectangle_MouseDown(object sender, MouseButtonEventArgs e) { if (!(sender is Image source)) return; if (!(source.Tag is Business business)) return; if (this._listBox.SelectedItem == business) { if (business.isOpen == 1) { business.isOpen = 0; this._children.ItemsSource = null; } else { business.isOpen = 1; this._children.ItemsSource = business.children; } } else { this._listBox.SelectedItem = business; } e.Handled = true; } } }