首页模块就是展示不同权限的最终结果了,在阅读这章之前若有些不明白,可看看后续的单独的权限模块,用户模块,目录模块后从整体上再看首页模块。

阅读该模块需要一定或者是比较熟练的js知识,EasyUI Tab控件知识。整个首页模块的流程是登陆模块获取到了用户的基本信息,可以访问的网页信息,目录信息后,封装在sessionManage会话中,通过JS文件做数据的格式转换及动作定义,通过Css文件做网页的效果美化。简而言之,就是获取后台数据渲染到网页。

1.1视图

首页模块的一级导航选择不同的信息关联二级导航,二级导航展开显示可以访问的页面链接。每一个链接在网页的展示模块通过EasyUI的Tab控件展示,可以实现如下效果:

aaarticlea/png;base64,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" alt="" />

对应单个的tab中显示的网页信息是通过iframe标签的方式实现的。及打开一个tab就创建一个iframe对象。关闭一个tab就释放该iframe对象。

首页模块的基本结构简图如下:

aaarticlea/png;base64,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AEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxhBoAFBFqxBFqAFBEqBFHqAFAEaFGHKEGAEWEGnGEGgAUEWrEEWoAUESoEUeoAUARoUYcoQYARYQacYQaABQRasQRagBQRKgRR6gBQBGhRhyhBgBFhBpxukLNMAzDMIyuUfpV+8KjXiPU/mu8IwAwKKHG67wjADAoocbrvCMAMCihxuu8IwAwKKHG67wjADAoocbrvCMAMCihxuu8IwAwKKHG67wjADAoocbrvCMAMCihxuu8IwAwKKHG67wjADAoocbrvCMAMCihxuu8IwAwKKHG627vSPoeGYZhGIbx8RHwtS7U/mu+klD73TUBgP8eocZbhBoADEeo8RahBgDDEWq8RagBwHCEGm8RagAwHKHGW4Qagzktpj+zdVXtD5Pv7Spzh+Ps++fr+2e2vvz7brn5mh+rqlrNO86Zmh522YU0b28u+a5zZQAGIdR4i1BjMK1QW2/r4dUMpluo3R+bWm+vf612y811IZvFvqqq87P8NG9sWc1/bgsBCCDUeItQYzC5UMtMiVVVewptflzNfybLU3qf3XJzuyVJuquOqbIk6Z4NAQcMQKjxFqHGYApC7Xb/ey0l82e1pVVVVRJqXUsAiCHUeItQYzCnxTSdstosltvcVNa1rs77Lm/5tT9M0qqrd1hjnmyyPD0Ntc7j3vKHvgF8hlDjLUKNwbRmsNbbr+lhMU9uTObYkvY699ZpMb0fataYQkv/9bKTtHaMWrPAzpWWn057Ms8H8BahxluEGoPJh9oqaazksLPj7Hszm2++5sfdcnMpp/X2+tfmojpC7TKjlh7Ndn7sZHmsT++ZUQOCCDXeItQYTLrrMzlG7V5Ux9n19MxzeKWX55itz0vYrs5/rbdUftdnMjl3C7VkUWbUgF8g1HiLUGMwXScTXG6vz4pdg6x9isB0M2nttWyk2GR5auxFbZwxKtSA3yLUeItQYzDH2Xct1O4ddrmg2oPrqF2cjy1rVddtnqx2S3rxjoKv1u8AAAEwSURBVGyo2fUJxBNqvEWoMZTbRNrlH5I5rcuB/49D7ZxW2Zm2+z7T5LlqZx6YUQNGQqjxFqHGQO4Hlp1D7dpDq3lyyFp9tqw55ZbG2Xp7P22zmVb1C7AJNWBMhBpvEWoM5L53cn+YfG9n85/ZullUlx/lTH8Y6nxKQf43oE6L6U/zAh9VprR6hVrye1btXasAnyLUeItQA4DhCDXeItQAYDhCjbcINQAYjlDjLUINAIYj1HiLUAOA4Qg13iLUAGA4Qo23CDUAGI5Q4y1pqBmGYRiGMdwI+Fr/QKgZYxuf/YgAAKnIL1yhZhiGYRiG8cr4bJNlCTXDMAzDMIxXxmebLEuoGYZhGIZhvDI+22RZL4YaAABDE2oAACMl1AAARkqoAQCMlFADABgpoQYAMFL/B7fYr7lEvMZoAAAAAElFTkSuQmCC" alt="" />

首页视图是由两部分视图组成的。主视图主要是展示整个的框架结构,还有一个部分视图主要是展示左侧的权限信息页面。主视图中比较关键的代码如下:

@using Models
@using Page = Models.Page

<!--先把页面model加载到视图-->

<!--解析Model生成一级导航目录信息-->

<ul class="menuchild">
                        @if (ViewBag.Navigation != null)
                        {
                            IList<Catalog> navigationList = (List<Catalog>)ViewBag.Navigation;
                            foreach (Catalog item in navigationList)
                            {
                            <li><a onclick="navigationClick(@item.CatalogId);">@item.CatalogName</a><i></i></li>
                            }
                        }
                    </ul>

<!--左边菜单容器 加载部分视图展示左边的菜单信息 -->   
                <div class="scroll-panel" id="scrollpanel">
                    <div style="top: -10.8px;" class="scroll-content" id="scrollcontent">
                        <div id="rightListDiv">
                            @Html.Partial("_rightMessage", new { navigationId = -1 })
                        </div>
                    </div>
                </div>

首页详细视图代码如下:

 @using Models
@using Page = Models.Page
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>####</title>
<link rel="stylesheet" type="text/css" href="~/Content/easyui143/themes/gray/easyui.css">
<link rel="stylesheet" type="text/css" href="~/Content/easyui143/themes/icon.css"> <link href="~/Content/CSS/style.css" rel="stylesheet" />
<style>
.panel-tool {
visibility: hidden;
} #preferenceUl {
display: list-item;
margin: 5px;
margin-top: 2px;
padding: 10px;
} #preferenceUl li {
display: list-item;
list-style-type: square;
margin: 5px;
}
</style> </head> <body style="overflow: hidden;"> <div class="header">
<!--header页面上面部分 -->
<div class=" system_name"></div>
<!--用户 -->
<div class="top_user" onmouseover="theimg.src='@Url.Content("~/Content/image/title_images/user_white.png")'" onmouseout="theimg.src='@Url.Content("~/Content/image/title_images/user_blue.png")'">
<dl class="topmenu">
<dd>
<div class="toptitle" style="height: 50px;">
<span style="width: 32px; height: 32px;">
<img id="theimg" src="~/Content/image/title_images/user_blue.png" />
</span>
<span class="spant">@Html.Raw(ViewData["UserName"]) </span>
</div>
<ul class="menuchild">
<li><a href="javascript:Exit();">退出系统</a><i></i></li> </ul>
</dd>
</dl>
</div> <!--导航 -->
<div class="top_navigation" onmouseover="nav_theimg.src='@Url.Content("~/Content/image/title_images/navigation.png")'" onmouseout="nav_theimg.src='@Url.Content("~/Content/image/title_images/navigation.png")'">
<dl class="topmenu">
<dd>
<div class="toptitle" style="height: 50px;">
<span style="width: 32px; height: 32px;">
<img id="nav_theimg" src="~/Content/image/title_images/navigation.png" />
</span>
<span class="spant">导航</span>
</div>
<ul class="menuchild">
@if (ViewBag.Navigation != null)
{
IList<Catalog> navigationList = (List<Catalog>)ViewBag.Navigation;
foreach (Catalog item in navigationList)
{
<li><a onclick="navigationClick(@item.CatalogId);">@item.CatalogName</a><i></i></li>
}
}
</ul>
</dd>
</dl>
</div> <!--首页 -->
<div class="top_index" onmouseover="index_img.src='../Content/image/title_images/index_white.png'" onmouseout="index_img.src='../Content/image/title_images/index_blue.png'">
<dl class="topmenu">
<dd>
<div class="toptitle" style="height: 50px;">
<a href="#" onclick="addTab('首页','');" style="color: #ffffff"><span style="width: 32px; height: 32px;">
<img id="index_img" src="~/Content/image/title_images/index_blue.png" />
</span>
<span class="spant">首页 </span></a>
</div>
</dd>
</dl>
</div> </div>
<!--header结束 --> <div class="logo" id="nowTime">
<!--系统logodiv -->
</div> <div class="main_hoder">
<!--下面整个容器 -->
<div class="left_hoder">
<!--左边容器 -->
<div class="left_hoder_menu">
<!--左边菜单容器 -->
<div class="scroll-panel" id="scrollpanel">
<div style="top: -10.8px;" class="scroll-content" id="scrollcontent">
<div id="rightListDiv">
@Html.Partial("_rightMessage", new { navigationId = -1 })
</div>
</div>
</div>
<div class="scroll-bar" id="scrollbar">
<div class="scroll-block" id="scrollblock"></div>
</div>
</div>
</div> <div class="center_hoder">
<div class="easyui-tabs" data-options="fit:true,border:false,plain:true" id="pageTab"> <div title="首页" style="padding: 10px;"> <div class="easyui-layout" data-options="fit:true"> 欢迎加载首页信息。 </div> </div>
</div>
</div>
<!--其他网页显示的容器-->
<div class="footer">
技术支持:######
</div> </div>
<!--下面整个容器 -->
</body> <script src="~/Scripts/jquery.js"></script>
<!--滚动条效果 -->
<script src="~/Scripts/mousewheel.js"></script>
<script src="~/Scripts/scroll.js"></script>
<script type="text/javascript" src="~/Content/easyui143/jquery.easyui.min.js"></script>
<script type="text/javascript" src="~/Content/easyui143/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="~/Scripts/CustomJs/default.js"></script> </html>

IndexHome.cshtml

部分视图代码完整代码如下:

 @using Models
@using Page = Models.Page
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width" /> <link href="~/Content/CSS/style.css" rel="stylesheet" />
</head>
<body>
<dl class="leftmenu">
<!--左边一级菜单样式 -->
@if (ViewBag.RightList != null)
{
IList<Catalog> rightList = (List<Catalog>)ViewBag.RightList;
foreach (Catalog right in rightList)
{
IList<Page> pageList = right.PageList;
if (pageList.Count > 0)
{
<dd>
<div class='title'>
<span class='img_style'>
<img id='j_img' src='@right.PictureUrl' /></span>@right.CatalogName
</div>
<ul class='menuson'>
@foreach (Page page in pageList)
{
<li><cite></cite>
<a href='#' onclick="addTab('@page.PageName','@("../" + page.PageUrl)');">@page.PageName</a><i></i></li>
}
</ul>
</dd>
}
}
}
</dl> <script type="text/javascript" src="~/Scripts/CustomJs/_rightMessage.js"></script>
</body>
</html>

_rightMessage.cshtml

1.2JS文件

首页加载共用了两个JS文件,其中视图IndexHome.cshtml对应default.js,_rightMessage.cshtml对应_rightMessage.js文件。

两个文件中关键的代码均是创建iframe对象和销毁iframe对象,部分代码如下:

/**  把iframe与Tab的属性结合起来。
         * 增加iframe模式的标签页 
         * param {[type]} jq     [description]  
         * param {[type]} params [description]  
          */
        addIframeTab: function (jq, params) {
            return jq.each(function () {
                if (params.tab.href) {
                    delete params.tab.href;
                }
                $(this).tabs('add', params.tab);
                $(this).tabs('loadTabIframe', { 'which': params.tab.title, 'iframe': params.iframe });
            });
        },

/**
         * 更新tab的iframe内容  
         * param  {jq Object} jq     [description]  
        * param  {Object} params [description]  
       * return {jq Object}        [description]  
        */
        updateIframeTab: function (jq, params) {
            return jq.each(function () {
                params.iframe = params.iframe || {};
                if (!params.iframe.src) {
                    var $tab = $(this).tabs('getTab', params.which);
                    if ($tab == null) return;
                    var $tabBody = $tab.panel('body');
                    var $iframe = $tabBody.find('iframe');
                    if ($iframe.length === 0) return;
                    $.extend(params.iframe, { 'src': $iframe.attr('src') });
                }
                $(this).tabs('loadTabIframe', params);
            });
        }

//创建Frame
function createFrame(url) {
    var s = '<iframe scrolling="hidden" frameborder="0"  src="' + url + '" style="width:100%;height:98%;"></iframe>';
    return s;
};

//添加tab页
function addTab(title, tabHref) {
    if ($("#pageTab").tabs("exists", title)) {
        $("#pageTab").tabs("select", title);
    } else {
        $('#pageTab').tabs('addIframeTab', {
            tab: { title: title, closable: true },
            iframe: { src: tabHref }
        });
    }

default.js文件的完整代码如下:

 $(function () {
//设置左侧导航栏的默认高度
$(".scroll-panel").height($(window).height() - 110); //左侧导航菜单监听事件,修改图标样式
$('.title').click(function () {
var $ul = $(this).next('ul');
var src, srcArray; src = $(".title_current img").attr("src");
if (src != null) {
srcArray = src.indexOf('_blue'); src = src.substring(0, srcArray) + '.png'; $(".title_current img").attr("src", src);
}
$(".title_current").removeClass("title_current"); //移除所有的title_current样式类 $(".leftmenu").find('ul').slideUp(); if ($ul.is(':visible')) {
//收起导航菜单
$(this).next('ul').slideUp();
} else {
//展开导航菜单并修改目录菜单的样式以及图标
$(this).next('ul').slideDown();
$(this).addClass("title_current"); src = $(".title_current img").attr("src"); //目录图标
srcArray = src.split('.');
src = srcArray[0] + '_blue.png';
$(".title_current img").attr("src", src);
}
}); //页面导航监听事件
$('.menuson a').click(function () {
$('.menuson a').removeClass("aclick");
$(this).addClass("aclick");
}); //当前用户获取焦点
$('.top_user').hover(function () {
var path = $('.top_user .topmenu .toptitle');
var $ul = path.next('ul');
if ($ul.is(':visible')) {
path.next('ul').slideUp();
} else {
path.next('ul').slideDown();
}
}); //导航获取焦点
$('.top_navigation').hover(function () {
var path = $('.top_navigation .topmenu .toptitle');
var $ul = path.next('ul');
if ($ul.is(':visible')) {
path.next('ul').slideUp();
} else {
path.next('ul').slideDown();
}
}); $.extend($.fn.tabs.methods, {
/**
* 加载iframe内容
* param {jq Object} jq [description]
* param {Object} params params.which:tab的标题或者index;params.iframe:iframe的相关参数
* return {jq Object} [description]
*/
loadTabIframe: function (jq, params) {
return jq.each(function () {
var $tab = $(this).tabs('getTab', params.which);
if ($tab == null) return; var $tabBody = $tab.panel('body'); //销毁已有的iframe
var $frame = $('iframe', $tabBody);
if ($frame.length > 0) {
try {//跨域会拒绝访问,这里处理掉该异常
$frame[0].contentWindow.document.write('');
$frame[0].contentWindow.close();
} catch (e) {
//Do nothing
}
$frame.remove();
if ($.browser.msie) {
CollectGarbage();
}
}
$tabBody.html('');
$tabBody.css({ 'overflow': 'hidden', 'position': 'relative' });
var $mask = $('<div style="position:absolute;z-index:2;width:100%;height:100%;background:#ccc;z-index:1000;opacity:0.3;filter:alpha(opacity=30);"><div>').appendTo($tabBody);
var $maskMessage = $('<div class="mask-message" style="z-index:3;width:auto;height:16px;line-height:16px;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-92px;border:2px solid #95B8E7;padding: 12px 5px 10px 30px;background: url(\'/Content/EasyUI/themes/bootstrap/images/loading.gif\') no-repeat scroll 5px center #FFF;">' + (params.iframe.message || '正在加载,请稍候 ...') + '</div>').appendTo($tabBody);
var $containterMask = $('<div style="position:absolute;width:100%;height:100%;z-index:1;background:#fff;"></div>').appendTo($tabBody);
var $containter = $('<div style="position:absolute;width:100%;height:100%;z-index:0;"></div>').appendTo($tabBody); var iframe = document.createElement("iframe");
iframe.src = params.iframe.src;
iframe.frameBorder = params.iframe.frameBorder || 0;
iframe.height = params.iframe.height || '100%';
iframe.width = params.iframe.width || '100%';
if (iframe.attachEvent) {
iframe.attachEvent("onload", function () {
$([$mask[0], $maskMessage[0]]).fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
if ($(this).hasClass('mask-message')) {
$containterMask.fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
});
}
});
});
} else {
iframe.onload = function () {
$([$mask[0], $maskMessage[0]]).fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
if ($(this).hasClass('mask-message')) {
$containterMask.fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
});
}
});
};
}
$containter[0].appendChild(iframe);
});
}, /**
* 增加iframe模式的标签页
* param {[type]} jq [description]
* param {[type]} params [description]
*/
addIframeTab: function (jq, params) {
return jq.each(function () {
if (params.tab.href) {
delete params.tab.href;
}
$(this).tabs('add', params.tab);
$(this).tabs('loadTabIframe', { 'which': params.tab.title, 'iframe': params.iframe });
});
}, /**
* 更新tab的iframe内容
* param {jq Object} jq [description]
* param {Object} params [description]
* return {jq Object} [description]
*/
updateIframeTab: function (jq, params) {
return jq.each(function () {
params.iframe = params.iframe || {};
if (!params.iframe.src) {
var $tab = $(this).tabs('getTab', params.which);
if ($tab == null) return;
var $tabBody = $tab.panel('body');
var $iframe = $tabBody.find('iframe');
if ($iframe.length === 0) return;
$.extend(params.iframe, { 'src': $iframe.attr('src') });
}
$(this).tabs('loadTabIframe', params);
});
}
}); }); //退出登陆
function Exit() {
if (window.confirm("确定要退出吗?")) {
window.location.href = "../Login/Login";
}
}; //获取当前时间并格式化
function current() {
var d = new Date(), str = ''; if (parseInt(d.getHours()) <) {
str += "0" + d.getHours() + ':';
}
else {
str += d.getHours() + ':';
}
if (parseInt(d.getMinutes()) < 10) {
str += "0" + d.getMinutes() + ':';
}
else {
str += d.getMinutes() + ':';
} if (parseInt(d.getSeconds()) < 10) {
str += "0" + d.getSeconds();
}
else {
str += d.getSeconds();
} str += "</div><div style='position: relative; top: 40px; left: 120px; width: 100px; font-family: 微软雅黑; font-size: 12px;'>"
+ d.getFullYear() + '年'; //获取当前年份
if (parseInt(d.getMonth()) < 9) {
var m = d.getMonth() + 1 + '月';
str += "0" + m;
}
else {
str += d.getMonth() + 1 + '月'; //获取当前月份(0——11)
}
if (parseInt(d.getDate()) < 10) {
str += "0" + d.getDate() + '日 ';
}
else {
str += d.getDate() + '日 ';
}
str += "</div>"; var today = new Array("星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); var w = "<div style='position: relative; top: 30px; left: 120px; width: 100px; font-family: 微软雅黑; font-size: 12px; font-weight: bold;'>"
+ today[d.getDay()] + '&nbsp;';
return w + str;
} //设置显示时间
setInterval(function () { $("#nowTime").html(current); }, 1000); //“导航”下拉选项的点击事件
function navigationClick(navigationId) {
$("#rightListDiv").load('/IndexHome/RightMessage?navigationId=' + navigationId);
}; //创建Frame
function createFrame(url) {
var s = '<iframe scrolling="hidden" frameborder="0" src="' + url + '" style="width:100%;height:98%;"></iframe>';
return s;
}; //添加tab页
function addTab(title, tabHref) {
if ($("#pageTab").tabs("exists", title)) {
$("#pageTab").tabs("select", title);
} else {
$('#pageTab').tabs('addIframeTab', {
tab: { title: title, closable: true },
iframe: { src: tabHref }
});
}
}; //点击树节点,打开新的tab页
function AddNewTab(node) {
if (node.attributes != null) {
if ($("#pageTab").tabs("exists", node.attributes.pageName)) {
$("#pageTab").tabs("select", node.attributes.pageName);
} else {
$('#pageTab').tabs('addIframeTab', {
tab: { title: node.attributes.pageName, closable: true },
iframe: { src: "/" + node.attributes.url }
});
}
} };

default.js

_rightMessage.js文件的完整代码如下:

 $(function () {
//左侧导航菜单监听事件,修改图标样式
$('.title').click(function () {
var $ul = $(this).next('ul');
var src, srcArray; src = $(".title_current img").attr("src");
if (src != null) {
srcArray = src.indexOf('_blue'); src = src.substring(0, srcArray) + '.png'; $(".title_current img").attr("src", src);
}
$(".title_current").removeClass("title_current"); //移除所有的title_current样式类 $(".leftmenu").find('ul').slideUp(); if ($ul.is(':visible')) {
//收起导航菜单
$(this).next('ul').slideUp();
} else {
//展开导航菜单并修改目录菜单的样式以及图标
$(this).next('ul').slideDown();
$(this).addClass("title_current"); src = $(".title_current img").attr("src"); //目录图标
srcArray = src.split('.');
src = srcArray[0] + '_blue.png';
$(".title_current img").attr("src", src);
}
}); //页面导航监听事件
$('.menuson a').click(function () {
$('.menuson a').removeClass("aclick");
$(this).addClass("aclick");
}); $.extend($.fn.tabs.methods, {
/**
* 加载iframe内容
* param {jq Object} jq [description]
* param {Object} params params.which:tab的标题或者index;params.iframe:iframe的相关参数
* return {jq Object} [description]
*/
loadTabIframe: function (jq, params) {
return jq.each(function () {
var $tab = $(this).tabs('getTab', params.which);
if ($tab == null) return; var $tabBody = $tab.panel('body'); //销毁已有的iframe
var $frame = $('iframe', $tabBody);
if ($frame.length > 0) {
try {//跨域会拒绝访问,这里处理掉该异常
$frame[0].contentWindow.document.write('');
$frame[0].contentWindow.close();
} catch (e) {
//Do nothing
}
$frame.remove();
if ($.browser.msie) {
CollectGarbage();
}
}
$tabBody.html('');
$tabBody.css({ 'overflow': 'hidden', 'position': 'relative' });
var $mask = $('<div style="position:absolute;z-index:2;width:100%;height:100%;background:#ccc;z-index:1000;opacity:0.3;filter:alpha(opacity=30);"><div>').appendTo($tabBody);
var $maskMessage = $('<div class="mask-message" style="z-index:3;width:auto;height:16px;line-height:16px;position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-92px;border:2px solid #95B8E7;padding: 12px 5px 10px 30px;background: url(\'/Content/EasyUI/themes/bootstrap/images/loading.gif\') no-repeat scroll 5px center #FFF;">' + (params.iframe.message || '正在加载,请稍候 ...') + '</div>').appendTo($tabBody);
var $containterMask = $('<div style="position:absolute;width:100%;height:100%;z-index:1;background:#fff;"></div>').appendTo($tabBody);
var $containter = $('<div style="position:absolute;width:100%;height:100%;z-index:0;"></div>').appendTo($tabBody); var iframe = document.createElement("iframe");
iframe.src = params.iframe.src;
iframe.frameBorder = params.iframe.frameBorder || 0;
iframe.height = params.iframe.height || '100%';
iframe.width = params.iframe.width || '100%';
if (iframe.attachEvent) {
iframe.attachEvent("onload", function () {
$([$mask[0], $maskMessage[0]]).fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
if ($(this).hasClass('mask-message')) {
$containterMask.fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
});
}
});
});
} else {
iframe.onload = function () {
$([$mask[0], $maskMessage[0]]).fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
if ($(this).hasClass('mask-message')) {
$containterMask.fadeOut(params.iframe.delay || 'slow', function () {
$(this).remove();
});
}
});
};
}
$containter[0].appendChild(iframe);
});
}, /**
* 增加iframe模式的标签页
* param {[type]} jq [description]
* param {[type]} params [description]
*/
addIframeTab: function (jq, params) {
return jq.each(function () {
if (params.tab.href) {
delete params.tab.href;
}
$(this).tabs('add', params.tab);
$(this).tabs('loadTabIframe', { 'which': params.tab.title, 'iframe': params.iframe });
});
}, /**
* 更新tab的iframe内容
* param {jq Object} jq [description]
* param {Object} params [description]
* return {jq Object} [description]
*/
updateIframeTab: function (jq, params) {
return jq.each(function () {
params.iframe = params.iframe || {};
if (!params.iframe.src) {
var $tab = $(this).tabs('getTab', params.which);
if ($tab == null) return;
var $tabBody = $tab.panel('body');
var $iframe = $tabBody.find('iframe');
if ($iframe.length === 0) return;
$.extend(params.iframe, { 'src': $iframe.attr('src') });
}
$(this).tabs('loadTabIframe', params);
});
}
}); }); //创建Frame
function createFrame(url) {
var s = '<iframe scrolling="hidden" frameborder="0" src="' + url + '" style="width:100%;height:98%;"></iframe>';
return s;
}; //添加tab页
function addTab(title, tabHref) {
if ($("#pageTab").tabs("exists", title)) {
$("#pageTab").tabs("select", title);
} else {
$('#pageTab').tabs('addIframeTab', {
tab: { title: title, closable: true },
iframe: { src: tabHref }
});
}
};

_rightMessage.js

1.3控制器

首页控制器就是把SessionManage会话类中的信息取出来。部分代码如下:

//一级导航目录
                IList<Catalog> navigationList = SessionManage.CurrentUser.NavigationList;
                //操作权限页面
                IList<Catalog> rightList = SessionManage.CurrentUser.RightList;
                if (navigationList != null && navigationList.Count > 0)
                {
                    IList<Catalog> currentRight =
                        (from item in rightList where item.ParentId == navigationList.First().CatalogId select item)
                            .ToList();
                    ViewBag.Navigation = navigationList;
                    ViewBag.RightList = currentRight;
                }

public PartialViewResult RightMessage(int navigationId)

{

//根据一级导航信息,展示二级导航信息

}

IndexHomeController.cs控制器的详细代码如下:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Session;
using OdbcDbAccess;
using System.Data;
using Models; namespace CqReportSystem.Controllers
{
public class IndexHomeController : Controller
{
/// <summary>
/// ****************************
/// 功能:主页
/// 作者:王令
/// 时间:2015-7-18
/// 邮箱:1129137758@qq.com
/// **************************** public ActionResult IndexHome()
{
if (SessionManage.CurrentUser == null)
{
Response.Redirect("/");
}
else
{
//一级导航目录
IList<Catalog> navigationList = SessionManage.CurrentUser.NavigationList;
//操作权限页面
IList<Catalog> rightList = SessionManage.CurrentUser.RightList;
if (navigationList != null && navigationList.Count > )
{
IList<Catalog> currentRight =
(from item in rightList where item.ParentId == navigationList.First().CatalogId select item)
.ToList();
ViewBag.Navigation = navigationList;
ViewBag.RightList = currentRight;
} ViewData["UserName"] = SessionManage.CurrentUser.OperatorName;
}
return View();
} /// <summary>
/// 根据一级目录展示二级目录及访问页面
/// </summary>
/// <param name="navigationId"></param>
/// <returns></returns>
public PartialViewResult RightMessage(int navigationId)
{
if (SessionManage.CurrentUser == null)
{
Response.Write("<script> window.parent.location.href = '/Login/Login';</script>");
}
else
{
IList<Catalog> rightList = SessionManage.CurrentUser.RightList;
if (navigationId == -)
{
IList<Catalog> navigationList = SessionManage.CurrentUser.NavigationList;
navigationId = navigationList.First().CatalogId;
} IList<Catalog> currentRight =
(from item in rightList where item.ParentId == navigationId select item)
.ToList();
ViewBag.RightList = currentRight;
} return PartialView("_rightMessage");
} public ActionResult Home()
{
return View();
} }
}

IndexHomeController.cs

1.4运行页面

当以管理员身份登录时,运行界面如下:

aaarticlea/png;base64,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" alt="" width="1016" height="272" />

当以一般用户登录时,运行界面如下:

aaarticlea/png;base64,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" alt="" width="1014" height="163" />

Web应用程序系统的多用户权限控制设计及实现-首页模块【5】的更多相关文章

  1. Web应用程序系统的多用户权限控制设计及实现-页面模块【9】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的基本模块-页面模块.页面模块涉及到的数据表为页面表. 1.1页面域 为了更规范和方便后期系统的二次开发和维护 ...

  2. Web应用程序系统的多用户权限控制设计及实现-栏目模块【8】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的基本模块-栏目模块.栏目模块涉及到的数据表为目录表. 1.1栏目域 为了更规范和方便后期系统的二次开发和维护 ...

  3. Web应用程序系统的多用户权限控制设计及实现-用户模块【7】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的基本模块-用户模块.用户模块涉及到的数据表为用户表. 1.1用户域 为了更规范和方便后期系统的二次开发和维护 ...

  4. Web应用程序系统的多用户权限控制设计及实现-登录模块【4】

    通过前三个模块的介绍,把web权限系统开发所需要的基本类,Css文件,EasyUI框架等准备好后,就可以着手开始系统的编码了. 登陆模块是权限处理系统的关键,根据输入用户的的信息,可自动从数据库中加载 ...

  5. Web应用程序系统的多用户权限控制设计及实现-总结【11】

    Web应用程序系统的多用户权限控制设计及实现通过10章内容讲述已经结尾了.写这些博客的目的很简单,方便自己以后参考,也留下自己编程岁月的一些痕迹.对于编程,对于工作,真是心甘情愿的就好. 由于这只是一 ...

  6. Web应用程序系统的多用户权限控制设计及实现-权限模块【10】

    前五章均是从整体上讲述了Web应用程序的多用户权限控制实现流程,本章讲述Web权限管理系统的权限配置模块.页面模块涉及到的数据表为权限表.权限配置模块是按照用户组和页面,栏目结合组成的.通过配置一个用 ...

  7. Web应用程序系统的多用户权限控制设计及实现-总述【1】

    中大型的Web系统开发均需要权限的配置,基于多角色,多用户的操作权限管理是一个系统开发的基础.搭建好一套权限,用户,角色,页面一体的开发架构,可以用于后期业务的开发,同时也可用于不同业务的系统开发. ...

  8. Web应用程序系统的多用户权限控制设计及实现-数据库设计【2】

    搭建一个Web权限配置的系统,需要以下五张数据表:人员表,分组表,页面表,目录表,操作权限表.各张数据表中用到的id均为自增1的标识,每张数据表的定义如下: 1.1人员表(operatorinfo)

  9. Web应用程序系统的多用户权限控制设计及实现-项目架构【3】

    本章主要讲述Web权限管理系统的项目架构,及开发中需要的基本类和相关的CSS,JS文件. 1.1系统结构 本系统搭建开发工具为Visual Studio 2012,采用ASP.NET MVC 4.0技 ...

随机推荐

  1. 模拟Jquery选择器

    目前实现的功能有以下几点: 1.$("#adom"); // 返回id为adom的DOM对象 2.$("a"); // 返回一个a标签的数组 3.$(" ...

  2. [ML] Naive Bayes for Text Classification

    TF-IDF Algorithm From http://www.ruanyifeng.com/blog/2013/03/tf-idf.html Chapter 1, 知道了"词频" ...

  3. shell的重定向

    >file  将file文件重定向为输出源,新建模式,可以将正确的结果输出到file文件 >>file 将file文件重定向为输出源,追加模式 <file  将file文件重定 ...

  4. 前端技术Bootstrap的hello world

    ----对于用户来说,界面就是程序本身.那么一个漂亮的web一定是你继续使用这个应用的前题. 这一节我们来一起写个Bootstrap的hello wrold. Bootstrap Bootstrap  ...

  5. java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    本章介绍DataOutputStream.我们先对DataOutputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:http://www.cnblog ...

  6. python面向对象编程(上)

    面向对象编程(OOP,Object Oriented Programming)是每一个高级编程语言都支持的编程方法,比如JAVA/C++/C#等等.学习面向对象编程是每一个程序员都绕不开的重点内容. ...

  7. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  8. Event事件跨浏览器封装

    var Event = { //注册事件 addEvent: function(element,type,handler){ if(element.addEventListener){ //DOM2级 ...

  9. log4net日志记录

    这里是接着上一篇来优化的,上篇:ASP.NET MVC中错误日志信息记录 log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件,数据库,EventLog等),日志就是程序的黑 ...

  10. C#设计模式——适配器模式(Adapter Pattern)

    一.概述在软件开发中,常常会想要复用一个已经存在的组件,但该组件的接口却与我们的需要不相符,这时我们可以创建一个适配器,在需复用的组件的接口和我们需要的接口间进行转换,从而能够正常的使用需复用的组件. ...