102 lines
3.2 KiB
C#
102 lines
3.2 KiB
C#
|
|
using InSituLaboratory.Base;
|
|||
|
|
using InSituLaboratory.Entities;
|
|||
|
|
using InSituLaboratory.IService;
|
|||
|
|
using InSituLaboratory.Models;
|
|||
|
|
using Prism.Events;
|
|||
|
|
using Prism.Regions;
|
|||
|
|
using Prism.Services.Dialogs;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Collections.ObjectModel;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.Windows;
|
|||
|
|
|
|||
|
|
namespace InSituLaboratory.ViewModels.Pages
|
|||
|
|
{
|
|||
|
|
public class MenuManagementViewModel : ViewModelBase
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
IMenuService _menuService;
|
|||
|
|
IDialogService _dialogService;
|
|||
|
|
IEventAggregator _eventAggregator;
|
|||
|
|
public MenuManagementViewModel(IRegionManager regionManager, IMenuService menuService, IDialogService dialogService, IEventAggregator eventAggregator) : base(regionManager)
|
|||
|
|
{
|
|||
|
|
PageTitle = "菜单数据维护";
|
|||
|
|
|
|||
|
|
_menuService = menuService;
|
|||
|
|
_dialogService = dialogService;
|
|||
|
|
_eventAggregator = eventAggregator;
|
|||
|
|
|
|||
|
|
Refresh();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public ObservableCollection<MenuItemModel> Menus { get; set; } =
|
|||
|
|
new ObservableCollection<MenuItemModel>();
|
|||
|
|
List<Entities.SysMenu> origMenus;
|
|||
|
|
|
|||
|
|
string _searchKey;
|
|||
|
|
|
|||
|
|
//搜索 刷新
|
|||
|
|
public override void Refresh()
|
|||
|
|
{
|
|||
|
|
Menus.Clear();
|
|||
|
|
origMenus = _menuService.GetMenuList(SearchKey).ToList();
|
|||
|
|
MenuHelper.FillMenus(Menus, null, origMenus);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//新建 编辑菜单
|
|||
|
|
public override void DoModify(object model)
|
|||
|
|
{
|
|||
|
|
DialogParameters ps = new DialogParameters();
|
|||
|
|
ps.Add("model", model);
|
|||
|
|
_dialogService.ShowDialog("ModifyMenuView", ps, result =>
|
|||
|
|
{
|
|||
|
|
// 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
|
|||
|
|
if (result.Result == ButtonResult.OK)
|
|||
|
|
{
|
|||
|
|
this.Refresh();
|
|||
|
|
|
|||
|
|
//通知左侧树状图菜单变化
|
|||
|
|
_eventAggregator.GetEvent<RefreshMenuEvent>().Publish();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="model"></param>
|
|||
|
|
public override void DoDelete(object model)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|||
|
|
{
|
|||
|
|
//物理删除
|
|||
|
|
_menuService.Delete<SysMenu>((model as MenuItemModel).MenuId);
|
|||
|
|
|
|||
|
|
//逻辑删除
|
|||
|
|
//通过特定字段进行数据过滤
|
|||
|
|
//以下方法存在问题,菜单列表刷新需要条件过滤
|
|||
|
|
//var entity = _menuService.Find<SysMenu>((model as MenuItemModel).MenuId);
|
|||
|
|
//entity.State = 0;
|
|||
|
|
//_menuService.Update<SysMenu>(entity);
|
|||
|
|
|
|||
|
|
MessageBox.Show("删除完成!", "提示");
|
|||
|
|
|
|||
|
|
this.Refresh();
|
|||
|
|
|
|||
|
|
_eventAggregator.GetEvent<RefreshMenuEvent>().Publish();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
MessageBox.Show(ex.Message, "提示");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|