/******************************************************************************* * Copyright © 2020 HT.Cloud.Framework 版权所有 * Author: HT.Cloud * Description: WaterCloud快速开发平台 * Website: *********************************************************************************/ using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using HT.Cloud.Code; using HT.Cloud.Domain.SystemManage; using HT.Cloud.Service.SystemManage; namespace HT.Cloud.Web.Areas.SystemManage.Controllers { [Area("SystemManage")] public class ModuleController : BaseController { public ModuleService _service { get; set; } public ModuleButtonService _moduleButtonService { get; set; } [HttpGet] [HandlerAjaxOnly] public async Task GetTreeSelectJson() { var data = await _service.GetList(); data = data.Where(a => a.F_Target == "expand" && a.F_IsExpand == true).ToList(); var treeList = new List(); foreach (ModuleEntity item in data) { TreeSelectModel treeModel = new TreeSelectModel(); treeModel.id = item.F_Id; treeModel.text = item.F_FullName; treeModel.parentId = item.F_ParentId; treeList.Add(treeModel); } return Content(treeList.TreeSelectJson()); } [HandlerAjaxOnly] public async Task GetTreeGridJson(string keyword) { var data = await _service.GetLookList(); if (!string.IsNullOrEmpty(keyword)) { data = data.TreeWhere(t => t.F_FullName.Contains(keyword)); } return Success(data.Count, data); } [HttpGet] [HandlerAjaxOnly] public async Task GetMaxSortCodeText(string F_ParentId) { var data = await _service.GetMaxSortCode(F_ParentId); return Content(data); } [HttpGet] [HandlerAjaxOnly] public async Task GetSelectJson() { var data = await _service.GetList(); data = data.Where(a => a.F_Target == "expand" && a.F_IsExpand == true).ToList(); var treeList = new List(); foreach (ModuleEntity item in data) { TreeSelectModel treeModel = new TreeSelectModel(); treeModel.id = item.F_Id; treeModel.text = item.F_EnCode; treeModel.parentId = item.F_ParentId; treeList.Add(treeModel); } return Content(treeList.TreeSelectJson()); } [HttpGet] [HandlerAjaxOnly] public async Task GetSelectMunuJson(string keyword) { var data = (await _service.GetList()).Where(a => a.F_Target == "iframe").ToList(); if (!string.IsNullOrEmpty(keyword)) { data = data.Where(a => a.F_FullName.Contains(keyword)).ToList(); } List list = new List(); foreach (var item in data) { list.Add(new { id = item.F_Id, text = item.F_FullName }); } return Content(list.ToJson()); } [HttpGet] [HandlerAjaxOnly] public async Task GetSelectMunuBesidesJson(string keyword) { var data = await _service.GetBesidesList(); if (!string.IsNullOrEmpty(keyword)) { data = data.Where(a => a.F_FullName.Contains(keyword)).ToList(); } List list = new List(); foreach (var item in data) { list.Add(new { id = item.F_Id, text = item.F_FullName }); } return Content(list.ToJson()); } [HttpGet] [HandlerAjaxOnly] public async Task GetFormJson(string keyValue) { var data = await _service.GetLookForm(keyValue); return Content(data.ToJson()); } [HttpPost] [HandlerAjaxOnly] [HandlerAdmin(false)] public async Task SubmitForm(ModuleEntity moduleEntity, string keyValue) { if (string.IsNullOrEmpty(keyValue)) { moduleEntity.F_DeleteMark = false; moduleEntity.F_AllowEdit = false; moduleEntity.F_AllowDelete = false; moduleEntity.F_IsPublic = false; } else { if (keyValue == moduleEntity.F_ParentId) { throw new Exception("父级不能是自身"); } //前端传值为null,更新的时候null不更新 if (moduleEntity.F_Icon == null) { moduleEntity.F_Icon = ""; } } try { if (moduleEntity.F_ParentId == "0") { moduleEntity.F_Layers = 1; } else { moduleEntity.F_Layers = (await _service.GetForm(moduleEntity.F_ParentId)).F_Layers + 1; } if (!string.IsNullOrEmpty(moduleEntity.F_UrlAddress)) { var templist = await _service.GetList(); if (!string.IsNullOrEmpty(keyValue)) { templist = templist.Where(a => a.F_Id != keyValue).ToList(); } if (templist.Find(a => a.F_UrlAddress == moduleEntity.F_UrlAddress) != null) throw new Exception("菜单地址不能重复!"); } else { moduleEntity.F_UrlAddress = null; } await _service.SubmitForm(moduleEntity, keyValue); return await Success("操作成功。", "", keyValue); } catch (Exception ex) { return await Error(ex.Message, "", keyValue); } } [HttpPost] [HandlerAjaxOnly] public async Task SubmitUpdateForm(string F_Id, int SortCode) { try { await _service.SubmitUpdateForm(F_Id, SortCode); return await Success("操作成功。", "", F_Id); } catch (Exception ex) { return await Error(ex.Message, "", F_Id); } } [HttpPost] [HandlerAjaxOnly] [HandlerAuthorize] [HandlerAdmin(false)] public async Task DeleteForm(string keyValue) { try { await _service.DeleteForm(keyValue); return await Success("操作成功。", "", keyValue, DbLogType.Delete); } catch (Exception ex) { return await Error(ex.Message, "", keyValue, DbLogType.Delete); } } } }