视图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>用户列表 - QAdmin后台模板</title>
<link rel="stylesheet" href="~/Scripts/static/common/layui/css/layui.css">
<link rel="stylesheet" href="~/Scripts/static/admin/css/style.css">
<script src="~/Scripts/static/common/layui/layui.js"></script>
<script src="~/Scripts/static/common/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/static/common/vue.min.js"></script>
</head>
<body>
<div id="app">
<!--顶栏-->
<header>
<h1 v-text="webname"></h1>
<div class="breadcrumb">
<i class="layui-icon"></i>
<ul>
<li v-for="vo in address">
<a v-text="vo.name" :href="vo.url"></a> <span>/</span>
</li>
</ul>
</div>
</header>
<div class="main" id="app">
<!--左栏-->
<div class="left">
<ul class="cl">
<!--顶级分类-->
<li v-for="vo,index in menu" :class="{hidden:vo.hidden}">
<a href="javascript:;" :class="{active:vo.active}" v-on:click="onActive(index)">
<i class="layui-icon" v-html="vo.icon"></i>
<span v-text="vo.name"></span>
<i class="layui-icon arrow" v-show="vo.url.length==0"></i> <i v-show="vo.active" class="layui-icon active"></i>
</a>
<!--子级分类-->
<div v-for="vo2,index2 in vo.list">
<a href="javascript:;" :class="{active:vo2.active}" v-on:click="onActive(index,index2)" v-text="vo2.name"></a>
<i v-show="vo2.active" class="layui-icon active"></i>
</div>
</li>
</ul>
</div>
<!--右侧-->
<div class="right">
<div class="layui-row">
<div class="layui-col-lg8">
<a href="/AdminUser/Add" class="layui-btn">添加管理员</a>
</div>
<div class="layui-col-lg4" style="text-align: right">
<div class="layui-input-inline" style="width: 300px">
<input type="text" name="k" value="" placeholder="用户名" class="layui-input key">
</div>
<button type="button" class="layui-btn sou">搜索</button>
</div>
</div>
<table class="layui-hide" id="sample_table" lay-filter="demo"></table>
</div>
</div>
</div>
<script src="~/Scripts/static/admin/js/config.js"></script>
<script src="~/Scripts/static/admin/js/script.js"></script>
<script>
layui.use(['table', 'util'], function () {
var table = layui.table;
var form = layui.form;
table.render({
elem: '#sample_table'
, url: '/AdminUser/GetAdminUserList'
, height:500
, page: true
, cellMinWidth: 80
, cols: [[
{ type: 'checkbox' }
,{ field: 'Id', title: '编号', sort: true }
, { field: 'Name', title: '登录名' }
, { field: 'EmployeeName', title: '名字', sort: true }
, { field: 'Email', title: '邮箱' }
, { field: 'ModuleName', title: '组名' }
, { field: 'RoleName', title: '角色名' }
, { field: 'Status', title: '状态', width: 120, templet: '#switchTpl', unresize: true }
, { field: 'CreateTime', title: '添加时间', width: 120, templet: '<div> {{Format(d.CreateTime,"yyyy-MM-dd")}}</div>' }
, { title: '操作',fixed: 'right', width: 200, align: 'center', toolbar: '#barDemo' }
]]
});
form.on('switch(sexDemo)', function (obj) {
var tip = "启用";
var id = this.id;
var status = this.value;
if (this.value === "1") {
tip = "停用";
status = 0;
}
else {
status = 1;
}
layer.confirm('真的要' + tip+'吗', function (index) {
$.ajax({
url: "/Admin/UpdateStauts?id=" + id + "&status=" + status,
type: "Post",
success: function (data) {
if (data.Success) {
layer.msg(tip+'成功!', {
title: '提示框',
icon: 1,
time: 1000
}, function () {
TableReload();
layer.close(index);
});
}
else {
layer.msg(tip +'失败!', {
title: '提示框',
icon: 1,
time: 1000
});
}
}
});
});
});
table.on('tool(demo)', function (obj) {
var data = obj.data;
var id = data.Id;
if (obj.event === 'del') {
layer.confirm('真的要删除吗', function (index) {
$.ajax({
url: "/AdminUser/Delete?id=" + id,
type: "Post",
success: function (data) {
if (data.Success) {
layer.msg('删除成功!', {
title: '提示框',
icon: 1,
time: 1000
}, function () {
TableReload();
layer.close(index);
});
obj.del();
}
else {
layer.msg('删除失败!', {
title: '提示框',
icon: 1,
time: 1000
});
}
}
});
});
} else if (obj.event === 'edit') {
window.location.href = "/AdminUser/Update?id=" + id;
}
});
table.on('checkbox(demo)', function (obj) {
});
var $ = layui.$, active = {
getCheckData: function () {
var checkStatus = table.checkStatus('sample_table')
, data = checkStatus.data;
var id = BatchDelete(data);
layer.confirm('真的要删除吗', function (index) {
$.ajax({
url: "/Admin/BatchDelete?id=" + id,
type: "Post",
success: function (data) {
if (data.Success) {
layer.msg('删除成功!', {
title: '提示框',
icon: 1,
time: 2000
}, function () {
TableReload();
layer.close(index);
});
}
else {
layer.msg('删除失败!', {
title: '提示框',
icon: 1,
time: 2000
});
}
}
});
});
}
};
$('#batchDelete').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
function BatchDelete(data) {
var id = "";
for (var i = 0; i < data.length; i++)
{
if (i != data.length - 1) {
id += data[i].AdminId + ',';
}
else {
id += data[i].AdminId;
}
}
return id;
}
function Format(datetime, fmt) {
var newtime = datetime.replace(/\/Date\((\d+)\)\//gi, "$1");
if (parseInt(newtime) == newtime) {
if (newtime.length == 10) {
newtime = parseInt(newtime) * 1000;
} else if (newtime.length == 13) {
newtime = parseInt(newtime);
}
}
newtime = new Date(newtime);
var o = {
"M+": newtime.getMonth() + 1,
"d+": newtime.getDate(),
"h+": newtime.getHours(),
"m+": newtime.getMinutes(),
"s+": newtime.getSeconds(),
"q+": Math.floor((newtime.getMonth() + 3) / 3),
"S": newtime.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (newtime.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
</script>
</body>
</html>
<script type="text/html" id="barDemo">
<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a> -->
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script type="text/html" id="switchTpl">
<!-- 这里的 checked 的状态只是演示 -->
<input type="checkbox" name="sex" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="sexDemo" {{ d.id == 10003 ? 'checked' : 'checked' }}>
</script>
控制器
using JiaHua.Permission.Model;
using JiaHua.Permission.Service;
using JiaHua.Permission.Web.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace JiaHua.Permission.Web.Controllers
{
public class AdminUserController : Controller
{
AdminUserService adminUserService = new AdminUserService();
ModuleService moudleService = new ModuleService();
ModuleUserService moduleUserService = new ModuleUserService();
ModuleRoleService moduleRoleService = new ModuleRoleService();
AdminUserRoleService adminUserRoleService = new AdminUserRoleService();
public ActionResult Login()
{
return View();
}
public ActionResult LoginOut()
{
return View();
}
public JsonResult ValidateLogin(Ui_AdminUser ui_AdminUser)
{
OperateResult operateResult = new OperateResult();
AdminUser adminUser = adminUserService.Query(a => a.Name == ui_AdminUser.Name && a.Password == ui_AdminUser.Password);
operateResult.Success = adminUser != null;
if(operateResult.Success)
{
AdminUserContext.current.userInfo = new AdminUser()
{
Id = adminUser.Id,
Name = adminUser.Name
};
}
return Json(operateResult);
}
public ActionResult Add()
{
ViewBag.moduleList = moudleService.QueryList(a=>true);
ViewBag.Role = adminUserService.GetModuleRole(1);
return View();
}
public JsonResult GetModuleRole(int moduleId)
{
PageListResult<AdminUserView> pageListResult = new PageListResult<AdminUserView>();
pageListResult.data = adminUserService.GetModuleRole(moduleId);
return Json(pageListResult);
}
[HttpPost]
public JsonResult Add(Ui_AdminUser ui_AdminUser)
{
int CreateUserId = 1;
OperateResult operateResult = new OperateResult();
AdminUser adminUser = new AdminUser();
adminUser.Name = ui_AdminUser.Name;
adminUser.Password = ui_AdminUser.Password;
adminUser.EmployeeName = ui_AdminUser.EmployeeName;
adminUser.Email = ui_AdminUser.Email;
adminUser.Remark = ui_AdminUser.Remark;
adminUser.CertNo = ui_AdminUser.CertNo;
adminUser.Enabled = ui_AdminUser.Enabled;
adminUser.CreateTime = DateTime.Now;
operateResult.Success = adminUserService.Add(adminUser, ui_AdminUser.ModuleId, ui_AdminUser.RoleId, CreateUserId) ;
return Json(operateResult);
}
public ActionResult Update(int id)
{
ViewBag.moduleList = moudleService.QueryList(a => true);
ViewBag.adminUserView = adminUserService.GetAdminUserView(id)[0];
return View();
}
[HttpPost]
public JsonResult Update(Ui_AdminUser ui_AdminUser)
{
int CreateUserId = 1;
OperateResult operateResult = new OperateResult();
AdminUser adminUser = new AdminUser();
adminUser.Id = ui_AdminUser.Id;
adminUser.Name = ui_AdminUser.Name;
adminUser.Password = ui_AdminUser.Password;
adminUser.EmployeeName = ui_AdminUser.EmployeeName;
adminUser.Email = ui_AdminUser.Email;
adminUser.Remark = ui_AdminUser.Remark;
adminUser.CertNo = ui_AdminUser.CertNo;
adminUser.Enabled = ui_AdminUser.Enabled;
adminUser.CreateTime = ui_AdminUser.CreateTime;
operateResult.Success = adminUserService.Update(adminUser, ui_AdminUser.ModuleId, ui_AdminUser.RoleId, CreateUserId);
return Json(operateResult);
}
public ActionResult AdminUserList()
{
return View();
}
public JsonResult GetAdminUserList(int page,int limit)
{
PageListResult<AdminUserView> pageListResult = new PageListResult<AdminUserView>();
pageListResult.code = 0;
pageListResult.msg = string.Empty;
List<AdminUserView> result = adminUserService.GetAdminUserViewList();
pageListResult.count = result.Count;
pageListResult.data = result.Skip((page - 1) * limit).Take(limit).ToList();
return Json(pageListResult, JsonRequestBehavior.AllowGet);
}
public JsonResult Delete(int id)
{
OperateResult operateResult = new OperateResult();
operateResult.Success = adminUserService.Delete(id);
return Json(operateResult);
}
public JsonResult BatchDelete(int[] ids)
{
OperateResult operateResult = new OperateResult();
operateResult.Success = adminUserService.BatchDelete(ids);
return Json(operateResult);
}
public JsonResult UpdateStatus(AdminUser adminUser)
{
OperateResult operateResult = new OperateResult();
operateResult.Success = adminUserService.Update(adminUser);
return Json(operateResult);
}
}
}