EasyUI加zTree使用解析

EasyUI和zTree使用方法和功能加到注解中了,方便查阅和复制

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>BOS管理系统 首页</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <!-- 导入jquery核心类库 -->
        <script type="text/javascript" src="./js/jquery-1.8.3.js"></script>
        <!-- 导入easyui类库 -->
        <link id="easyuiTheme" rel="stylesheet" type="text/css" href="./js/easyui/themes/default/easyui.css">
        <link rel="stylesheet" type="text/css" href="./js/easyui/themes/icon.css">
        <link rel="stylesheet" type="text/css" href="./css/default.css">
        <script type="text/javascript" src="./js/easyui/jquery.easyui.min.js"></script>
        <!-- 导入ztree类库 -->
        <link rel="stylesheet" href="./js/ztree/zTreeStyle.css" type="text/css" />
        <script src="./js/ztree/jquery.ztree.all-3.5.js" type="text/javascript"></script>
        <script src="./js/easyui/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
    </head>

    <!-- easyui-layout进行总体页面布局 -->
    <body class="easyui-layout">
        <div data-options="region:‘north‘,border:false" style="height:70px;padding:10px;">
            <div>
                <img src="./images/logo.png" border="0">
            </div>
            <div id="sessionInfoDiv" style="position: absolute;right: 5px;top:10px;">
                [<strong>超级管理员</strong>],欢迎你!您使用[<strong>192.168.1.100</strong>]IP登录!
            </div>
            <div style="position: absolute; right: 5px; bottom: 10px; ">
                <!-- 两个easyui-menubutton组件的普通方法定义 -->
                <a href="javascript:void(0);" class="easyui-menubutton" data-options="menu:‘#layout_north_pfMenu‘,iconCls:‘icon-ok‘">更换皮肤</a>
                <a href="javascript:void(0);" class="easyui-menubutton" data-options="menu:‘#layout_north_kzmbMenu‘,iconCls:‘icon-help‘">控制面板</a>
            </div>
            <!-- 上边两个easyui-menubutton组件的填充 -->
            <div id="layout_north_pfMenu" style="width: 120px; display: none;">
                <div onclick="changeTheme(‘default‘);">default</div>
                <div onclick="changeTheme(‘gray‘);">gray</div>
                <div onclick="changeTheme(‘black‘);">black</div>
                <div onclick="changeTheme(‘bootstrap‘);">bootstrap</div>
                <div onclick="changeTheme(‘metro‘);">metro</div>
            </div>
            <div id="layout_north_kzmbMenu" style="width: 100px; display: none;">
                <div onclick="editPassword();">修改密码</div>
                <div onclick="showAbout();">联系管理员</div>
                <div class="menu-sep"></div>
                <div onclick="logoutFun();">退出系统</div>
            </div>
        </div>

        <div data-options="region:‘west‘,split:true,title:‘菜单导航‘" style="width:200px">
            <!-- easyui-accordion手风琴组件 -->
            <div class="easyui-accordion" fit="true" border="false">
                <div title="基本功能" data-options="iconCls:‘icon-mini-add‘" style="overflow:auto">
                    <!-- zTree的依托标签 -->
                    <ul id="treeMenu" class="ztree"></ul>
                </div>
                <div title="系统管理" data-options="iconCls:‘icon-mini-add‘" style="overflow:auto">
                    <ul id="adminMenu" class="ztree"></ul>
                </div>
            </div>
        </div>
        <div data-options="region:‘center‘">
            <div id="tabs" fit="true" class="easyui-tabs" border="false">
                <div title="消息中心" id="subWarp" style="width:100%;height:100%;overflow:hidden">
                    <!-- 网页中插入其他页面利器 -->
                    <iframe src="./home.html" style="width:100%;height:100%;border:0;"></iframe>
                </div>
            </div>
        </div>
        <div data-options="region:‘south‘,border:false" style="height:50px;padding:10px;">
            <table style="width: 100%;">
                <tbody>
                    <tr>
                        <td style="width: 400px;">
                            <div style="color: #999; font-size: 8pt;">
                                BOSv2.0综合物流管理平台 | Powered by <a href="http://www.itcast.cn/">传智播客</a>
                            </div>
                        </td>
                        <td style="width: *;" class="co1"><span id="online" style="background: url(./images/online.png) no-repeat left;padding-left:18px;margin-left:3px;font-size:8pt;color:#005590;">在线人数:1</span>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>

        <!--easyui的window组件 初始为关闭状态-->
        <div id="editPwdWindow" class="easyui-window" title="修改密码" collapsible="false" minimizable="false" modal="true" closed="true" resizable="false" maximizable="false" icon="icon-save" style="width: 300px; height: 160px; padding: 5px;
        background: #fafafa">
            <div class="easyui-layout" fit="true">
                <div region="center" border="false" style="padding: 10px; background: #fff; border: 1px solid #ccc;">
                    <table cellpadding=3>
                        <tr>
                            <td>新密码:</td>
                            <td>
                                <input id="txtNewPass" type="Password" class="txt01" />
                            </td>
                        </tr>
                        <tr>
                            <td>确认密码:</td>
                            <td>
                                <input id="txtRePass" type="Password" class="txt01" />
                            </td>
                        </tr>
                    </table>
                </div>
                <div region="south" border="false" style="text-align: right; height: 30px; line-height: 30px;">
                    <a id="btnEp" class="easyui-linkbutton" icon="icon-ok" href="javascript:void(0)">确定</a>
                    <a id="btnCancel" class="easyui-linkbutton" icon="icon-cancel" href="javascript:void(0)">取消</a>
                </div>
            </div>
        </div>

        <!-- easyui-menu组件的右键菜单填充内容 -->
        <div id="mm" class="easyui-menu" style="width:120px;">
            <div data-options="name:‘Close‘">关闭当前窗口</div>
            <div data-options="name:‘CloseOthers‘">关闭其它窗口</div>
            <div class="menu-sep"></div>
            <div data-options="iconCls:‘icon-cancel‘,name:‘CloseAll‘">关闭全部窗口</div>
        </div>

<script type="text/javascript">
$(function() {
    /**
       开始Ztree的设置
    */
    var setting = {
        data : {
            simpleData : { // 简单数据
                enable : true
            }
        },
        //注意这里的callback回调一定不能卸载data中,他们是并列关系
        callback : {
            onClick : onClick
        }
    };

    //通过AJAX获取json数据生成zTree
    $.post("./data/menu.json",function(data){
        $.fn.zTree.init($("#treeMenu"), setting, data);
    },"json");
    //zTree可以根据一个setting生成多个
    $.post("./data/admin.json",function(data){
        $.fn.zTree.init($("#adminMenu"), setting, data);
    },"json");

    // 等待3秒后执行EasyUI中的messager
    window.setTimeout(function(){
        $.messager.show({
            title:"消息提示",
            msg:‘欢迎登录,超级管理员! <a href="javascript:void" onclick="top.showAbout();">联系管理员</a>‘,
            timeout:5000
        });
    },3000);

    $("#btnCancel").click(function(){
        $(‘#editPwdWindow‘).window(‘close‘);
    });

    $("#btnEp").click(function(){
        alert("修改密码");
    });

    // 设置全局变量 保存当前正在右键的tabs 标题
    var currentRightTitle  ;

    // 为选项卡,添加右键菜单 easyui的tabs的onContextMenu事件三个参数
    $(‘#tabs‘).tabs({
        onContextMenu : function(e,title,index){
            currentRightTitle = title ;
            //easyui中menu的show方法
            $(‘#mm‘).menu(‘show‘, {
                left: e.pageX,
                top: e.pageY
            });
            e.preventDefault(); // 禁用原来的右键效果
        }
    });
    //easyui中menu的点击事件
    $(‘#mm‘).menu({
        onClick:function(item){
            if(item.name===‘Close‘){
                $(‘#tabs‘).tabs(‘close‘,currentRightTitle);
            }else if(item.name === ‘CloseOthers‘){
                //返回所有tabs选项卡
                var tabs = $(‘#tabs‘).tabs(‘tabs‘);
                $(tabs).each(function(){
                    if($(this).panel(‘options‘).title != ‘消息中心‘ && $(this).panel(‘options‘).title != currentRightTitle){
                        $(‘#tabs‘).tabs(‘close‘,$(this).panel(‘options‘).title);
                    }
                });
            }else if(item.name === ‘CloseAll‘){
                var tabs = $(‘#tabs‘).tabs(‘tabs‘);
                $(tabs).each(function(){
                    if($(this).panel(‘options‘).title != ‘消息中心‘){
                        $(‘#tabs‘).tabs(‘close‘,$(this).panel(‘options‘).title);
                    }
                });
            }
        }
    });
});

function onClick(event, treeId, treeNode, clickFlag) {
    // 判断树菜单节点是否含有 page属性
    if (treeNode.page!=undefined && treeNode.page!= "") {
        if ($("#tabs").tabs(‘exists‘, treeNode.name)) {// 判断tab是否存在
            $(‘#tabs‘).tabs(‘select‘, treeNode.name); // 切换tab
        } else {
            // 开启一个新的tab页面
            var content = ‘<div style="width:100%;height:100%;overflow:hidden;">‘
                    + ‘<iframe src="‘
                    + treeNode.page
                    + ‘" scrolling="auto" style="width:100%;height:100%;border:0;" ></iframe></div>‘;

            $(‘#tabs‘).tabs(‘add‘, {
                title : treeNode.name,
                content : content,
                closable : true,
                tools:[{
                    iconCls:‘icon-reload‘, // 刷新按钮
                    handler : function(){
                        var tab = $(‘#tabs‘).tabs(‘getTab‘,treeNode.name);
                        $("iframe[src=‘"+treeNode.page+"‘]").get(0).contentWindow.location.reload(true);
                    }
                }]
            });
        }
    }
}

/*******顶部特效 *******/
/**
 * 更换EasyUI主题的方法
 * @param themeName
 * 主题名称
 */
changeTheme = function(themeName) {
    var $easyuiTheme = $(‘#easyuiTheme‘);
    var url = $easyuiTheme.attr(‘href‘);
    var href = url.substring(0, url.indexOf(‘themes‘)) + ‘themes/‘
            + themeName + ‘/easyui.css‘;
    $easyuiTheme.attr(‘href‘, href);
    var $iframe = $(‘iframe‘);
    if ($iframe.length > 0) {
        for ( var i = 0; i < $iframe.length; i++) {
            var ifr = $iframe[i];
            $(ifr).contents().find(‘#easyuiTheme‘).attr(‘href‘, href);
        }
    }
};
// 退出登录
function logoutFun() {
    $.messager
    .confirm(‘系统提示‘,‘您确定要退出本次登录吗?‘,function(isConfirm) {
        if (isConfirm) {
            location.href = ‘./login.html‘;
        }
    });
}
// 修改密码
function editPassword() {
    $(‘#editPwdWindow‘).window(‘open‘);
}
// 版权信息
function showAbout(){
    $.messager.alert("bos v2.0综合物流管理平台","设计: 传智播客<br/> 管理员邮箱: [email protected] <br/>");
}
</script>
    </body>
</html>

原文地址:https://www.cnblogs.com/qingyundian/p/9191417.html

时间: 2025-01-07 04:23:12

EasyUI加zTree使用解析的相关文章

Android异步加载全解析之Bitmap

Android异步加载全解析之Bitmap 在这篇文章中,我们分析了Android在对大图处理时的一些策略--Android异步加载全解析之大图处理  戳我戳我 那么在这篇中,我们来对图像--Bitmap进行一个更加细致的分析,掌握Bitmap的点点滴滴. 引入 Bitmap这玩意儿号称Android App头号杀手,特别是3.0之前的版本,简直就是皇帝般的存在,碰不得.摔不得.虽然后面的版本Android对Bitmap的管理也进行了一系列的优化,但是它依然是非常难处理的一个东西.在Androi

Android异步加载全解析之使用多线程

异步加载之使用多线程 初次尝试 异步.异步,其实说白了就是多任务处理,也就是多线程执行,多线程那就会有各种问题,我们一步步来看,首先,我们创建一个class--ImageLoaderWithoutCaches,从命名上,大家也看出来,这个类,我们实现的是不带缓存的图像加载,不多说,我们再创建一个方法--showImageByThread,通过多线程来加载图像: /** * Using Thread * @param imageView * @param url */ public void sh

Android异步加载全解析之使用AsyncTask

Android异步加载全解析之使用AsyncTask 概述 既然前面提到了多线程,就不得不提到线程池,通过线程池,不仅可以对并发线程进行管理,更可以提高他们执行的效率,优化整个App.当然我们可以自己创建一个线程池,不过这样是很烦的,要创建一个高效的线程池还是挺费事的,不过,Android系统给我吗提供了AsyncTask这样一个类,来帮助我们快速实现多线程开发,它的底层实现,其实就是一个线程池. AsyncTask初探 AsyncTask,顾名思义就是用来做异步处理的.通过AsyncTask,

Android异步加载全解析之大图处理

Android异步加载全解析之大图处理 异步加载中非常重要的一部分就是对图像的处理,这也是我们前面用异步加载图像做演示例子的原因.一方面是因为图像处理不好的话会非常占内存,而且容易OOM,另一方面,图像也比文字要大,加载比较慢.所以,在讲解了如何进行多线程.AsyncTask进行多线程加载后,先暂停下后面的学习,来对图像的异步处理进行一些优化工作. 为什么要对图像处理 为什么要对图像进行处理,这是一个很直接的问题,一张图像,不管你拿手机.相机.单反还是什么玩意拍出来,它就有一定的大小,但是在不同

浏览器加载、解析、渲染的过程

最近在学习性能优化,学习了雅虎军规 ,可是觉着有点云里雾里的,因为里面有些东西虽然自己也一直在使用,但是感觉不太明白所以然,比如减少DNS查询,css和js文件的顺序.所以就花了时间去了解浏览器的工作,有一篇经典的文章<how browsers work> ,讲的很详细,也有中文译本 .不过就是文章有点太长,也讲了一堆东西,还是自己总结一下. 为什么要了解浏览器加载.解析.渲染这个过程? 好,我们先说一下,为什么要了解这些呢?如果想写出一个最佳实践的页面,就要好好了解. 了解浏览器如何进行加载

【剧透高亮】最最最完整剧透加剧情详细解析

在美国看的,IMAX大厅爆满!只能缩在角落里的位置看,但是还是不影响观影过程,被震撼到不行!看到最后黑洞的情节都快哭出来跪在地上了!Hans Zimmer的配乐太结棍了啊! 就像诺兰所有的电影一样,Interstellar是一部烧脑+解读人性+看完后需要阅读大量相关资料补课的大片!尤其是马修麦康纳那mumbling的口音简直听得人更加confused神烦啊!伐碍紧!我们来把剧情从头到尾理一遍! OK废话不多say了,直接上剧情解析   在未来的世界,由于科技太发达,人类对于能源的过度开发导致地球

浏览器~加载,解析,渲染

昨天为了 了解浏览器是怎么处理(.html..css..js)这些文件,我看了网上的好多资料,这好多资料中,有很多是通过转载.或是转载后加之自己的理解,但是因为自己对专业的词汇理解不好,还有一些作者将不同浏览器的处理过程混着说,总之,看完了,还是有很多疑虑的地方.我先根据昨天了解到的内容总结一下,日后随着学的深了,再回过来补充.2014.11.6 why 为什么要了解浏览器加载.解析.渲染这个过程? 了解浏览器如何进行加载,我们可以在引用外部样式文件,外部js时,将他们放到合适的位置,使浏览器以

HTML页面加载和解析流程详细介绍

浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的. 2. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完). 3. 如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载. 4. 样式表在下载完成后,

Android中的Apk的加固(加壳)原理解析和实现

Android中的Apk的加固(加壳)原理解析和实现 标签: android 2015-09-13 13:58 42287人阅读 评论(49) 收藏 举报 本文章已收录于:  Android知识库  分类: Android(140)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.前言 今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理.现阶段.我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个