123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- using Prism.Commands;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Linq;
- using Venus_Core;
- using Venus_Unity;
- using RoleDefine = Venus_MainPages.Roles.RoleDefine;
- using Menu = Venus_MainPages.Roles.Menu;
- using Venus_MainPages.Views;
- using Venus_MainPages.Roles;
- using System.Windows.Data;
- using WPF.Themes.UserControls;
- using System.IO;
- using MECF.Framework.Common.DataCenter;
- namespace Venus_MainPages.ViewModels
- {
- internal class RoleViewModel : BindableBase
- {
- #region 私有属性
- List<VenusMenu> m_venusMenus = new List<VenusMenu>();
- //ObservableCollection<Menu> m_Menus = new ObservableCollection<Menu>();
- ICollectionView vm;
- ObservableCollection<string> m_Roles = new ObservableCollection<string>();
- ObservableCollection<RoleDefine> m_RoleDefines = new ObservableCollection<RoleDefine>();
- private bool firstLoad = true;
- private RoleView roleView;
- private RoleDefine m_CurrentRoleDefine;
- #endregion
- #region 依赖项属性
- public List<VenusMenu> VenusMenus
- {
- get { return m_venusMenus; }
- set
- {
- SetProperty(ref m_venusMenus, value);
- }
- }
- //public ObservableCollection<Menu> Menus
- //{
- // get { return m_Menus; }
- // set
- // {
- // SetProperty(ref m_Menus, value);
- // }
- //}
- public ObservableCollection<string> Roles
- {
- get
- {
- return m_Roles;
- }
- set
- {
- SetProperty(ref m_Roles, value);
- }
- }
- public ObservableCollection<RoleDefine> RoleDefines
- {
- get { return m_RoleDefines; }
- set
- {
- SetProperty(ref m_RoleDefines, value);
- }
- }
- public RoleDefine CurrentRoleDefine
- {
- get { return m_CurrentRoleDefine; }
- set
- {
- SetProperty(ref m_CurrentRoleDefine, value);
- }
- }
- #endregion
- #region 命令
- private DelegateCommand _SaveCommand;
- public DelegateCommand SaveCommand =>
- _SaveCommand ?? (_SaveCommand = new DelegateCommand(OnSave));
- private DelegateCommand<Object> _LoadedCommand;
- public DelegateCommand<Object> LoadedCommand =>
- _LoadedCommand ?? (_LoadedCommand = new DelegateCommand<Object>(OnLoaded));
- #endregion
- string uiConfig;
- public RoleViewModel()
- {
- string configPath = "";
- uiConfig = "";
- object obj = QueryDataClient.Instance.Service.GetData("System.ConfigType");
- var configType = (ConfigType)Convert.ToInt32(obj);
- if (configType == ConfigType.Other || configType == ConfigType.Kepler2300 || configType == ConfigType.Kepler2200)
- {
- uiConfig = "_Kepler";
- }
- else if (configType == ConfigType.VenusSE || configType == ConfigType.VenusDE)
- {
- uiConfig = "_VenusSE";
- }
- //else if (configType == ConfigType.Venus)
- //{
- // uiConfig = "_Venus";
- //}
- if (File.Exists($"Config/UIMenu{uiConfig}.json"))
- {
- configPath = $"Config/UIMenu{uiConfig}.json";
- }
- else if (File.Exists($"Config/Menu{uiConfig}.json"))
- {
- configPath = $"Config/Menu{uiConfig}.json";
- }
- else
- {
-
- }
- RoleDefines = SerializeHelper.Instance.ReadFromJsonFile<ObservableCollection<RoleDefine>>(configPath);
- for (int i = 0; i < RoleDefines.Count; i++)
- {
- Roles.Add(RoleDefines[i].RoleName);
- }
- //Roles.Add("Manager");
- //Roles.Add("Engineer");
- //Roles.Add("Technician");
- //Roles.Add("Operator");
- }
- private void OnSave()
- {
- //for (int i = 0; i < RoleDefines.Count; i++)
- //{
- // for (int j = 0; j < RoleDefines[i].Menus.Count; j++)
- // {
- // RoleDefines[i].Menus[j].Permission = MenuPermission.ReadWrite;
- // }
- //}
- SerializeHelper.Instance.WriteToJsonFile<List<RoleDefine>>(RoleDefines.ToList(), $"Config/UIMenu{uiConfig}.json");
- }
- private void OnLoaded(Object myrecipeView)
- {
- if (firstLoad == true)
- {
- roleView = myrecipeView as RoleView;
- roleView.roleTreeView.SelectedItemChanged += RoleTreeView_SelectedItemChanged;
- }
- }
- private void RoleTreeView_SelectedItemChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<object> e)
- {
- int index = Roles.IndexOf(e.NewValue.ToString());
- CurrentRoleDefine = RoleDefines[index];
- vm = CollectionViewSource.GetDefaultView(CurrentRoleDefine.Menus);
- vm.GroupDescriptions.Clear();
- vm.GroupDescriptions.Add(new PropertyGroupDescription("FirstMenu"));
- }
- }
- }
|