<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-warm site-demo-active" lay-event="add">新增</button>
<button class="layui-btn layui-btn-normal site-demo-active" lay-event="sq">授权</button>
<button class="layui-btn" lay-event="delete" style="background: #FF5722;">删除</button>
</div>
</script>
<script type="text/html" id="tool">
<!--{{ d.A_Id }}-->
{{# if(d.A_Id == "" || d.A_Id == null){ }}
<a class="layui-btn layui-btn-xs" lay-event="SAuthority" id="shouquan">授权</a>
<a class="layui-btn layui-btn-xs" lay-event="UpdAuthority">修改权限</a>
{{# } else { }}
<a class="layui-btn layui-btn-xs" lay-event="UpdAuthority">修改权限</a>
{{# }}}
</script>
<script type="text/html" id="bar">
<a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
<a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
<a class="layui-btn layui-btn-xs" lay-event="CK">查看</a>
</script>
<table class="layui-hide" id="RoleTB" lay-filter="test"></table>
<script type="text/javascript">
layui.use(['table'], function () {
var table = layui.table;
var element = layui.element;
//方法级渲染
table.render({
elem: '#RoleTB',
toolbar: '#toolbarDemo'
, height: 'full-50',
even: true
, id: 'RoleTBList'
, limit: defaultpagesize
, url: Url + "/UserInfo/RoleAuthority/GetRoleList"
,
parseData: function (res) { //处理返回的数据
if (res.result) {
return {
"code": 0, //解析接口状态
"msg": res.setmessage, //解析提示文本
"count": res.totlecount, //解析数据长度
"data": res.data //解析数据列表
};
}
else {
layer.msg(res.setmessage);
return {
"code": 0, //解析接口状态
"msg": res.setmessage, //解析提示文本
"count": 0, //解析数据长度
"data": null //解析数据列表
};
}
},
cols: [
[{
type: 'checkbox',
width: 70
},
{
field: 'R_Id',
title: '角色ID',
width: 300
},
{
field: 'R_Name',
title: '角色名称',
width: 300
},
{
title: '权限操作',
align: 'center',
toolbar: "#tool"
},
{
field: '',
width: 300,
title: '详情',
align: 'center',
toolbar: "#bar"
}]
]
,
page: true //开启分页
});
//监听工具事件
table.on('tool(test)', function (obj) {
var data = obj.data; //获得当前行数据
$ = layui.jquery;
if (obj.event === 'del') {
layer.confirm('真的删除此行么?', function (index) {
var data = obj.data;
var kk = data['theSer'];
$.ajax({
dataType: "Json",
type: "post",
url: Url + "/UserInfo/RoleAuthority/DeleteRoles",
data: { "": kk },
async: false,
success: function (data) {
if (data != null) {
layer.msg("删除成功", {
time: 2000,//显示的时间为2秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('删除失败');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
layer.msg('删除失败');
}
})
});
}
else if (obj.event === 'edit') {
var theSer = obj.data['theSer'];
var R_Id = obj.data['R_Id'];
var R_Name = obj.data['R_Name'];
layui.use(['layer', 'table', "laypage", "jquery"], function () {
var layer = layui.layer //弹层
$("#R_Name").val(R_Name);
layer.open({
id: 'add',
type: 1,
title: '修改角色名称',
area: ['300px', '280px'],
shadeClose: true, //点击遮罩关闭
btn: ['确定', '取消'],
yes: function () {
var json = {};
json.theSer = theSer;
var id = $("#R_Id").val();
if (id == "" || id == null || id == undefined) {
layer.msg("角色ID不能为空!");
return;
} else {
json.R_Id = id;
}
var name = $("#R_Name").val();
if (name == "" || name == null || name == undefined) {
layer.msg("角色名称不能为空!");
return;
} else {
json.R_Name = name;
}
$.post(Url + "/UserInfo/RoleAuthority/UpdRoles", json,
function (data) {
if (data > 0) {
layer.msg("角色修改成功!", {
time: 2000,//显示的时间为2秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('角色修改失败!');
}
async: false
});
},
//关闭所有弹框
btn2: function () {
layer.closeAll();
},
content: '<div id="content">' + '<div class="layui-form-item" style="margin-left:-25px;margin-top: 30px;"><label class="layui-form-label">角色ID:</label><div class="layui-input-block"><input type="text" name="R_Id" lay-verify="title" autocomplete="off" class="layui-input" id="R_Id"></div></div>' +
'<div class="layui-form-item" style="margin-left:-25px;margin-top: 30px;"><label class="layui-form-label">角色名称:</label><div class="layui-input-block"><input type="text" name="R_Name" lay-verify="title" autocomplete="off" class="layui-input" id="R_Name"></div></div>' + '</div>'
})
$("#R_Id").val(R_Id);
$("#R_Name").val(R_Name);
})
}
else if (obj.event === 'CK') {
var R_Name = obj.data['R_Name'];
layui.use(['layer', 'table', "laypage", "jquery"], function (data) {
var layer = layui.layer //弹层
GetTreeList(R_Name);
layer.open({
id: 'FPRole',
type: 1,
title: '权限列表',
area: ['500px', '700px'],
shadeClose: true, //点击遮罩关闭
content: '<ul id="Treeview" class="ztree demo-tree layui-anim layui-anim-upbit"></ul>'
})
});
}
else if (obj.event === 'SAuthority') {
var R_Name = obj.data['R_Name'];
var R_Id = obj.data['R_Id']
layui.use(['layer', 'table', "laypage", "jquery"], function () {
var layer = layui.layer //弹层
DataList();
layer.open({
id: 'FPRole',
type: 1,
title: '分配权限',
area: ['500px', '700px'],
shadeClose: true, //点击遮罩关闭
btn: ['确定', '取消'],
yes: function () {
var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.getCheckedNodes(true);
A_Id = "";
for (var i = 0; i < nodes.length; i++) {
A_Id += nodes[i].theSer + ",";
}
if (A_Id.length > 0) {
A_Id = A_Id.substr(0, A_Id.length - 1);
}
var json = {};
json.R_Name = R_Name;
json.R_Id = R_Id;
json.A_Id = A_Id;
$.post(Url + "/UserInfo/RoleAuthority/FPRoles", json,
function (data) {
if (data > 0) {
layer.msg("角色权限成功!", {
time: 2000,//显示的时间为2秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('角色权限失败!');
}
async: false
});
},
//关闭所有弹框
btn2: function () {
layer.closeAll();
},
content: '<ul id="tree" class="ztree demo-tree layui-anim layui-anim-upbit"></ul>',
})
})
}
//修改权限
else if (obj.event === 'UpdAuthority') {
var theSer = obj.data['theSer'];
var R_Id = obj.data['R_Id'];
var R_Name = obj.data['R_Name'];
layui.use(['layer', 'table', "laypage", "jquery"], function () {
var layer = layui.layer //弹层
TreeView(theSer);
layer.open({
id: 'UpdQX',
type: 1,
title: '修改权限',
area: ['500px', '700px'],
shadeClose: true, //点击遮罩关闭
btn: ['修改', '取消'],
yes: function () {
var treeObj = $.fn.zTree.getZTreeObj("ztreelist");
var nodes = treeObj.getCheckedNodes(true);
A_Id = "";
for (var i = 0; i < nodes.length; i++) {
A_Id += nodes[i].theSer + ",";
}
if (A_Id.length > 0) {
A_Id = A_Id.substr(0, A_Id.length - 1);
}
var json = {};
json.R_Name = R_Name;
if (A_Id == "" || A_Id == null) { json.A_Id = ""; }
else { json.A_Id = A_Id }
json.R_Id = R_Id;
$.post(Url + "/UserInfo/RoleAuthority/FPRoles", json,
function (data) {
if (data > 0) {
layer.msg("角色权限修改成功!", {
time: 2000,//显示的时间为2秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('角色权限修改失败!');
}
async: false
});
},
//关闭所有弹框
btn2: function () {
layer.closeAll();
},
content: '<ul id="ztreelist" class="ztree demo-tree layui-anim layui-anim-upbit"></ul>',
})
})
}
});
//监听头工具栏事件toolbar
table.on('toolbar(test)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
var data = checkStatus.data; //获取选中的数据
var tr = data.tr; //获得当前行 tr 的DOM对象
switch (obj.event) {
case 'add':
layui.use(['layer', 'table', "laypage", "jquery"], function () {
var layer = layui.layer //弹层
layer.open({
id: 'add',
type: 1,
title: '添加角色',
area: ['300px', '280px'],
shadeClose: true, //点击遮罩关闭
btn: ['确定', '取消'],
yes: function () {
var json = {};
var id = $("#R_Id").val();
if (id == "" || id == null || id == undefined) {
layer.msg("角色ID不能为空!");
return;
} else {
json.R_Id = id;
}
var name = $("#R_Name").val();
if (name == "" || name == null || name == undefined) {
layer.msg("角色名称不能为空!");
return;
} else {
json.R_Name = name;
}
$.post(Url + "/UserInfo/RoleAuthority/AddRoles", json,
function (data) {
if (data > 0) {
layer.msg("角色添加成功!", {
time: 2000,//显示的时间为2秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('角色添加失败!');
}
async: false
});
},
//关闭所有弹框
btn2: function () {
layer.closeAll();
},
content: '<div id="content">' + '<div class="layui-form-item" style="margin-left:-25px;margin-top: 30px;"><label class="layui-form-label">角色ID:</label><div class="layui-input-block"><input type="text" name="R_Id" lay-verify="title" autocomplete="off" class="layui-input" id="R_Id"></div></div>' +
'<div class="layui-form-item" style="margin-left:-25px;margin-top: 30px;"><label class="layui-form-label">角色名称:</label><div class="layui-input-block"><input type="text" name="R_Name" lay-verify="title" autocomplete="off" class="layui-input" id="R_Name"></div></div>' + '</div>'
})
})
break;
//批量授权
case 'sq':
if (data.length === 0) {
layer.msg('请选择要分配权限的角色!');
}
else {
var arr = [];
var str = "";
for (var i = 0; i < data.length; i++) {
var kk = data[i]['R_Id'];
arr.push(kk);
}
for (var i = 0; i < arr.length; i++) {
str += arr[i] + ",";
}
if (str.length > 0) {
str = str.substr(0, str.length - 1);
}
var arrname = [];
var strname = "";
for (var i = 0; i < data.length; i++) {
var kk = data[i]['R_Name'];
arrname.push(kk);
}
for (var i = 0; i < arrname.length; i++) {
strname += arrname[i] + ",";
}
if (strname.length > 0) {
strname = strname.substr(0, strname.length - 1);
}
layui.use(['layer', 'table', "laypage", "jquery"], function () {
var layer = layui.layer //弹层
DataList();
layer.open({
id: 'FPRole',
type: 1,
title: '分配权限',
area: ['500px', '700px'],
shadeClose: true, //点击遮罩关闭
btn: ['确定', '取消'],
yes: function () {
var treeObj = $.fn.zTree.getZTreeObj("tree");
var nodes = treeObj.getCheckedNodes(true);
A_Id = "";
for (var i = 0; i < nodes.length; i++) {
A_Id += nodes[i].theSer + ",";
}
if (A_Id.length > 0) {
A_Id = A_Id.substr(0, A_Id.length - 1);
}
var json = {};
json.R_Name = strname;
json.A_Id = A_Id;
json.R_Id = str;
$.post(Url + "/UserInfo/RoleAuthority/FPRoles", json,
function (data) {
if (data > 0) {
layer.msg("角色权限成功!", {
time: 2000,//显示的时间为2秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('角色权限失败!');
}
async: false
});
},
//关闭所有弹框
btn2: function () {
layer.closeAll();
},
content: '<ul id="tree" class="ztree demo-tree layui-anim layui-anim-upbit"></ul>',
})
})
}
break;
case 'delete':
console.log(data)
if (data.length === 0) {
layer.msg('请选择一行');
} else {
layer.confirm('确定删除吗', function () {
var arr = [];
var str = "";
for (var i = 0; i < data.length; i++) {
var kk = data[i]['theSer'];
arr.push(kk);
}
for (var i = 0; i < arr.length; i++) {
str += arr[i] + ",";
}
//去掉最后一个逗号(如果不需要去掉,就不用写)
if (str.length > 0) {
str = str.substr(0, str.length - 1);
}
$.ajax({
dataType: "Json",
type: "post",
url: Url + "/UserInfo/RoleAuthority/DeleteRoles",
data: { "": str },
async: false,
success: function (data) {
if (data != false) {
layer.msg("删除成功", {
time: 2000,//显示的时间为3秒
end: function () {
location.reload();//重新加载当前页面
}
});
} else {
layer.msg('删除失败');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
layer.msg('删除失败');
}
})
return false;
})
}
break;
case 'isAll':
layer.msg(checkStatus.isAll ? '全选' : '未全选');
break;
};
});
$('.demoTable .layui-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
var settingss = {
view: {
selectedMulti: false
},
data: {
simpleData: {
open: true,
iconOpen: true,
selectedMulti: true,
showIcon: true,
showLine: true,
enable: true,
idKey: "A_Id",
pIdKey: "A_FatherId",
rootPId: -1,
},
key: {
name: "A_Name",
url: "url",
checked: "isChecked",
editNameSelectAll: true,
showRemoveBtn: true,
removeTitle: "删除节点",
renameTitle: "编辑节点名称",
showRenameBtn: true,
}
},
check: {
enable: true,
chkStyle: "checkbox", //复选框
nocheckInherit: true,
isParent: true,
},
};
function DataList() {
$.ajax({
type: "get",
url: Url + "/UserInfo/RoleAuthority/GetListTree",
//url: Url + "/UserInfo/RoleAuthority/GetData",
dataType: 'json',
async: true,
success: function (response) {
console.log(response);
var zNodes = response;
zTreeObj = $.fn.zTree.init($("#tree"), settingss, zNodes); //初始化树
//默认展开一二级菜单
fillter(zTreeObj);
$.fn.zTree.getZTreeObj("A_Id");
//加载时展开所有节点
zTreeObj.expandAll(true);
}
})
};
function fillter(zTreeObj) {
var nodeList = zTreeObj.getNodes(); //展开第一个根节点
for (var i = 0; i < nodeList.length; i++) //设置节点展开第二级节点
{
zTreeObj.expandNode(nodeList[i], true, false, true);
nodeList[i].children;
}
}
//显示已经分配的权限
function GetTreeList(name) {
$.ajax({
type: "get",
url: Url + "/UserInfo/RoleAuthority/QXTreeData",
dataType: 'json',
data: { R_Name: name },
async: true,
success: function (response) {
var zNodes = response;
var list = zTreeObj = $.fn.zTree.init($("#Treeview"), setting, zNodes); //初始化树
//默认展开一二级菜单
//fillter(zTreeObj);
//$.fn.zTree.getZTreeObj("A_Id");
list.expandAll(true);
}
})
};
var setting = {
view: {
selectedMulti: false
},
data: {
simpleData: {
open: true,
iconOpen: true,
selectedMulti: true,
showIcon: true,
showLine: true,
enable: true,
idKey: "A_Id",
pIdKey: "A_FatherId",
rootPId: -1,
},
key: {
name: "A_Name",
url: "url",
checked: "isChecked",
editNameSelectAll: true,
showRemoveBtn: true,
removeTitle: "删除节点",
renameTitle: "编辑节点名称",
showRenameBtn: true,
}
},
check: {
nocheckInherit: true,
isParent: true,
},
};
function TreeView(id) {
$.ajax({
type: "get",
url: Url + "/UserInfo/RoleAuthority/UpdTree",
data: { id: id },
dataType: 'json',
async: true,
success: function (response) {
$.get(Url + "/UserInfo/RoleAuthority/GetListTree",
function (data) {
console.log(data);
zTreeObj = $.fn.zTree.init($("#ztreelist"), settingss, data); //初始化树
//加载时展开所有节点
zTreeObj.expandAll(true);
zTree = $.fn.zTree.getZTreeObj("ztreelist");
for (var i = 0; i < response.length; i++) {
zTree.checkNode(zTree.getNodeByParam("A_Id", response[i].A_Id), true);
}
}
)
}
})
};
</script>
```csharp
[HttpGet]
public HttpResponseMessage GetList()
{
HttpContext context = HttpContext.Current;
var pagesize = Convert.ToInt32(context.Request.QueryString["limit"].ToString());
var pageindex = Convert.ToInt32(context.Request.QueryString["page"].ToString());
UserGetData user = new UserGetData();
int count = 0;
var list = user.GetTable(pageindex, pagesize, "", "", out count);
if (list != null && list.Count > 0)
{
return SuccNo.SuccListReturn(list, count);
}
else
{
return SuccNo.NoListReturn();
}
}
//模糊查询
[HttpGet]
public object search()
{
HttpContext context = HttpContext.Current;
var search = context.Request.QueryString["search"].ToString();//搜索条件
var pagesize = Convert.ToInt32(context.Request.QueryString["limit"].ToString());
var pageindex = Convert.ToInt32(context.Request.QueryString["page"].ToString());
UserGetData user = new UserGetData();
int count = 0;
var list = user.GetTable(pageindex, pagesize, search, "", out count);
if (list != null && list.Count > 0)
{
return SuccNo.SuccListReturn(list, count);
}
else
{
return SuccNo.NoListReturn();
}
}
[HttpPost]
//删除
public HttpResponseMessage Delete([FromBody] string code)
{
if (!string.IsNullOrEmpty(code))
{
return SuccNo.toJson(dal.DelTree(code));
}
else
{
return null;
}
}
//增加/修改
[HttpPost]
public int Insert([FromBody] tb_U_AuthorityTable tb_U_Authority)
{
try
{
if (tb_U_Authority != null)
{
if (tb_U_Authority.theSer != 0)
{
return dal.Update(tb_U_Authority);
}
else
{
return dal.Inster(tb_U_Authority);
}
}
else
{
return 0;
}
}
catch (Exception e)
{
return 0;
}
}
//获取修改
[HttpPost]
public object Update([FromBody] string id)
{
string sql = string.Format(@"SELECT [theSer],[A_Id],[A_Name] ,[A_Grade],[A_FatherId],[A_IsFather],[A_IsChild] FROM [dbo].[tb_U_Authority] where theSer = " + id);
try
{
DataTable dt = DBHelperSQL.Getdatatable(sql);
return dt;
}
catch (Exception e)
{
return null;
}
}
//把下面方法封装在DAL类里边,在控制器里调用
//查询的方法
public List<tb_U_UserTable> GetData(int pageindex, int pagesize, string Proname, string Prostatue, out int totlecount)
{
try
{
IDbConnection db = new SqlConnection(DbHelper.ConnectionString);
if (Proname == "")
{
var list = db.QuerySet<tb_U_UserTable>().OrderBy(x => x.U_Id).PageList(pageindex, pagesize);
var listdata = list.Items.ToList();
totlecount = list.Total;
return listdata;
}
else
{
var list = db.QuerySet<tb_U_UserTable>().Where(x => x.U_Name.Contains(Proname)).OrderBy(x => x.U_Id).PageList(pageindex, pagesize);
var listdata = list.Items.ToList();
totlecount = list.Total;
return listdata;
}
}
catch (Exception ee)
{
totlecount = 0;
return null;
}
}
//增删改
//添加
public int Inster(tb_U_AuthorityTable datas)
{
string query = @"INSERT INTO [dbo].[tb_U_Authority]
([A_Id]
,[A_Name]
,[A_Grade]
,[A_FatherId]
,[A_IsFather]
,[A_IsChild]
,[url]
,[Icon])
VALUES
(@A_Id,@A_Name,@A_Grade,@A_FatherId,@A_IsFather,@A_IsChild,@url,@Icon)";
IDbConnection db = new SqlConnection(DbHelper.ConnectionString);
try
{
if (db.State == ConnectionState.Closed)
{
db.Open();
}
var data = db.Execute(query, datas);
return data;
}
catch (Exception ee) { throw ee; }
finally
{
db.Close();
}
}
//修改
public int Update(tb_U_AuthorityTable datas)
{
string query = @"UPDATE [dbo].[tb_U_Authority]
SET [A_Id] =@A_Id
,[A_Name] =@A_Name
,[A_Grade] =@A_Grade
,[A_FatherId] =@A_FatherId
,[A_IsFather] =@A_IsFather
,[A_IsChild] =@A_IsChild
WHERE theSer=@theSer";
IDbConnection db = new SqlConnection(DbHelper.ConnectionString);
try
{
if (db.State == ConnectionState.Closed)
{
db.Open();
}
var data = db.Execute(query, datas);
return data;
}
catch (Exception ee) { throw ee; }
finally
{
db.Close();
}
}
//删除
public int DelRoles(string id)
{
string query = "DELETE FROM TableName WHERE Id in (" + id + ") ";
IDbConnection db = new SqlConnection(DbHelper.ConnectionString);
try
{
if (db.State == ConnectionState.Closed)
{
db.Open();
}
var data = db.Execute(query);
return data;
}
catch (Exception ee) { throw ee; }
finally
{
db.Close();
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容