Former-commit-id: 71b918dd1a31f3f9518e188263d11e72e107d118
Former-commit-id: b287019e10c00dc789991f5a210e097734024ea5
1.0
wanggang 5 years ago
parent 7e0a86cabf
commit 132a37b02f

@ -5,9 +5,9 @@ namespace Infrastructure.Application
public interface IPagedList
{
int DefaultPageSize { get; set; }
int PageIndex { get; set; }
int PageNumber { get; set; }
int PageSize { get; set; }
int TotalCount { get; set; }
int TotalRow { get; set; }
IEnumerable<int> GetPageIndexs();

@ -8,7 +8,7 @@ namespace Infrastructure.Application
{
public PagedList()
{
PageIndex = 1;
PageNumber = 1;
PageSize = this.DefaultPageSize;
}
@ -16,13 +16,13 @@ namespace Infrastructure.Application
public int DefaultPageSize { get; set; } = 20;
[ScaffoldColumn(false)]
public int PageIndex { get; set; }
public int PageNumber { get; set; }
[ScaffoldColumn(false)]
public int PageSize { get; set; }
[ScaffoldColumn(false)]
public int TotalCount { get; set; }
public int TotalRow { get; set; }
public int[] GetPageSizes()
{
@ -31,17 +31,17 @@ namespace Infrastructure.Application
public int PageCount()
{
return (int)Math.Ceiling(this.TotalCount / (double)this.PageSize);
return (int)Math.Ceiling(this.TotalRow / (double)this.PageSize);
}
public bool HasPrev()
{
return PageIndex > 1;
return PageNumber > 1;
}
public bool HasNext()
{
return PageIndex < PageCount();
return PageNumber < PageCount();
}
public IEnumerable<int> GetPageIndexs()
@ -49,9 +49,9 @@ namespace Infrastructure.Application
var pageCount = PageCount();
var maxLinks = 10;
var left = maxLinks / 2;
var start = PageIndex - left;
var start = PageNumber - left;
start = start > 1 ? start : 1;
var end = PageIndex + (maxLinks - left - 1);
var end = PageNumber + (maxLinks - left - 1);
end = end > pageCount ? pageCount : end;
if (start == 1 && end < pageCount)
{
@ -77,7 +77,7 @@ namespace Infrastructure.Application
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (PageIndex < 1)
if (PageNumber < 1)
{
yield return new ValidationResult("当前页索引必须大于等于1");
}

@ -36,7 +36,10 @@
if(value is not null&&value is string selected)
{
var items = list.Items.Cast<SelectListItem>().ToList();
items.Add(new SelectListItem { Value=selected,Text=selected});
if (!items.Any(o => o.Value == selected))
{
items.Add(new SelectListItem { Value = selected, Text = selected });
}
list = new SelectList(items, "Value", "Text", Model);
}
@Html.DropDownList("", list, "请选择", new { @class = select2Class })

@ -2,33 +2,36 @@
@{
var links = Model.GetPageIndexs();
var url = Url.Content("~") + this.Context.Request.Path + this.Context.Request.QueryString;
var pageIndexParam = "PageIndex";
var pageIndexParam = "PageNumber";
var empty = "javascript:;";
var firstUrl = url.RemoveParam(pageIndexParam);
var prevUrl = Model.PageIndex - 1 >= 1 ? url.SetParam(pageIndexParam, Model.PageIndex - 1) : empty;
var lastUrl = Model.TotalCount > 0 ? url.SetParam(pageIndexParam, Model.PageCount()) : empty;
var nextUrl = Model.PageIndex + 1 <= Model.PageCount() ? url.SetParam(pageIndexParam, Model.PageIndex + 1) : empty;
var prevUrl = Model.PageNumber - 1 >= 1 ? url.SetParam(pageIndexParam, Model.PageNumber - 1) : empty;
var lastUrl = Model.TotalRow > 0 ? url.SetParam(pageIndexParam, Model.PageCount()) : empty;
var nextUrl = Model.PageNumber + 1 <= Model.PageCount() ? url.SetParam(pageIndexParam, Model.PageNumber + 1) : empty;
}
<div class="row">
<div class="col-sm-12 col-md-5"><div class="dataTables_info">共<span style="color:#000;font-weight:bold;"> @(Model.TotalCount) </span>条 当前<span style="color:#000;"> @(Model.PageIndex)</span>/@(Model.PageCount())</div></div> <div class="col-sm-12 col-md-7">
<div class="col-sm-4">
<div class="dataTables_info">共<span style="color:#000;font-weight:bold;"> @(Model.TotalRow) </span>条 当前<span style="color:#000;"> @(Model.PageNumber)</span>/@(Model.PageCount())</div>
</div>
<div class="col-sm-8">
<div class="dataTables_paginate paging_simple_numbers">
<ul class="pagination pagination-sm m-0 float-right">
<li class="page-item"><a class="page-link" href="@firstUrl">首页</a></li>
<li class="page-item"><a class="page-link" href="@prevUrl">上一页</a></li>
@foreach (var item in links)
{
if (item == Model.PageIndex)
if (item == Model.PageNumber)
{
<li class="page-item active"><a class="page-link" href="@(item==1?firstUrl:url.SetParam(pageIndexParam,item))">@item</a></li>
}
<li class="page-item active"><a class="page-link" href="@(item==1?firstUrl:url.SetParam(pageIndexParam,item))">@item</a></li>
}
else
{
<li class="page-item"><a class="page-link" href="@url.SetParam(pageIndexParam,item)">@item</a></li>
}
<li class="page-item"><a class="page-link" href="@url.SetParam(pageIndexParam,item)">@item</a></li>
}
}
<li class="page-item"><a class="page-link" href="@nextUrl">下一页</a></li>
<li class="page-item"><a class="page-link" href="@lastUrl">末页</a></li>
<li class="page-item"><a class="page-link" href="javascript:;">@Model.PageIndex / @Model.PageCount()</a></li>
<li class="page-item"><a class="page-link" href="javascript:;">@Model.PageNumber / @Model.PageCount()</a></li>
<li class="page-item">
@Html.DropDownListFor(o => Model.PageSize, Model.GetPageSizes().Select(o => new SelectListItem { Text = o.ToString(), Value = o.ToString() }), new { @class = "page-link" })
</li>

@ -39,9 +39,9 @@ namespace Infrastructure.Web.Mvc
//}
query = this.Include(query);
query = this.Query(model, query);
model.TotalCount = query.Count();
model.TotalRow = query.Count();
model.List.AddRange(query.Skip(model.PageSize * (model.PageIndex - 1))
model.List.AddRange(query.Skip(model.PageSize * (model.PageNumber - 1))
.Take(model.PageSize)
.ToList()
.Select(o =>

@ -41,9 +41,9 @@ namespace Infrastructure.Web.Mvc
//}
query = this.Include(query);
query = this.Query(model, query);
model.TotalCount = query.Count();
model.TotalRow = query.Count();
model.List.AddRange(query.Skip(model.PageSize * (model.PageIndex - 1))
model.List.AddRange(query.Skip(model.PageSize * (model.PageNumber - 1))
.Take(model.PageSize)
.ToList()
.Select(o =>

@ -1,10 +1,16 @@
using Infrastructure.Data;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using TeacherExt.Entities;
using TeacherExt.Models;
@ -55,18 +61,18 @@ namespace TeacherExt.Controllers
[HttpGet]
[Route("/")]
public IActionResult Index(int bureau_id, string person_name, int pageNumber = 1, int pageSize = 20)
public IActionResult Index(QueryTeacherModel model)
{
var personQuery = this._personRepo.ReadOnlyTable();
var organQuery = this._organizationRepo.ReadOnlyTable();
if (!string.IsNullOrEmpty(person_name))
if (!string.IsNullOrEmpty(model.person_name))
{
personQuery = personQuery.Where(o => o.RealName.Contains(person_name));
personQuery = personQuery.Where(o => o.RealName.Contains(model.person_name));
}
var organQuery = this._organizationRepo.ReadOnlyTable();
var query = from person in personQuery
join organ in organQuery on person.BureauId equals organ.Id
join organ2 in organQuery on person.OrganId equals organ2.Id
where (person.IsUsed && person.BureauId == bureau_id)
where (person.IsUsed && person.BureauId == model.bureau_id)
orderby person.BureauId,person.CreateAt
select new ListItem
{
@ -78,35 +84,94 @@ namespace TeacherExt.Controllers
org_name = organ2.Name,
person_id =person.Id,
};
if (!string.IsNullOrEmpty(person_name))
{
query.Where(o => o.person_name.Contains(person_name));
}
var count = query.Count();
var list = query
.Skip(pageSize * (pageNumber - 1))
.Take(pageSize)
.Skip(model.PageSize * (model.PageNumber - 1))
.Take(model.PageSize)
.ToList();
var nations = this.GetItems("ETHNIC_GROUP");
foreach (var item in list)
{
item.nation_name = nations.FirstOrDefault(o => o.Code == item.nation)?.Remark;
}
var model = new
model.TotalRow = count;
model.List.AddRange(list);
if (!model.HeaderSelectList.Any())
{
List = list,
PageNumber = pageNumber,
PageSize = pageSize,
TotalRow = count
};
return Json(model);
////return Json(this._directoryRepo.ReadOnlyTable().Where(o=>o.IsUsed&&o.Category== "Nationality").OrderBy(o=>o.Order));
//var model = this._personRepo.ReadOnlyTable().Where(o => o.IdentityNumber != null).FirstOrDefault();
////var bytes = HexStringToByteArray(model);
////var output = AesDecrypt(bytes);
//var value = _helper.Decrypt(model.IdentityNumber);
//var en = _helper.Encrypt(value);
//return Content(value);
model.HeaderSelectList= typeof(EditTeacherModel).GetProperties()
.Select(o => o.GetCustomAttribute<ExcelHeaderAttribute>())
.Where(o => o != null)
.Select(o => new SelectListItem {
Value = o.Header,
Text = o.Headers.Last().Key.Replace("\r\n", ""),
Selected = Request.Method.ToLower()=="get"?true: model.Headers.Any(h=>h==o.Header)
})
.ToList();
}
var organs = this._organizationRepo.ReadOnlyTable().Where(o => o.AreaId == 302705).ToList();
var bureau = organs.FirstOrDefault(o => o.Name == "城中区教育局");
bureau.Children = organs.Where(o => o.Name != "城中区教育局").ToList();
model.Organs.Add(bureau);
return Result(model);
}
[HttpPost]
[Route("/")]
public IActionResult Index(QueryTeacherModel model, bool isPost)
{
var result = this.Index(model);
return result;
}
[HttpGet]
public IActionResult Edit(int id)
{
var personQuery = this._personRepo.ReadOnlyTable();
var organQuery = this._organizationRepo.ReadOnlyTable();
var query = from person in personQuery
join organ2 in organQuery on person.OrganId equals organ2.Id
where person.Id == id
//orderby person.BureauId, person.CreateAt
select new EditTeacherModel
{
Id=id,
//
Organ = organ2.Name,
//
RealName = person.RealName,
//
Birthday = person.Birthday,
Sex = person.Sex,
Nationality = person.Nationality,
UserType=person.UserType,
//
IdNumber = person.IdentityNumber,
NativePlace = person.NativePlace,
Nation = person.Nation,
};
var model = query.First();
model.IdNumber = _helper.Decrypt(model.IdNumber);
ViewData.SelectList(o => model.Sex, () => this.GetSex(model.Sex));
ViewData.SelectList(o => model.Nationality, () => this.GetSelectList("Nationality", model.Nationality));
ViewData.SelectList(o => model.UserType, () => this.GetSelectList("PERSON_STATUS", model.UserType));
ViewData.SelectList(o => model.Nation, ()=>this.GetSelectList("ETHNIC_GROUP", model.Nation));
//var entity = this._userRepo.ReadOnlyTable()
// .Include(o => o.Organ)
// .Include(o => o.Teacher)
// .FirstOrDefault(o => o.UserName == userName);
//var model = entity.To<EditTeacherModel>();
//if (entity.Teacher != null)
//{
// model.From(entity.Teacher);
//}
//model.UserName = entity.UserName;
//model.UserId = entity.Id;
//model.Organ = entity.Organ.Name;
//model.RealName = entity.RealName;
//this.EntityToModel(entity.Teacher, model);
//this.ToEditModel(entity.Teacher, model);
return Result<EditTeacherModel>(model);
}
//[HttpGet]
@ -201,27 +266,6 @@ namespace TeacherExt.Controllers
// return View(model);
//}
//[HttpGet]
//public IActionResult Edit(string userName)
//{
// var entity = this._userRepo.ReadOnlyTable()
// .Include(o => o.Organ)
// .Include(o => o.Teacher)
// .FirstOrDefault(o => o.UserName == userName);
// var model = entity.To<EditTeacherModel>();
// if (entity.Teacher != null)
// {
// model.From(entity.Teacher);
// }
// model.UserName = entity.UserName;
// model.UserId = entity.Id;
// model.Organ = entity.Organ.Name;
// model.RealName = entity.RealName;
// this.EntityToModel(entity.Teacher, model);
// this.ToEditModel(entity.Teacher, model);
// return Result<EditTeacherModel>(model);
//}
//[HttpPost]
//public IActionResult Add([FromForm] EditTeacherModel model)
//{
@ -601,13 +645,13 @@ namespace TeacherExt.Controllers
// }.ToSelectList(selected);
//}
//private SelectList GetSex(string selected)
//{
// return new string[] {
// "男",
// "女",
// }.ToSelectList(selected);
//}
private SelectList GetSex(string selected)
{
return new string[] {
"男",
"女",
}.ToSelectList(selected);
}
//private SelectList GetNation(string selected)
//{
@ -897,20 +941,37 @@ namespace TeacherExt.Controllers
// }.ToSelectList(selected);
//}
//private IActionResult Result<TEditModel>(object model)
//{
// if (this.IsJsonRequest())
// {
// return Json(new
// {
// schema = this.GetJsonSchema<TEditModel>(),
// model,
// errors = ModelState.Where(o => o.Value.ValidationState == ModelValidationState.Invalid),
// data = ViewData
// }, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
// }
// return View(model);
//}
private IActionResult Result<T>(T model)
{
if (this.IsJsonRequest())
{
return Json(new
{
schema = this.GetJsonSchema<T>(),
model,
errors = ModelState.Where(o => o.Value.ValidationState == ModelValidationState.Invalid),
data = ViewData
}, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
}
return View(model);
}
/// <summary>
/// 民族ETHNIC_GROUP
/// </summary>
/// <param name="category"></param>
/// <param name="selected"></param>
/// <returns></returns>
private SelectList GetSelectList(string category,object selected)
{
var list = this._directoryRepo.ReadOnlyTable()
.Where(o=>o.IsUsed)
.Where(o => o.Category == category)
.OrderBy(o => o.Order)
.Select(o=>new SelectListItem { Text=o.Remark,Value=o.Code })
.ToList();
return new SelectList(list, nameof(SelectListItem.Value), nameof(SelectListItem.Text), selected);
}
private List<DictionaryItem> GetItems(string category)
{
return this._directoryRepo.ReadOnlyTable()

@ -34,6 +34,9 @@ namespace TeacherExt.Data
modelBuilder.Entity<Organization>().ToTable("t_base_organization");
modelBuilder.Entity<Organization>().HasKey(o => o.Id);
modelBuilder.Entity<Organization>().Property(o => o.Id).HasColumnName("ORG_ID").ValueGeneratedOnAdd();
modelBuilder.Entity<Organization>().Property(o => o.AreaId).HasColumnName("AREA_ID");
modelBuilder.Entity<Organization>().Property(o => o.OrganId).HasColumnName("ORG_ID");
modelBuilder.Entity<Organization>().Property(o => o.OrganType).HasColumnName("ORG_TYPE");
modelBuilder.Entity<Organization>().Property(o => o.Name).HasColumnName("ORG_NAME");
modelBuilder.Entity<Organization>().Property(o => o.IsUsed).HasColumnName("B_USE").HasConversion(o => o ? 1 : 0, o => o == 1);
@ -54,6 +57,9 @@ namespace TeacherExt.Data
modelBuilder.Entity<Person>().Property(o => o.CreateAt).HasColumnName("create_time");
modelBuilder.Entity<Person>().Property(o => o.Nation).HasColumnName("NATION");
modelBuilder.Entity<Person>().Property(o => o.NativePlace).HasColumnName("placeofbirth");
modelBuilder.Entity<Person>().Property(o => o.Birthday).HasColumnName("birthday");
modelBuilder.Entity<Person>().Property(o => o.Nationality).HasColumnName("nationality");
modelBuilder.Entity<Person>().Property(o => o.UserType).HasColumnName("person_status");
//t_base_person_title
modelBuilder.Entity<PersonTitle>().ToTable("t_base_person_title");

@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
namespace TeacherExt.Entities
{
@ -7,7 +8,12 @@ namespace TeacherExt.Entities
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int AreaId { get; set; }
public int OrganId { get; set; }
public int OrganType { get; set; }
public string Name { get; set; }
public bool IsUsed { get; set; }
[NotMapped]
public List<Organization> Children { get; set; } = new List<Organization>();
}
}

@ -31,5 +31,8 @@ namespace TeacherExt.Entities
public DateTime CreateAt { get; set; }
public string Nation { get; set; }
public string NativePlace { get; set; }
public DateTime? Birthday { get; set; }
public int Nationality { get; set; }
public int UserType { get; set; }
}
}

@ -11,25 +11,12 @@ namespace TeacherExt.Models
[Display(Name = "教师")]
public class EditTeacherModel : IValidatableObject
{
[SkipSearch, SkipList]
[ReadOnly(true)]
[ScaffoldColumn(false)]
[Display(Order = 0, Name = "用户名")]
public string UserName { get; set; }
[SkipSearch, SkipList]
[HiddenInput]
[ReadOnly(true)]
[ScaffoldColumn(false)]
[Display(Order = 1, Name = "用户Id")]
public Guid UserId { get; set; }
[HiddenInput]
[SkipSearch, SkipList]
[ReadOnly(true)]
[ScaffoldColumn(false)]
[Display(Order = 2, Name = "Id")]
public Guid Id { get; set; } = Guid.NewGuid();
public int Id { get; set; }
[ReadOnly(true)]
[Required(ErrorMessage = "必填项")]
@ -64,7 +51,7 @@ namespace TeacherExt.Models
[SelectList]
[Display(Order = 30, Name = "人员类别")]
[Required(ErrorMessage = "必填项")]
public string UserType { get; set; }
public int UserType { get; set; }
[ExcelHeader("性别")]
[SkipSearch]
@ -73,6 +60,12 @@ namespace TeacherExt.Models
[Required(ErrorMessage = "必填项")]
public string Sex { get; set; }
[SkipSearch]
[SelectList]
[Display(Order = 41, Name = "国籍")]
[Required(ErrorMessage = "必填项")]
public int Nationality { get; set; }
[ExcelHeader("出生年月")]
[SkipSearch, SkipList]
[DataType(DataType.Date)]

@ -1,19 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace TeacherExt.Models
namespace TeacherExt.Models
{
public class ListItem
{
public string person_name { get; internal set; }
public string sex { get; internal set; }
public string nation { get; internal set; }
public string nation_name { get; internal set; }
public string placeofbirth { get; internal set; }
public string org_name { get; internal set; }
public int person_id { get; internal set; }
public string bureau_name { get; internal set; }
public string RequestEditStatus { get; set; } = "未提交";
public string CheckStatus { get; set; } = "未申请";
public string person_name { get; set; }
public string sex { get; set; }
public string nation { get; set; }
public string nation_name { get; set; }
public string placeofbirth { get; set; }
public string org_name { get; set; }
public int person_id { get; set; }
public string bureau_name { get; set; }
}
}
}

@ -1,22 +1,26 @@
using Infrastructure.Application;
using System;
using Microsoft.AspNetCore.Mvc.Rendering;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using TeacherExt.Entities;
namespace TeacherExt.Models
{
public class QueryTeacherModel: PagedList<EditTeacherModel>
public class QueryTeacherModel : PagedList<ListItem>
{
[Display(Name="姓名")]
public string RealName { get; set; }
public int bureau_id { get; set; } = 302705;
[Display(Name = "姓名")]
public string person_name { get; set; }
[Display(Name = "申请状态")]
public string RequestEditStatus { get; set; }
[Display(Name = "审核状态")]
public string CheckStatus { get; set; }
public Guid? OrganId { get; set; }
public List<Organ> Organs { get; set; } = new List<Organ>();
public List<string> Headers { get; set; } = new List<string>();
public List<SelectListItem> HeaderSelectList { get; set; } = new List<SelectListItem>();
public List<Organization> Organs = new List<Organization>();
}
}
}

@ -6,7 +6,7 @@
var index = 0;
}
<div class="row">
<div class="col-sm-2">
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<ul class="navbar-nav">
@ -15,7 +15,7 @@
</div>
</div>
</div>
<div class="col-sm-10">
<div class="col-sm-8">
<form method="post" action="/" target="_self">
<div class="card">
<div class="card-header">
@ -39,9 +39,9 @@
</div>
<div class="col-sm-4">
<div class="form-group row">
@Html.LabelFor(o => o.RealName, new { @class = "col-sm-4 col-form-label" })
@Html.LabelFor(o => o.person_name, new { @class = "col-sm-4 col-form-label" })
<div class="col-sm-8">
@Html.EditorFor(o => o.RealName)
@Html.EditorFor(o => o.person_name)
</div>
</div>
</div>
@ -51,6 +51,7 @@
<button type="button" id="query" class="btn btn-primary" data-method="post" data-target="_self" data-action="@Url.Action("Index")">
查询
</button>
<button type="button" class="btn btn-primary" data-method="post" data-target="_blank" data-action="@Url.Action("Export")">导出</button>
@if (User.IsInRole("局管理员") || User.IsInRole("校管理员"))
{
<a class="btn btn-success" href="@Url.Action("Add")">
@ -59,25 +60,21 @@
<button type="submit" class="action confirm btn btn-danger" data-method="post" data-target="_self" data-action="@Url.Action("Delete")">
删除
</button>
<button type="button" class="btn btn-primary" data-method="post" data-target="_blank" data-action="@Url.Action("Export")">导出</button>
}
</div>
</div>
<br />
<div class="row">
<div class="col-12">
<div class="row table">
<div class="col-sm-3"><label class="th"><input type="checkbox" class="select_all" />全选</label></div>
@{
var list = typeof(EditTeacherModel).GetProperties()
.Select(o => o.GetCustomAttribute<ExcelHeaderAttribute>())
.Where(o => o != null)
.ToList();
foreach (var item in list)
foreach (var item in Model.HeaderSelectList)
{
var display = item.Headers.Last().Key.Replace("\r\n", "");
var raw = Model.Headers.Contains(item.Header) ? "checked=\"checked\"" : "";
<div class="col-sm-3">
<label title="@display" class="td" style="width:100%;white-space:nowrap;text-overflow:ellipsis;overflow: hidden;word-break: break-all;"><input type="checkbox" name="headers" value="@item.Header" @Html.Raw(raw) />@display</label>
<label title="@item.Text" class="td"
style="width:100%;white-space:nowrap;text-overflow:ellipsis;overflow: hidden;word-break: break-all;">
<input type="checkbox" name="headers" value="@item.Value" @Html.Raw(item.Selected?"checked=\"checked\"":"") />@item.Text</label>
</div>
}
}
@ -107,26 +104,26 @@
<td>@index</td>
<td>@item.RequestEditStatus</td>
<td>@item.CheckStatus</td>
<td>@item.RealName</td>
<td>@item.Sex</td>
<td>@item.Nation</td>
<td>@item.NativePlace</td>
<td>@item.person_name</td>
<td>@item.sex</td>
<td>@item.nation_name</td>
<td>@item.placeofbirth</td>
<td>
@if (User.IsInRole("局管理员") && item.CheckStatus == "审核成功")
{
<a href="@Url.Action("Details", new { userId = item.UserId })">重置</a>
<a href="@Url.Action("Details", new { person_id = item.person_id })">重置</a>
}
else if (User.IsInRole("校管理员") && item.CheckStatus == "待审核")
{
<a href="@Url.Action("Details", new { userId = item.UserId })">审核</a>
<a href="@Url.Action("Details", new { person_id = item.person_id })">审核</a>
}
else
{
<a href="@Url.Action("Details", new { userId = item.UserId })">查看</a>
<a href="@Url.Action("Details", new { person_id = item.person_id })">查看</a>
}
</td>
<td>
<a href="@Url.Action("History",new { UserName=item.UserName})">日志</a>
<a href="@Url.Action("History",new { person_id=item.person_id})">日志</a>
</td>
</tr>
}
@ -142,18 +139,17 @@
</div>
</div>
@functions{
public string RenderOrgans(List<Organ> list)
public string RenderOrgans(List<Organization> list)
{
foreach (var item in list)
{
var cls = "nav-link" + (item.Id == Model.OrganId.Value ? " " + "active" : "");
var cls = "nav-link" + (item.OrganId == Model.bureau_id ? " " + "active" : "");
<li class="navbar-nav">
<a class="@cls" href="@Url.Action("Index",new { organId=item.Id})">@item.Name</a>
<a class="@cls" href="@Url.Action("Index",new { bureau_id=item.Id})">@item.Name</a>
@if (item.Children.Any())
{
<ul class="nav-treeview">
@RenderOrgans(item.Children)
</ul>
}
</li>
@ -171,44 +167,60 @@
@section scripts{
<script>
$(function () {
$(function () {
$('.th :checkbox').change(function () {
if ($(this).is(':checked')) {
$(this).parents('.table').find(':checkbox').not(':checked').prop("checked", true);
}
else {
$(this).parents('.table').find(':checkbox').filter(':checked').prop("checked", false);
}
});
$('.td :checkbox').change(function () {
var parent = $(this).parents('.table').find('.th :checkbox');
var children = $(this).parents('.table').find('.td :checkbox');
if ($(this).is(':checked')) {
if (parent.not(':checked')) {
if (children.not(':checked').length === 0) {
parent.prop("indeterminate", false);
parent.prop("checked", true);
}
else {
parent.prop("indeterminate", true);
}
var checkAll = $('.th :checkbox');
var list = $('.td :checkbox');
if (list.filter(':checked').length === list.length) {
checkAll.prop("checked", true);
}
else if (list.filter(':checked').length == 0) {
checkAll.prop("checked", false);
checkAll.prop("indeterminate", false);
}
else {
checkAll.prop("indeterminate", true);
}
});
</script>
<script>
$(function () {
$('.th :checkbox').change(function () {
if ($(this).is(':checked')) {
$(this).parents('.table').find(':checkbox').not(':checked').prop("checked", true);
}
else {
$(this).parents('.table').find(':checkbox').filter(':checked').prop("checked", false);
}
});
$('.td :checkbox').change(function () {
var parent = $(this).parents('.table').find('.th :checkbox');
var children = $(this).parents('.table').find('.td :checkbox');
if ($(this).is(':checked')) {
if (parent.not(':checked')) {
if (children.not(':checked').length === 0) {
parent.prop("indeterminate", false);
parent.prop("checked", true);
}
else {
parent.prop("indeterminate", true);
}
}
else {
if (parent.prop("checked") || parent.prop("indeterminate")) {
if (children.filter(':checked').length === 0) {
parent.prop("indeterminate", false);
parent.prop("checked", false);
}
else {
parent.prop("indeterminate", true);
}
}
else {
if (parent.prop("checked") || parent.prop("indeterminate")) {
if (children.filter(':checked').length === 0) {
parent.prop("indeterminate", false);
parent.prop("checked", false);
}
else {
parent.prop("indeterminate", true);
}
}
});
}
});
});
</script>
<script>
$('[data-action]').click(function () {

@ -11,10 +11,17 @@ Web10.10.15.12 root DsIdeal@123
数据库:
10.10.15.13:22066 root DsideaL147258369
SHOW VARIABLES LIKE "general_log%"; -- off 是关闭如果是on表示已经开启
SET GLOBAL general_log = 'ON'; --开启日志监控。
/dsidealsoft/program/mariadb/data/localhost.log
接口getPersonInfoList获取用户列表数据库表t_base_person
接口getEduUnitList获取机构列表数据库表t_base_organizationarea_id 是上级机构id
接口getPersonInfo获取当前用户的登录信息包括用户名、登录名、角色列表数据库表t_base_organization、t_base_person
接口getDicItemByKind获取字典项数据库表t_sys_dic_item
t_base_student
select table_name,table_rows from tables where TABLE_SCHEMA = 'dsideal_db' order by table_rows desc;
select * from t_base_person where email='test@test.com' limit 10

Loading…
Cancel
Save