Files
HTCloud/HT.Cloud.Web/Areas/SystemManage/Controllers/ModuleController.cs
2023-03-03 16:07:50 +08:00

212 lines
5.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
* 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<ActionResult> GetTreeSelectJson()
{
var data = await _service.GetList();
data = data.Where(a => a.F_Target == "expand" && a.F_IsExpand == true).ToList();
var treeList = new List<TreeSelectModel>();
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<ActionResult> 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<ActionResult> GetMaxSortCodeText(string F_ParentId)
{
var data = await _service.GetMaxSortCode(F_ParentId);
return Content(data);
}
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetSelectJson()
{
var data = await _service.GetList();
data = data.Where(a => a.F_Target == "expand" && a.F_IsExpand == true).ToList();
var treeList = new List<TreeSelectModel>();
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<ActionResult> 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<object> list = new List<object>();
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<ActionResult> GetSelectMunuBesidesJson(string keyword)
{
var data = await _service.GetBesidesList();
if (!string.IsNullOrEmpty(keyword))
{
data = data.Where(a => a.F_FullName.Contains(keyword)).ToList();
}
List<object> list = new List<object>();
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<ActionResult> GetFormJson(string keyValue)
{
var data = await _service.GetLookForm(keyValue);
return Content(data.ToJson());
}
[HttpPost]
[HandlerAjaxOnly]
[HandlerAdmin(false)]
public async Task<ActionResult> 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<ActionResult> 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<ActionResult> 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);
}
}
}
}