/******************************************************************************* * Copyright © 2018 HT.Cloud 版权所有 * Author: HT.Cloud * Description: HT.Cloud * 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 AreaController : BaseController { public AreaService _areaService { get; set; } [HttpGet] [HandlerAjaxOnly] public async Task GetTreeSelectJson() { var data = await _areaService.GetList(); //默认三级区域 data = data.Where(a => a.F_Layers < 3).ToList(); var treeList = new List(); foreach (AreaEntity 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()); } [HttpGet] [HandlerAjaxOnly] public async Task GetSelectJson(string keyValue) { var data = await _areaService.GetList(); data = data.Where(a => a.F_ParentId == keyValue).ToList(); return Content(data.ToJson()); } [HttpGet] [HandlerAjaxOnly] public async Task GetTreeGridJson(string keyword) { var data = await _areaService.GetLookList(); if (!string.IsNullOrEmpty(keyword)) { data = data.TreeWhere(t => t.F_FullName.Contains(keyword)); } return Success(data.Count, data); } [HttpGet] [HandlerAjaxOnly] public async Task GetListJson(string keyValue, string keyword) { var data = await _areaService.GetLookList(); var result = new List(); if (string.IsNullOrEmpty(keyValue)) { keyValue = "0"; } if (!string.IsNullOrEmpty(keyword)) { result = data.TreeWhere(t => t.F_FullName.Contains(keyword) || t.F_EnCode.Contains(keyword)); } else { result = data; } result = result.Where(t => t.F_ParentId == keyValue).ToList(); if (result.Count == 0) { result = data.Where(t => t.F_ParentId == keyValue).ToList(); } foreach (var item in result) { item.haveChild = data.Where(a => a.F_ParentId == item.F_Id).Any() ? true : false; } return Success(data.Count, result); } [HttpGet] [HandlerAjaxOnly] public async Task GetFormJson(string keyValue) { var data = await _areaService.GetLookForm(keyValue); return Content(data.ToJson()); } [HttpPost] [HandlerAjaxOnly] public async Task SubmitForm(AreaEntity areaEntity, string keyValue) { if (areaEntity.F_ParentId == "0") { areaEntity.F_Layers = 1; } else { areaEntity.F_Layers = (await _areaService.GetForm(areaEntity.F_ParentId)).F_Layers + 1; } try { await _areaService.SubmitForm(areaEntity, keyValue); return await Success("操作成功。", "", keyValue); } catch (Exception ex) { return await Error(ex.Message, "", keyValue); } } [HttpPost] [HandlerAjaxOnly] [HandlerAuthorize("SystemManage:Area:Delete")] public async Task DeleteForm(string keyValue) { try { await _areaService.DeleteForm(keyValue); return await Success("操作成功。", "", keyValue, DbLogType.Delete); } catch (Exception ex) { return await Error(ex.Message, "", keyValue, DbLogType.Delete); } } } }