ok-admin框架,第七天菜单列表

 

 

 

后台代码:

using Newtonsoft.Json;
using StudentSys.data;
using StudentSys.Filter;
using StudentSys.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;

namespace StudentSys.Controllers
{
[LoginFilter]
public class MenuListController : Controller
{
// GET: MenuList

public ActionResult Index()
{
return View();
}
/// <summary>
/// 分页数据
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <returns></returns>
public string LoadPageList(int page, int limit, SysMenu where)
{
//实例化数据库上下文
YuanGongDb dbcontext = new YuanGongDb();
List<SysMenu> data = null;
Expression<Func<SysMenu, bool>> wherelambad = u => 1 == 1;//查询条件;
if (where.name != null && where.name != "")
{
//Contains模糊查找
wherelambad = wherelambad = u => u.name.Contains(where.name);
}
int count = 0;
data = dbcontext.SysMenu.Where(wherelambad).OrderBy(o => o.createtime)
.Skip((page - 1) * limit).Take(limit).ToList();
count = dbcontext.SysMenu.Where(wherelambad).Count();
var result = new
{
code = 0,
count = count,
data = data,
msg = ""
};
return JsonConvert.SerializeObject(result);
}

/// <summary>
/// 加载上级菜单
/// </summary>
/// <returns></returns>
public ActionResult InitMenus()
{
YuanGongDb dbcontext = new YuanGongDb();
List<SysMenu> data = dbcontext.SysMenu.Where(o=>o.pid==0&&o.type=="1").ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}


/// <summary>
/// 新增页面
/// </summary>
/// <returns></returns>
public ActionResult Add()
{
return View();
}
/// <summary>
/// 新增菜单
/// </summary>
/// <param name="_user"></param>
/// <returns></returns>
[HttpPost]
public string Add(SysMenu _user)
{
//User _user
//实例化数据库上下文
YuanGongDb dbcontext = new YuanGongDb();
SysMenu model = new SysMenu();
model.name = _user.name;
model.url = _user.url;
model.type = _user.type;
model.pid = _user.pid;
model.createtime = DateTime.Now.ToString();
model.updatetime = DateTime.Now.ToString();
ResponseData res = new ResponseData();//返回的数据格式code,msg
dbcontext.SysMenu.Add(model);
if (dbcontext.SaveChanges() > 0)
{
res.code = 0;
res.msg = "菜单添加成功";
var data = JsonConvert.SerializeObject(res);
return data;
}
else
{
res.code = 1;
res.msg = "菜单添加失败";
var data = JsonConvert.SerializeObject(res);
return data;
}
}

/// <summary>
/// 更新页面
/// </summary>
/// <returns></returns>
public ActionResult Update()
{
int id = int.Parse(Request["id"]);
YuanGongDb dbcontext = new YuanGongDb();
var data = dbcontext.SysMenu.FirstOrDefault(o => o.id == id);
return View(data);
}

/// <summary>
/// 更新菜单
/// </summary>
/// <param name="_user"></param>
/// <returns></returns>
[HttpPost]
public string Update(SysMenu _user)
{
YuanGongDb dbcontext = new YuanGongDb();
ResponseData res = new ResponseData();//返回的数据格式code,msg
var entity = dbcontext.Set<SysMenu>().FirstOrDefault(o => o.id == _user.id);
entity.name = _user.name;
entity.url = _user.url;
entity.type = _user.type;
entity.pid = _user.pid;
entity.updatetime = DateTime.Now.ToString();
if (dbcontext.SaveChanges() > 0)
{
res.code = 0;
res.msg = "更新成功";
var data = JsonConvert.SerializeObject(res);
return data;
}
else
{
res.code = 1;
res.msg = "更新失败";
var data = JsonConvert.SerializeObject(res);
return data;
}
}
}
}

前台代码:

@{
ViewBag.Title = "菜单列表";
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>菜单列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/css/oksub.css">
<script type="text/javascript" src="/lib/loading/okLoading.js"></script>
</head>
<body>
<div class="ok-body">
<!--模糊搜索区域-->
<div class="layui-row">
<form class="layui-form layui-col-md12 ok-search">
<input class="layui-input" placeholder="菜单名称" autocomplete="off" name="name">
<button class="layui-btn" lay-submit="" lay-filter="search">
<i class="layui-icon layui-icon-search"></i>
</button>
</form>
</div>
<!--数据表格-->
<table class="layui-hide" id="tableId_menu" lay-filter="tableFilter"></table>
</div>
<!--js逻辑-->
<script src="/lib/layui/layui.js"></script>
<script>
layui.use(["element", "table", "form", "laydate", "okLayer", "okUtils", "okMock"], function () {
let table = layui.table;
let form = layui.form;
let laydate = layui.laydate;
let okLayer = layui.okLayer;
let okUtils = layui.okUtils;
okLoading.close();
let menuTable = table.render({
elem: "#tableId_menu",
url: "/MenuList/LoadPageList",
limit: 10,
page: true,
toolbar: "#toolbarTpl",
size: "sm",
cols: [[
{ type: "checkbox" },
{ field: "name", title: "菜单名称" },
{ field: "url", title: "地址/动作" },
{ field: "type", title: "类型", templet: "#statusTpl" },
{ field: "createtime", title: "创建时间" },
{ title: "操作", width: 80, align: "center", templet: "#operationTpl" }
]],
done: function (res, curr, count) {
console.log(res, curr, count);
}
});

form.on("submit(search)", function (data) {

menuTable.reload({
where: data.field,
page: { curr: 1 }
});
return false;
});

table.on("toolbar(tableFilter)", function (obj) {
switch (obj.event) {
case "add":
add();
break;
case "batchDel":
batchDel();
break;
}
});

table.on("tool(tableFilter)", function (obj) {
let data = obj.data;
switch (obj.event) {
case "edit":
edit(data.id);
break;
case "del":
del(data.id);
break;
}
});

function add() {
okLayer.open("添加菜单", "/MenuList/Add", "90%", "90%", null, function () {
menuTable.reload();
})
}
function edit(id) {
okLayer.open("编辑菜单", "/MenuList/Update?id=" + id, "90%", "90%", null, function () {
menuTable.reload();
})
}

function del(id) {
okLayer.confirm("确定要删除吗?", function () {
okUtils.ajax("/MenuList/Delete", "post", { idsStr: id }, true).done(function (response) {
okUtils.tableSuccessMsg(response.msg);
}).fail(function (error) {
console.log(error)
});
})
}
})</script>
<!-- 头工具栏模板 -->
<script type="text/html" id="toolbarTpl">
<div class="layui-btn-container">
<div class="layui-inline" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></div>
</div>
</script>
<!-- 行工具栏模板 -->
<script type="text/html" id="statusTpl">
{{# if(d.type == 0){ }}
<span class="layui-btn layui-btn-normal layui-btn-xs">无</span>
{{# } else if(d.type == 1) { }}
<span class="layui-btn layui-btn-warm layui-btn-xs">菜单</span>
{{# } else if(d.type == 2) { }}
<span class="layui-btn layui-btn-danger layui-btn-xs">按钮</span>
{{# } }}
</script>

<script type="text/html" id="operationTpl">
<a href="javascript:" title="编辑" lay-event="edit"><i class="layui-icon">&#xe642;</i></a>
<a href="javascript:" title="删除" lay-event="del"><i class="layui-icon">&#xe640;</i></a>
</script>
</body>
</html>

 

posted @ 2022-05-22 10:33  .net&new  阅读(101)  评论(0编辑  收藏  举报