| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- using CommunityToolkit.Mvvm.ComponentModel;
- using ivf_tl_Entity.Entity.AppSetting;
- using ivf_tl_Entity.Enums;
- using ivf_tl_Entity.Response;
- using ivf_tl_Manage.Converts;
- using ivf_tl_Manage.Win;
- using ivf_tl_Service.HttpProvider;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Security.Principal;
- using System.Text;
- using System.Threading.Tasks;
- namespace ivf_tl_Manage.ViewModels
- {
- public partial class AppSettingViewModel : BaseViewModel
- {
- [ObservableProperty]
- private string currentTitle = "业务管理";
- [ObservableProperty]
- private ObservableCollection<UserManageEntity> userList = new ObservableCollection<UserManageEntity>();
- [ObservableProperty]
- private ObservableCollection<RoleEntity> roleList = new ObservableCollection<RoleEntity>();
- private List<RoleEntity> SearchRoleList = new List<RoleEntity>();
- [ObservableProperty]
- private ObservableCollection<RoleEntity> showRoleList = new ObservableCollection<RoleEntity>();
- [ObservableProperty]
- private ObservableCollection<Business> businessList = new ObservableCollection<Business>();
- [ObservableProperty]
- private ObservableCollection<Business> funcList = new ObservableCollection<Business>();
- public Dictionary<int, string> TypeDicSource { get; set; } = new Dictionary<int, string> { { 1, "启用" }, { 0, "禁用" } };
- public int PageSize { get; set; } = 9;
- public int PageCurrent = 1;
- private string SearchUrl;
- private int SearchState = -1;
- private string SearchName;
- [ObservableProperty]
- private int dataCount = -1;
- private int RolePageCurrent = 1;
- private long SearchRoleId = -1;
- [ObservableProperty]
- private int roleDataCount = -1;
- private int UserPageCurrent = 1;
- private string SearchAccount;
- private string SearchUserName;
- private long SearchUserRoleId = -1;
- [ObservableProperty]
- private int userDataCount = -1;
- private SettingProvider settingProvider;
- public AppSettingViewModel()
- {
- base.ViewModelName=nameof(AppSettingViewModel);
- settingProvider = AppData.Instance.GetSettingProvider();
- BusinessList = new ObservableCollection<Business>(settingProvider.GetAllBusinessApi());
- DataCount = Updata();
- UserDataCount = -1;
- UserDataCount = UpdataUser();
- RoleList.Clear();
- var list = settingProvider.GetAllRoleApi();
- int k = 1;
- foreach (var item in list)
- {
- item.num = k++;
- if (string.IsNullOrEmpty(item.remark))
- {
- item.remark = "---";
- }
- RoleList.Add(item);
- SearchRoleList.Add(item);
- if (k <= 10) ShowRoleList.Add(item);
- }
- list.Clear();
- RoleDataCount = RoleList.Count;
- }
- bool up = false;
- public void DataChange(string newTitle,string dataType)
- {
- CurrentTitle = newTitle;
- switch (dataType)
- {
- case "1":
- up = true;
- UserDataCount = -1;
- UserDataCount = UpdataUser();
- up = false;
- break;
- case "2":
- //RoleUpdata();
- break;
- }
- //switch (CurrentTitle)
- //{
- // case "角色管理":
- // //RoleUpdata();
- // break;
- // case "用户管理":
- // up = true;
- // UserDataCount = -1;
- // UserDataCount = UpdataUser();
- // up = false;
- // break;
- //}
- }
- #region 业务
- public void AddBus()
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- var addResult = new BusWindow().ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- if (addResult != true) return;
- BusinessList = new ObservableCollection<Business>(settingProvider.GetAllBusinessApi());
- }
- public void EditBus(Business business)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new BusWindow(business).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- public void BusSetting(Business business)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new BusSettingWindow(settingProvider, business.id, business.name).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- public void BusDel(Business business)
- {
- try
- {
- //MessageBoxShow("删除", $"确定删除此条名为{business.name}的业务吗?") != true
- if (MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0043"), KeyToStringConvert.GetLanguageStringByKey("0537")) != true) return;
- string error = settingProvider.DelFuncAndBusApi(business.id);
- if (!string.IsNullOrEmpty(error))
- {
- //MessageBoxShow("操作失败", error);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0286"), error);
- return;
- }
- ToastShow(true);
- BusinessList.Remove(business);
- }
- catch (Exception ex)
- {
- ExLog(ex, "BusDel");
- //MessageBoxShow($"操作异常", ex.Message);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0291"), ex.Message);
- }
- }
- #endregion
- #region 功能
- private int Updata()
- {
- FuncList.Clear();
- SearchBusinessResponse searchBusinessResponse = new SearchBusinessResponse();
- searchBusinessResponse.current = PageCurrent;
- if (!string.IsNullOrEmpty(SearchName)) searchBusinessResponse.name = SearchName;
- searchBusinessResponse.size = PageSize;
- if (SearchState != -1) searchBusinessResponse.state = SearchState;
- if (!string.IsNullOrEmpty(SearchUrl)) searchBusinessResponse.url = SearchUrl;
- var k = ((PageCurrent - 1) * PageSize) + 1;
- var a = settingProvider.SearchFuncApi(searchBusinessResponse);
- Business currentBus = null;
- foreach (var item in a.records)
- {
- currentBus = BusinessList.FirstOrDefault(x => x.id == item.parentId);
- if (currentBus == null) item.ParentName = "/";
- else item.ParentName = currentBus.name;
- item.num = k++;
- FuncList.Add(item);
- }
- return a.total;
- }
- public void SetPageCurrent(int newPage)
- {
- if (up) return;
- PageCurrent = newPage;
- Updata();
- }
- public void SetSearchNameAndUrl(string newName, string newUrl)
- {
- if (SearchName == newName && SearchUrl == newUrl) return;
- SearchName = newName;
- SearchUrl = newUrl;
- up = true;
- DataCount = Updata();
- up = false;
- }
- public void SetSearchState(int newState, string newName, string newUrl)
- {
- if (SearchState == newState && SearchName == newName && SearchUrl == newUrl) return;
- SearchState = newState;
- SearchName = newName;
- SearchUrl = newUrl;
- up = true;
- DataCount = Updata();
- up = false;
- }
- public void AddFunc()
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- var addResult = new FuncWindow().ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- if (addResult != true) return;
- up = true;
- DataCount = -1;
- DataCount = Updata();
- up = false;
- }
- public void EdirFunc(Business business)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new FuncWindow(business).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- public void DelFunc(Business business)
- {
- try
- {
- //MessageBoxShow("删除", $"确定删除此项名为{business.name}的功能吗?") != true
- if (MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0043"), KeyToStringConvert.GetLanguageStringByKey("0537")) != true) return;
- string error = settingProvider.DelFuncAndBusApi(business.id);
- if (!string.IsNullOrEmpty(error))
- {
- //MessageBoxShow("操作失败", error);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0286"), error);
- return;
- }
- ToastShow(true);
- up = true;
- DataCount = -1;
- DataCount = Updata();
- up = false;
- }
- catch (Exception ex)
- {
- ExLog(ex, "DelFunc");
- //MessageBoxShow($"操作异常", ex.Message);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0291"), ex.Message);
- }
- }
- public void StateFunc(Business business)
- {
- try
- {
- string error = settingProvider.SateFuncApi(business.id, business.state);
- if (!string.IsNullOrEmpty(error))
- {
- //MessageBoxShow("操作失败", error);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0286"), error);
- return;
- }
- }
- catch (Exception ex)
- {
- ExLog(ex, "StateFunc");
- //MessageBoxShow($"操作异常", ex.Message);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0291"), ex.Message);
- }
- }
- #endregion
- #region 角色
- private void RoleUpdata()
- {
- RoleDataCount = -1;
- RoleDataCount = RoleList.Count;
- }
- public void SetRolePageCurrent(int newPage)
- {
- if (up) return;
- RolePageCurrent = newPage;
- var a = SearchRoleList.Skip((newPage - 1) * PageSize).Take(PageSize).ToList();
- var k = ((RolePageCurrent - 1) * PageSize) + 1;
- ShowRoleList.Clear();
- foreach (var item in a)
- {
- item.num = k++;
- ShowRoleList.Add(item);
- }
- }
- public void SearchRole(long roleId)
- {
- if (SearchRoleId == roleId) return;
- SearchRoleId = roleId;
- SearchRoleList.Clear();
- if (SearchRoleId == -1)
- {
- foreach (var item in RoleList)
- {
- SearchRoleList.Add(item);
- }
- }
- else
- {
- var a = RoleList.Where(x => x.id == roleId).ToList();
- foreach (var item in a)
- {
- SearchRoleList.Add(item);
- }
- }
- RoleDataCount = -1;
- RoleDataCount = SearchRoleList.Count;
- }
- public void AddRole()
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- var addResult = new RoleWindow().ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- if (addResult != true) return;
- RoleList.Clear();
- SearchRoleList.Clear();
- var list = settingProvider.GetAllRoleApi();
- int k = 1;
- foreach (var item in list)
- {
- item.num = k++;
- if (string.IsNullOrEmpty(item.remark))
- {
- item.remark = "---";
- }
- RoleList.Add(item);
- SearchRoleList.Add(item);
- }
- list.Clear();
- RoleDataCount = -1;
- RoleDataCount = SearchRoleList.Count;
- }
- public void EditRole(RoleEntity roleEntity)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new RoleWindow(roleEntity).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- public void RoleDel(long id, string name)
- {
- try
- {
- //MessageBoxShow("删除", $"确定删除此条名为{name}的角色吗?") != true
- if (MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0043"), KeyToStringConvert.GetLanguageStringByKey("0537")) != true) return;
- string error = settingProvider.DeleteRoleApi(id);
- if (!string.IsNullOrEmpty(error))
- {
- //MessageBoxShow("操作失败", error);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0286"), error);
- return;
- }
- ToastShow(true);
- RoleList.Clear();
- SearchRoleList.Clear();
- var list = settingProvider.GetAllRoleApi();
- int k = 1;
- foreach (var item in list)
- {
- item.num = k++;
- if (string.IsNullOrEmpty(item.remark))
- {
- item.remark = "---";
- }
- RoleList.Add(item);
- SearchRoleList.Add(item);
- }
- list.Clear();
- RoleDataCount = -1;
- RoleDataCount = SearchRoleList.Count;
- }
- catch (Exception ex)
- {
- ExLog(ex, "UserDel");
- //MessageBoxShow($"操作异常", ex.Message);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0291"), ex.Message);
- }
- }
- public void SettingRole(RoleEntity roleEntity)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new RoleSettingWindow(settingProvider, roleEntity.id).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- #endregion
- #region 用户
- private int UpdataUser()
- {
- UserList.Clear();
- SearchUserResponse searchUserResponse = new SearchUserResponse();
- if (!string.IsNullOrEmpty(SearchAccount)) searchUserResponse.account = SearchAccount;
- searchUserResponse.current = UserPageCurrent;
- if (SearchUserRoleId != -1) searchUserResponse.roleId = SearchUserRoleId;
- searchUserResponse.size = PageSize;
- if (!string.IsNullOrEmpty(SearchUserName)) searchUserResponse.username = SearchUserName;
- var k = ((UserPageCurrent - 1) * PageSize) + 1;
- var a = settingProvider.SearchUserApi(searchUserResponse);
- foreach (var item in a.records)
- {
- foreach (var roleItem in item.roles)
- {
- item.RoleString = $"{item.RoleString}{roleItem.name} ";
- }
- if (item.permissionDTOS != null)
- {
- foreach (var busItem in item.permissionDTOS)
- {
- item.BusString = $"{item.BusString}{busItem.name} ";
- }
- }
- item.num = k++;
- UserList.Add(item);
- }
- return a.total;
- }
- public void SetUserPageChange(int newPage)
- {
- if (up) return;
- UserPageCurrent = newPage;
- UpdataUser();
- }
- public void SetUserNameAndAccount(string uaername, string account)
- {
- if (SearchUserName == uaername && SearchAccount == account) return;
- SearchUserName = uaername;
- SearchAccount = account;
- up = true;
- UserDataCount = -1;
- UserDataCount = UpdataUser();
- up = false;
- }
- public void SetUserNameAndAccount(long newroleId, string uaername, string account)
- {
- if (SearchUserRoleId == newroleId && SearchUserName == uaername && SearchAccount == account) return;
- SearchUserName = uaername;
- SearchUserRoleId = newroleId;
- SearchAccount = account;
- up = true;
- UserDataCount = -1;
- UserDataCount = UpdataUser();
- up = false;
- }
- public void AddUser()
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new UserEntityWindow(RoleList).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- up = true;
- UserDataCount = -1;
- UserDataCount = UpdataUser();
- up = false;
- }
- public void EditUser(UserManageEntity userManageEntity)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new UserEntityWindow(userManageEntity, RoleList).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- public void UserBus(UserManageEntity userManageEntity)
- {
- try
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = true;
- new UserBusWindow(userManageEntity.permissionDTOS).ShowDialog();
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- catch (Exception)
- {
- AppData.Instance.MainWindowViewModel.MaskVisibility = false;
- }
- }
- public void UserRefPass(long id, string account)
- {
- try
- {
- //MessageBoxShow("重置密码", $"确定对{account}的登录密码进行重置吗?") != true
- if (MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey(""), $"确定对{account}的登录密码进行重置吗?") != true) return;
- string error = settingProvider.ResetUserPassWordApi(id);
- if (!string.IsNullOrEmpty(error))
- {
- //MessageBoxShow("操作失败", error);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0286"), error);
- return;
- }
- ToastShow(true);
- }
- catch (Exception ex)
- {
- ExLog(ex, "UserRefPass");
- //MessageBoxShow($"操作异常", ex.Message);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0291"), ex.Message);
- }
- }
- public void UserDel(long id, string name)
- {
- try
- {
- //MessageBoxShow("删除", $"确定删除登录名为{name}的用户吗?") != true
- if (MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0043"), KeyToStringConvert.GetLanguageStringByKey("0537")) != true) return;
- string error = settingProvider.DeleteUserApi(id);
- if (!string.IsNullOrEmpty(error))
- {
- //MessageBoxShow("操作失败", error);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0286"), error);
- return;
- }
- ToastShow(true);
- up = true;
- UserDataCount = -1;
- UserDataCount = UpdataUser();
- up = false;
- }
- catch (Exception ex)
- {
- ExLog(ex, "UserDel");
- //MessageBoxShow($"操作异常", ex.Message);
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0291"), ex.Message);
- }
- }
- #endregion
- }
- }
|