.net通用权限框架 (五)--WEB(1)首页

通用权限框架--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‘, 0);
    })
}

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 == 0) {
            //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 == 0) {
            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 == 0 && login_prms.Keys.Contains(a.id)).ToList();
                IG_menuRepository repository = RepositoryFactory.G_menuRepository;
                repository.SetLazyLoading(false);
                return Content("{\"menus\":[" + GetMenu(result, 0, 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": "11",
            "icon": "icon icon-nav",
            "menuname": "系统管理",
            "prms": "1",
            "link": "",
            "menus": [
                {
                    "menuid": "1101",
                    "icon": "icon icon-Pass",
                    "menuname": "组织机构",
                    "prms": "2,3,4",
                    "link": "/orga",
                    "menus": []
                },
                {
                    "menuid": "1102",
                    "icon": "icon icon-set",
                    "menuname": "导航菜单",
                    "prms": "2,3,4",
                    "link": "/menu",
                    "menus": []
                },
                {
                    "menuid": "1104",
                    "icon": "icon icon-sys",
                    "menuname": "操作权限",
                    "prms": "2,3,4",
                    "link": "/prms",
                    "menus": []
                },
                {
                    "menuid": "1105",
                    "icon": "icon icon-users",
                    "menuname": "角色管理",
                    "prms": "2,3,4,5",
                    "link": "/role",
                    "menus": []
                },
                {
                    "menuid": "1206",
                    "icon": "icon icon-role",
                    "menuname": "用户管理",
                    "prms": "2,3,4",
                    "link": "/grantuser",
                    "menus": []
                }
            ]
        },
        {
            "menuid": "16",
            "icon": "icon icon-delete",
            "menuname": "业务管理",
            "prms": "1",
            "link": "",
            "menus": []
        }
    ]
}

时间: 2024-08-30 03:23:43

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

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

.net通用权限框架 登录成功将 1.登录用户id保存到session 2.保存权限到Dictionary<int,string>,然后将该对象保存到session中,以便后续页面使用 Dictionary<int,string> int存放该登录用户可以有权限访问的menu(导航菜单)的id如下截图红色1, string存放该登录用户对该导航菜单的操作权限的id如下截图红色2标注,由于一个导航页面该用户可能有多个权限,多个权限逗号分割;

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

.net通用权限框架B/S 首先我们看导航菜单中,对组织机构的设置 我们设置了组织机构名称,链接(对应的mvc控制器名/orga),图标是个小钥匙,菜单的操作权限设置的是"添加,编辑,删除"三个 当一个用户登录系统,根据这个用户对应的角色,他可能有三个权限,也可能只有编辑权限;当然他也可能根本看不到"组织机构"这个导航菜单 用户登录先判断导航菜单权限,有就显示,用户单击导航菜单,再判断他的操作权限.如添加,删除 组织机构首页:如下图,整个看是列表使用easuyui的

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

通用权限框架cs部分 先概述一下,cs使用vs2010+sql2008 和bs公用同一个数据库 为使界面好看使用了第三方控件 donetbar和devexpress,正版是要收费的,但是你们都明白的可以找...用 首页 系统主要还是5个模块  组织机构,导航菜单,员工,操作权限,角色 后续会再此框架上做一个简单的进销存 组织机构 导航 员工 操作权限 角色 角色授权

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

开发工具 VS2010 .sql2005.2008等(在Sql server数据执行脚本即可)  VS2010 打开保证本地运行成功(数据库.源代码)  设计结构采用标准三层设计,是一套非常成熟的框架程序,可直接用于大型系统基础框架快速开发,及程序员学习. 1.菜单导航管理 2.操作按钮 3.角色管理 4.部门管理 5.用户管理(用户权限) 6.用户组管理(设置成员,用户组权限) 7.系统配置(动态配置系统参数) 8.附加属性(自定义属性) 9.系统日志(异常记录) 10.数据库备份/还原 11

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

?1. 整体解决方案概述 ? ?1.1?权限整体解决方案概述 ? ? 权限设计主要有一下几大部分组成:? ? ?PassPort:? ? 针对现在系统的分析,系统之间有部分信息是共享的,这部分信息将由中心话的Passport来统一维护 用于中心存放用户,组织架构,渠道,品牌和产品相关的信息. 有关员工信息,可以从现有HR系统或者MDM中取得. 有关外部人员活动目录,可以专门在本PassPort系统中维护. ? ?权限订阅模块:? ?负责订阅接受Passport发出的相关实体修改的信息.? ?资源

ASP.net教程]大湿教我写.net通用权限框架之菜单导航篇

一.坑爹的老板 “我X!这个项目是要商业应用的,你还想用easyUI,500美刀的授权费用.一个项目才赚多少钱!赶紧给我换了,明天去客户那边要做demo的,今天晚上必须给我赶出来!不懂的去问大雄”黄总对我又是一通大吼. 我容易嘛我,以前做CS架构系统的,现在突然让我转BS,前端开发实在太费力了.更要命的是还碰上一个SB坑爹的小老板.公司一共就三个人,老板(抠得要死,不知道怎么讨到老婆的).大雄(大湿级攻城湿,BS前端开发大牛).我(屌丝码农). 二.开工搞起 好吧,老板都发话了,自己重做吧,啥都

基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面

经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI来改造吉日嘎拉的通用权限管理Web端的UI. js+css+图片文件如下 新增一个Menu.ashx文件,用于输出当前用户权限可以查看的所有菜单. 新增Main.aspx文件用于主框架,所有内容也放在名为fraContent的iframe中.其它涉及的登录跳转小修改暂时略过. 有图有真相,先上图:

(转) shiro权限框架详解06-shiro与web项目整合(上)

http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springMVC+mybatis,所以我们是基于搭建好的项目进行改造的. 将shiro整合到web应用中 登录 退出 认证信息在页面展现,也就是显示菜单 shiro的过滤器 将shiro整合到web应用中 数据库脚步 sql脚步放到项目中,项目上传到共享的资源中,文章最后给出共享url. 去除项目中不使用shi

Django之路- 如何开发通用且万能的的权限框架组件

本节内容 需求讨论 权限设计 代码设计 自定义权限钩子 业务场景分析 本节课老男孩教育ALEX教你假设我们在开发一个培训机构的 客户关系管理系统,系统分客户管理.学员管理.教学管理3个大模块,每个模块大体功能如下 客户管理销售人员可以录入客户信息,对客户进行跟踪,为客户办理报名手续销售人员可以修改自己录入的客户信息客户信息不能删除销售主管可以查看销售报表 学员管理 学员可以在线报名 学员可以查看自己的报名合同.学习有效期学员可以在线提交作业 .查看自己的成绩 教学管理管理员可以创建新课程.班级讲