diff --git a/Pear Admin v 2.0/component/layui/lay/extends/pearAdmin.js b/Pear Admin v 2.0/component/layui/lay/extends/pearAdmin.js index 283dc91..6b11272 100644 --- a/Pear Admin v 2.0/component/layui/lay/extends/pearAdmin.js +++ b/Pear Admin v 2.0/component/layui/lay/extends/pearAdmin.js @@ -99,7 +99,7 @@ layui.define(['table', 'jquery', 'element', 'form', 'pearTab', 'pearMenu', 'pear // 选 项 卡 初 始 API 文 档 bodyFrame = pearFrame.render({ elem: 'content', - title: '首 页', + title: '工作空间 / 首页', url: option.index, width: '100%', height: '100%' diff --git a/Pear Admin v 2.0/component/layui/lay/extends/pearMenu.js b/Pear Admin v 2.0/component/layui/lay/extends/pearMenu.js index 7cac0ec..4a9d1a7 100644 --- a/Pear Admin v 2.0/component/layui/lay/extends/pearMenu.js +++ b/Pear Admin v 2.0/component/layui/lay/extends/pearMenu.js @@ -1,472 +1,542 @@ -layui.define(['table', 'jquery', 'element'], function (exports) { - "use strict"; +layui.define(['table', 'jquery', 'element'], function(exports) { + "use strict"; - var MOD_NAME = 'pearMenu', - $ = layui.jquery, + var MOD_NAME = 'pearMenu', + $ = layui.jquery, element = layui.element; - - var pearMenu = function (opt) { - this.option = opt; - }; - pearMenu.prototype.render = function (opt) { - //默认配置值 + var pearMenu = function(opt) { + this.option = opt; + }; + + pearMenu.prototype.render = function(opt) { + //默认配置值 var option = { - elem:opt.elem, - async:opt.async ? opt.async : false, - parseData:opt.parseData, - url:opt.url, - defaultOpen:opt.defaultOpen, - control:opt.control, - defaultMenu:opt.defaultMenu, - accordion:opt.accordion, - height:opt.height, - theme:opt.theme, - data:opt.data ? opt.data:[], - change: opt.change ? opt.change:function(){console.log("切换") }, - done:opt.done ? opt.done: function(){ console.log("菜单渲染成功");} + elem: opt.elem, + async: opt.async ? opt.async : false, + parseData: opt.parseData, + url: opt.url, + defaultOpen: opt.defaultOpen, + control: opt.control, + defaultMenu: opt.defaultMenu, + accordion: opt.accordion, + height: opt.height, + theme: opt.theme, + data: opt.data ? opt.data : [], + change: opt.change ? opt.change : function() { + console.log("切换") + }, + done: opt.done ? opt.done : function() { + console.log("菜单渲染成功"); + } } - - + + // 根 据 请 求 方 式 获 取 数 据 - if(option.async){ - option.data = getData(option.url); - if(option.parseData!=false){ - option.parseData(option.data); - } + if (option.async) { + option.data = getData(option.url); + if (option.parseData != false) { + option.parseData(option.data); + } } - - if(option.control!=false){ - + + if (option.control != false) { + createMenuAndControl(option); - - }else{ + + } else { createMenu(option); } - - - // 渲 染 菜 单 结 束 并 完 成 + + + // 渲 染 菜 单 结 束 并 完 成 element.init(); - + downShow(option); - - - + + + option.done(); return new pearMenu(option); - } - - - /** 监听事件赋值 */ - pearMenu.prototype.click = function(clickEvent){ - - var _this = this; - $("#"+_this.option.elem+" .site-demo-active").parent().click(function(){ - var dom = $(this).children(".site-demo-active"); - var data = {menuId:dom.attr("menu-id"),menuTitle:dom.attr("menu-title"),menuIcon:dom.attr("menu-icon"),menuUrl:dom.attr("menu-url")}; - clickEvent(dom,data); - }); - } - - - pearMenu.prototype.skin = function(skin){ - - var menu = $(".pear-nav-tree[lay-filter='"+this.option.elem+"']").parent(); - - menu.removeClass("dark-theme"); + + + /** 监听事件赋值 */ + pearMenu.prototype.click = function(clickEvent) { + + var _this = this; + $("#" + _this.option.elem + " .site-demo-active").parent().click(function() { + var dom = $(this).children(".site-demo-active"); + var data = { + menuId: dom.attr("menu-id"), + menuTitle: dom.attr("menu-title"), + menuIcon: dom.attr("menu-icon"), + menuUrl: dom.attr("menu-url") + }; + + var doms = hash(dom); + + if (doms.text() != '') { + data['menuTitle'] = doms.find("span").text() + " / " + data['menuTitle']; + + } + var domss = hash(doms); + + if (domss.text() != '') { + + data['menuTitle'] = domss.find("span").text() + " / " + data['menuTitle']; + + } + + var domsss = hash(domss); + + if (domsss.text() != '') { + + data['menuTitle'] = domsss.find("span").text() + " / " + data['menuTitle']; + + } + + clickEvent(dom, data); + }); + + } + + function hash(dom) { + + return dom.parent().parent().prev(); + } + + + pearMenu.prototype.skin = function(skin) { + + var menu = $(".pear-nav-tree[lay-filter='" + this.option.elem + "']").parent(); + + menu.removeClass("dark-theme"); menu.removeClass("light-theme"); - + menu.addClass(skin); } - - - pearMenu.prototype.selectItem = function(pearId){ - - if(this.option.control != false){ - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents(".layui-side-scroll ").find("ul").css({display:"none"}); - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents(".layui-side-scroll ").find(".layui-this").removeClass("layui-this"); - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents("ul").css({display:"block"}); - - var controlId = $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents("ul").attr("pear-id"); - - $("#"+this.option.control).find(".layui-this").removeClass("layui-this"); - - $("#"+this.option.control).find("[pear-id='"+controlId+"']").addClass("layui-this"); + + + pearMenu.prototype.selectItem = function(pearId) { + + if (this.option.control != false) { + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".layui-side-scroll ").find("ul").css({ + display: "none" + }); + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".layui-side-scroll ").find(".layui-this").removeClass( + "layui-this"); + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents("ul").css({ + display: "block" + }); + + var controlId = $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents("ul").attr("pear-id"); + + $("#" + this.option.control).find(".layui-this").removeClass("layui-this"); + + $("#" + this.option.control).find("[pear-id='" + controlId + "']").addClass("layui-this"); } - - + + // 根 据 菜 单 Id 选 中 菜 单 项 目 - - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents(".pear-nav-tree").find(".layui-nav-itemed").removeClass("layui-nav-itemed"); - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents(".pear-nav-tree").find(".layui-this").removeClass("layui-this"); - + + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".pear-nav-tree").find(".layui-nav-itemed").removeClass( + "layui-nav-itemed"); + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".pear-nav-tree").find(".layui-this").removeClass( + "layui-this"); + // 通 过 动 画 打 开 当 前 菜 单 项 layui-nav-child - - if(!$("#"+this.option.elem).is(".pear-nav-mini")){ - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents(".layui-nav-item").addClass("layui-nav-itemed"); - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parents("dd").addClass("layui-nav-itemed"); - + + if (!$("#" + this.option.elem).is(".pear-nav-mini")) { + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".layui-nav-item").addClass("layui-nav-itemed"); + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents("dd").addClass("layui-nav-itemed"); + } - - $("#"+this.option.elem+" a[menu-id='"+pearId+"']").parent().addClass("layui-this"); - - + + $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parent().addClass("layui-this"); + + } - - + + var activeMenus; - - pearMenu.prototype.collaspe = function(time){ - + + pearMenu.prototype.collaspe = function(time) { + var elem = this.option.elem; - + var config = this.option; - - if($("#"+this.option.elem).is(".pear-nav-mini")){ - - $.each(activeMenus,function(i,item){ - $("#"+elem+" a[menu-id='" + $(this).attr("menu-id") + "']").parent().addClass("layui-nav-itemed"); + + if ($("#" + this.option.elem).is(".pear-nav-mini")) { + + $.each(activeMenus, function(i, item) { + $("#" + elem + " a[menu-id='" + $(this).attr("menu-id") + "']").parent().addClass("layui-nav-itemed"); }) - - $("#"+this.option.elem).removeClass("pear-nav-mini"); - - $("#"+this.option.elem).animate({ - width: "220px" - },150); - - isHoverMenu(false,config); - - }else{ - - activeMenus = $("#"+this.option.elem).find(".layui-nav-itemed>a"); - $("#"+this.option.elem).find(".layui-nav-itemed").removeClass("layui-nav-itemed"); - - $("#"+this.option.elem).addClass("pear-nav-mini"); - - $("#"+this.option.elem).animate({ - width: "60px" - },400); - isHoverMenu(true,config); - + + $("#" + this.option.elem).removeClass("pear-nav-mini"); + + $("#" + this.option.elem).animate({ + width: "220px" + }, 150); + + isHoverMenu(false, config); + + } else { + + activeMenus = $("#" + this.option.elem).find(".layui-nav-itemed>a"); + $("#" + this.option.elem).find(".layui-nav-itemed").removeClass("layui-nav-itemed"); + + $("#" + this.option.elem).addClass("pear-nav-mini"); + + $("#" + this.option.elem).animate({ + width: "60px" + }, 400); + isHoverMenu(true, config); + } } - - /** 同 步 请 求 获 取 数 据 */ - function getData(url){ - + + /** 同 步 请 求 获 取 数 据 */ + function getData(url) { + $.ajaxSettings.async = false; var data = null; - + $.get(url, function(result) { data = result; }); - + $.ajaxSettings.async = true; return data; } - - - function createMenu(option){ - // 声 明 头 部 - var menuHtml = '
"; - // 将 菜 单 拼 接 到 初 始 化 容 器 中 - $("#"+option.elem).html(menuHtml); - - } - - - function createMenuAndControl(option){ - - var control = '