1、先获取空的树形 ,查询数据库EHECD_AdminFunction表,生成
function GetFuns() {
$('#sysFun').treegrid({
title: '功能授权',
animate: true,
method: 'get',
loadMsg: '数据加载中请稍后……',
url: '/Sys/User/GetFun',
idField: 'ID',
treeField: 'sName',
columns: [[
{ field: 'sName', title: '模块名称', width: 198,
formatter: function (value, rowData, rowIndex) {
return '<input name="funlist" type="checkbox" id="' + rowData.ID + '" οnclick="SelectedCheckbox(this)">' + value;
}
},
{
field: 'oper', title: '可操作', width: 60, align: 'center',
formatter: function (value, rowData, rowIndex) {
if (rowData._parentId != null || rowData._parentId != undefined)
return '<input type="checkbox" dataid="' + rowData.ID + '" id="operate' + rowData.ID + '" οnclick="operate(this)">';
}
},
{
field: 'query', title: '可查询', width: 60, align: 'center',
formatter: function (value, rowData, rowIndex) {
if (rowData._parentId != null || rowData._parentId != undefined)
return '<input type="checkbox" dataid="' + rowData.ID + '" id="query' + rowData.ID + '" οnclick="query(this)">';
}
}
]],
onLoadSuccess: function (row, data) {
//清空复选框选中状态
ResetFunChecked();
//获取角色
GetRole(_pageIndex, _pageSize);
},
toolbar: [{
id: 'btnsave',
text: '保存',
iconCls: 'icon-save',
handler: function () {
SaveRoleFun();
}
}]
});
}
<div data-options="region:'center',border:false">
<table id="sysFun" class="easyui-treegrid" data-options="fit:true,toolbar:'#AuthToolBar'" border="0"></table>
</div>
2、查询出左边的表,将第一行数据更新到左边树形里面。
//****************(获取角色)************************************************************
//当前操作
var _opeartion;
var _rowIndex;
var _roleRow;
var _pageIndex = 1;
var _pageSize = 20;
function GetRole(pageIndex, pageSize) {
$('#roleDT').datagrid({
title: '角色信息',
singleSelect: true, //是否单选
pagination: true, //分页控件
rownumbers: true, //行号
loadMsg: '数据加载中请稍后……',
queryParams: { pageIndex: pageIndex, pageSize: pageSize },
url: '/Sys/Role/GetRole',
idField: 'ID',
columns: [[
{ field: 'SNAME', title: '角色名称', width: 100 },
{ field: 'ISORT', title: '排序', width: 50 }
]],
onLoadSuccess: function (data) {
if (data.total > 0) {
//默认选中首行
$(this).datagrid('selectRow', 0);
//获取选中行
_roleRow = $("#roleDT").datagrid("getSelected");
//获取角色功能授权
GetRoleFun();
}
},
onClickRow: function (rowIndex, rowData) {
if (rowData) {
_rowIndex = rowIndex;
_roleRow = rowData;
//获取角色功能授权
GetRoleFun();
}
}
});
//设置分页控件
var p = $('#roleDT').datagrid('getPager');
$(p).pagination({
showPageList: false,
pageSize: 20, //每页显示的记录条数,1
beforePageText: '第', //页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '共 {total} 条记录',
onSelectPage: function (pageNumber, pageSize) {
GetRoles( pageNumber, pageSize);
}
});
}
function GetRoles(areaCode, pageNumber, pageSize) {
AjaxCall("/Sys/Role/GetRole", { pageIndex: pageNumber, pageSize: pageSize }, function (res) {
$('#roleDT').datagrid('loadData', { "total": res.total, "rows": res.rows });
});
}
//获取角色功能授权
function GetRoleFun() {
ResetFunChecked(); //复选框重置为未选状态
AjaxCall("/Sys/Role/GetRoleFun", { roleID: _roleRow.ID }, function (res) {
$.each(res, function (i, n) {
if ($('#' + n.sFunId)) {
$('#' + n.sFunId).prop("checked", true);
}
if ($('#operate' + n.sFunId)) {
if (n.bOperateAuth != null && n.bOperateAuth) { $('#operate' + n.sFunId).prop("checked", true); }
else $('#operate' + n.sFunId).prop("checked", false);
}
if ($('#query' + n.sFunId)) {
if (n.bQueryAuth != null && n.bQueryAuth) { $('#query' + n.sFunId).prop("checked", true); }
else $('#query' + n.sFunId).prop("checked", false);
}
});
});
}
3、点击保存
//保存角色功能授权
function SaveRoleFun() {
//判断是否有角色数据
if (IsRoleCount()) return;
var roleFuns = [];
$("input[name='funlist']").each(function () {
if ($(this).is(':checked')) {
var tid = $(this).id;
var tText = $(this).text();
roleFuns.push(
{
ID: 0,
sRoleId: _roleRow.ID, //角色ID
sFunId: this.id, //功能ID
bOperateAuth: $('#operate' + this.id).is(':checked') ? true : false, //可操作
bQueryAuth: $('#query' + this.id).is(':checked') ? true : false //可查询
});
}
});
AjaxCall("/Sys/Role/SaveRoleFun", { roleFuns: roleFuns, roleID: _roleRow.ID }, function (data) {
if (data == 1) $.messager.alert('提示', '保存成功', 'info');
else $.messager.alert('错误', '保存失败', 'error');
});
}
将所有信息全部发到数据库里面,先删除以前该ID对应的数据,再插入新的信息。
/// <summary>
/// 保存角色功能授权
/// </summary>
/// <param name="roleFuns">角色功能授权</param>
/// <param name="roleId">角色Id</param>
/// <returns></returns>
[Validate(true, "Role", "角色管理-保存角色功能授权")]
public int SaveRoleFun(List<EHECD_RoleFunAuth> roleFuns, string roleID)
{
RoleBll bll = new RoleBll();
return bll.SaveRoleFun(roleFuns, roleID);
}
/// <summary>
/// 保存角色功能授权
/// </summary>
/// <param name="roleFuns">角色功能授权</param>
/// <param name="roleId">角色Id</param>
/// <returns></returns>
public int SaveRoleFun(List<EHECD_RoleFunAuth> roleFuns, string roleId)
{
if (roleFuns == null)
return 0;
using (DBSession session = DBSession.TryGet())
{
try
{
session.BeginTransaction();
session.Delete<EHECD_RoleFunAuth>(" sRoleID=? ", roleId);
foreach (EHECD_RoleFunAuth item in roleFuns)
{
item.ID = BllHelper.GetGUID;
session.Insert<EHECD_RoleFunAuth>(item);
}
session.Commit();
return 1;
}
catch (Exception ex)
{
session.Rollback();
return 0;
}
}
}