通用权限框架--web 首页

1.首页截图

2.首页views

布局分为三部分top,left,main

引入easyui和jquery的js以及相关的css

使用easyui进行布局,分区代码body设置class="easyui-layout"

<body class="easyui-layout" >

<div region="north"  id="">top</div>

<div region="west" id="">left部分</div>

<div region="center" id="">main</div>

</body>

3.左侧导航菜单js脚本initleftmenu()

$(document).ready(function () {
InitLeftMenu();
tabClose();
tabCloseEven();
passwordclose();
});
//初始化左侧
function InitLeftMenu() {
$("#nav").accordion({ animate: false });
$.getJSON('/Home/InitMenu', function (msg) {
$.each(msg.menus, function (i, n) {
var menulist = '';
menulist += '<ul>';
$.each(n.menus, function (j, o) {
menulist += '<li><div><a ref="' + o.menuid + '" href="javascript:void(0)" rel="' + o.link + '?' + o.prms + '" ><span class="' + o.icon + '" >&nbsp;</span><span class="nav">' + o.menuname + '</span></a></div></li> ';
})
menulist += '</ul>'; $('#nav').accordion('add', {
title: n.menuname,
content: menulist,
iconCls: n.icon
}); });
$('.easyui-accordion li a').click(function () {
var tabTitle = $(this).children('.nav').text();
var url = $(this).attr("rel");
var menuid = $(this).attr("ref");
var s = $(this).children('span');
var icon = s.attr('class');
addTab(tabTitle, url, icon);
$('.easyui-accordion li div').removeClass("selected");
$(this).parent().addClass("selected");
}).hover(function () {
$(this).parent().addClass("hover");
}, function () {
$(this).parent().removeClass("hover");
});
//选中第一个
$('#nav').accordion('select', );
})
} function addTab(subtitle, url, icon) {
if (!$('#tabs').tabs('exists', subtitle)) {
$('#tabs').tabs('add', {
title: subtitle,
content: createFrame(url),
closable: true,
icon: icon
});
} else {
$('#tabs').tabs('select', subtitle);
$('#mm-tabupdate').click();
}
tabClose();
} function createFrame(url) {
var s = '<iframe scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe>';
return s;
} function tabClose() {
/*双击关闭TAB选项卡*/
$(".tabs-inner").dblclick(function () {
var subtitle = $(this).children(".tabs-closable").text();
$('#tabs').tabs('close', subtitle);
})
/*为选项卡绑定右键*/
$(".tabs-inner").bind('contextmenu', function (e) {
$('#mm').menu('show', {
left: e.pageX,
top: e.pageY
}); var subtitle = $(this).children(".tabs-closable").text(); $('#mm').data("currtab", subtitle);
$('#tabs').tabs('select', subtitle);
return false;
});
}
//绑定右键菜单事件
function tabCloseEven() {
//刷新
$('#mm-tabupdate').click(function () {
var currTab = $('#tabs').tabs('getSelected');
var url = $(currTab.panel('options').content).attr('src');
$('#tabs').tabs('update', {
tab: currTab,
options: {
content: createFrame(url)
}
})
})
//关闭当前
$('#mm-tabclose').click(function () {
var currtab_title = $('#mm').data("currtab");
$('#tabs').tabs('close', currtab_title);
})
//全部关闭
$('#mm-tabcloseall').click(function () {
$('.tabs-inner span').each(function (i, n) {
var t = $(n).text();
$('#tabs').tabs('close', t);
});
});
//关闭除当前之外的TAB
$('#mm-tabcloseother').click(function () {
$('#mm-tabcloseright').click();
$('#mm-tabcloseleft').click();
});
//关闭当前右侧的TAB
$('#mm-tabcloseright').click(function () {
var nextall = $('.tabs-selected').nextAll();
if (nextall.length == ) {
//msgShow('系统提示','后边没有啦~~','error');
alert('后边没有啦~~');
return false;
}
nextall.each(function (i, n) {
var t = $('a:eq(0) span', $(n)).text();
$('#tabs').tabs('close', t);
});
return false;
});
//关闭当前左侧的TAB
$('#mm-tabcloseleft').click(function () {
var prevall = $('.tabs-selected').prevAll();
if (prevall.length == ) {
alert('到头了,前边没有啦~~');
return false;
}
prevall.each(function (i, n) {
var t = $('a:eq(0) span', $(n)).text();
$('#tabs').tabs('close', t);
});
return false;
}); //退出
$("#mm-exit").click(function () {
$('#mm').menu('hide');
})
} //弹出信息窗口 title:标题 msgString:提示信息 msgType:信息类型 [error,info,question,warning]
function msgShow(title, msgString, msgType) {
$.messager.alert(title, msgString, msgType);
}
//密码关闭
function passwordclose() {
$('#dvpassword').dialog({
closed: true,
modal: true
}); }

4.首页HomeController

主要是初始化左侧导航菜单

    public class HomeController : Controller
{
public ActionResult Index()
{
return View();
} public ActionResult InitMenu()
{
//Session["login_id"] = "0001"; //c测试
string userid = "";
if (Session["login_id"] != null && Session["login_prms"] != null)
{
userid = Session["login_id"].ToString();
Dictionary<int, string> login_prms = new Dictionary<int, string>();
login_prms = (Dictionary<int, string>)Session["login_prms"];
var result = new G_menuRepository().LoadEntities(a => a.isshow == && login_prms.Keys.Contains(a.id)).ToList();
IG_menuRepository repository = RepositoryFactory.G_menuRepository;
repository.SetLazyLoading(false);
return Content("{\"menus\":[" + GetMenu(result, , login_prms).Trim(',') + "]}");
}
else
{
return Content("logout");
}
} public string GetMenu(List<G_menu> result, int id, Dictionary<int, string> login_prms)
{
StringBuilder sb = new StringBuilder();
string parentmenu = "", submenu = "";
foreach (var rs1 in result.Where(p => p.parentid == id))
{
parentmenu = ("{\"menuid\":\"" + rs1.menuid + "\",\"icon\":\"" + rs1.icon + "\",\"menuname\":\"" + rs1.menuname + "\",\"prms\":\"" + login_prms[rs1.id].ToString() + "\",\"link\":\"" + rs1.link + "\"");
submenu = GetMenu(result, rs1.id, login_prms);
if (string.IsNullOrEmpty(submenu))
{
sb.Append(((parentmenu + ",\"menus\":[" + submenu).Trim(',')) + "]},");
}
else
{
sb.Append(((parentmenu + ",\"menus\":[" + submenu).Trim(',')) + "]},");
}
}
return sb.ToString();
}
}

初始化导航菜单返回json格式如下

{
"menus": [
{
"menuid": "",
"icon": "icon icon-nav",
"menuname": "系统管理",
"prms": "",
"link": "",
"menus": [
{
"menuid": "",
"icon": "icon icon-Pass",
"menuname": "组织机构",
"prms": "2,3,4",
"link": "/orga",
"menus": []
},
{
"menuid": "",
"icon": "icon icon-set",
"menuname": "导航菜单",
"prms": "2,3,4",
"link": "/menu",
"menus": []
},
{
"menuid": "",
"icon": "icon icon-sys",
"menuname": "操作权限",
"prms": "2,3,4",
"link": "/prms",
"menus": []
},
{
"menuid": "",
"icon": "icon icon-users",
"menuname": "角色管理",
"prms": "2,3,4,5",
"link": "/role",
"menus": []
},
{
"menuid": "",
"icon": "icon icon-role",
"menuname": "用户管理",
"prms": "2,3,4",
"link": "/grantuser",
"menus": []
}
]
},
{
"menuid": "",
"icon": "icon icon-delete",
"menuname": "业务管理",
"prms": "",
"link": "",
"menus": []
}
]
}

.net通用权限框架B/S (五)--WEB(1)首页的更多相关文章

  1. .net通用权限框架B/S (五)--WEB(3)组织机构

    .net通用权限框架B/S 首先我们看导航菜单中,对组织机构的设置 我们设置了组织机构名称,链接(对应的mvc控制器名/orga),图标是个小钥匙,菜单的操作权限设置的是"添加,编辑,删除& ...

  2. .net通用权限框架B/S (五)--WEB(2)登录

    .net通用权限框架 登录成功将 1.登录用户id保存到session 2.保存权限到Dictionary<int,string>,然后将该对象保存到session中,以便后续页面使用 D ...

  3. 看过《大湿教我写.net通用权限框架(1)之菜单导航篇》之后发生的事(续)——主界面

    引言 在UML系列学习中的小插曲:看过<大湿教我写.net通用权限框架(1)之菜单导航篇>之后发生的事 在上篇中只拿登录界面练练手,不把主界面抠出来,实在难受,严重的强迫症啊.之前一直在总 ...

  4. .net通用权限框架B/S(一)

    一直做软件实施,用过一些二次开发平台,最近看了一些大神写的框架,于是参考写了一个B/S通用权限框架,项目使用MVC4+EF5+EASYUI(.net framework4),开发环境vs2010+sq ...

  5. .net通用权限框架C/S概览

    通用权限框架cs部分 先概述一下,cs使用vs2010+sql2008 和bs公用同一个数据库 为使界面好看使用了第三方控件 donetbar和devexpress,正版是要收费的,但是你们都明白的可 ...

  6. Winfrom devexpress 通用权限框架

    毕业到现在也快两年了,手上的项目也有好几个,但总感觉不是狠理想,近来把手上杂七杂八的项目整理了一下,结合各个项目的优点,重新开发了一套winfrom+devexpress 通用权限(CS)框架(BS版 ...

  7. ASP.NET通用权限框架 权限管理系统源码jquery 精美UI源码

    软件技术开发,合作请联系QQ:858-048-581 开发工具 VS2010 .sql2005.2008等(在Sql server数据执行脚本即可)  VS2010 打开保证本地运行成功(数据库.源代 ...

  8. 基于SSM框架的通用权限框架设计

     1. 整体解决方案概述    1.1 权限整体解决方案概述     权限设计主要有一下几大部分组成:     PassPort:    针对现在系统的分析,系统之间有部分信息是共享的,这部分信息将由 ...

  9. .net通用权限框架B/S (四)--DAL数据层以及数据接口

    数据层以及数据接口设计如下图(以g_orga组织机构和g_role角色)为例,这几个类可以通过.tt模版生成 设计参考学习http://www.cnblogs.com/hanyinglong/arch ...

随机推荐

  1. mahout源码分析之Decision Forest 三部曲之二BuildForest(1)

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. BuildForest是在mahout-examples-0.7-job.jar包的org\apache ...

  2. 无废话MVC入门教程二[第一个小Demo]

    mvc技术交流,欢迎加群: 本文目标 1.了解"模型"."视图"."控制器"的创建.调试和使用过程. 本文目录 1.创建模型 2.创建视图 ...

  3. poj2752Seek the Name, Seek the Fame

    Description The little cat is so famous, that many couples tramp over hill and dale to Byteland, and ...

  4. codeforces 几道题目

    BZOJ挂了....明天就要出发去GDKOI了....不能弃疗. 于是在cf水了几道题, 写写详(jian)细(dan)题解, 攒攒RP, 希望GDKOI能好好发挥.......  620E. New ...

  5. 代码编辑器的最终选择Sublime Text 2

    对于程序员,不是每一种语言都有很好的代码编辑器,VS这样的编辑环境+编译器也不能适合所有的语言,同时VS占用内存量很大,开几个VS,计算机就开始有点吃不消了.所以简便的代码编辑器很重要. 再Windo ...

  6. Android Material Design之Toolbar与Palette

    转:http://blog.csdn.net/jdsjlzx/article/details/41441083 前言 我们都知道Marterial Design是Google推出的全新UI设计规范,如 ...

  7. JavaScript计算加减乘除

    //加法函数 function jiafa(a,b){ var a=parseInt(document.getElementById("number1").value); //pa ...

  8. javascript 获取元素宽高

    style.width,clientWidth,offsetWidth <!doctype html> <html> <head> <meta charset ...

  9. 初学Django

    纵然有众多大牛写过这些简单入门文章,但作为记录,还是要自己动手写下来的比较靠谱,‘好脑筋不如烂笔头’啊! Python 安装 Django本身是纯Python编写的,所以安装框架的第一步是确保你已经安 ...

  10. jQuery 的.data()方法

    jQuery文档对.data()方法的描述: As of jQuery 1.4.3 HTML 5 data- attributes will be automatically pulled in to ...