3.0.3.RELEASE

develop
就眠仪式 2020-09-30 12:57:03 +08:00
parent 85bd06ea72
commit 1586fffb26
6 changed files with 93 additions and 118 deletions

View File

@ -12,12 +12,14 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
var bodyFrame; var bodyFrame;
var sideMenu; var sideMenu;
var bodyTab; var bodyTab;
var config;
var pearAdmin = new function() { var pearAdmin = new function() {
this.render = function(option) { this.render = function() {
readConfig().then(function(param) { readConfig().then(function(param) {
config = param;
pearAdmin.logoRender(param); pearAdmin.logoRender(param);
pearAdmin.menuRender(param,option); pearAdmin.menuRender(param);
pearAdmin.bodyRender(param); pearAdmin.bodyRender(param);
pearAdmin.themeRender(param); pearAdmin.themeRender(param);
pearAdmin.keepLoad(param); pearAdmin.keepLoad(param);
@ -29,7 +31,7 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
$(".layui-logo .title").html(param.logo.title); $(".layui-logo .title").html(param.logo.title);
} }
this.menuRender = function(param,option) { this.menuRender = function(param) {
sideMenu = pearMenu.render({ sideMenu = pearMenu.render({
elem: 'sideMenu', elem: 'sideMenu',
async: true, async: true,
@ -38,13 +40,15 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
control: param.menu.control ? 'control' : false, // control control: param.menu.control ? 'control' : false, // control
defaultMenu: 0, defaultMenu: 0,
accordion: param.menu.accordion, accordion: param.menu.accordion,
url: param.menu.data+"?currentUser="+option.currentUser, url: param.menu.data,
parseData: false, parseData: false,
change: function() { change: function() {
compatible(); compatible();
},
done() {
sideMenu.selectItem(param.menu.select);
} }
}) })
sideMenu.selectItem(param.menu.select);
} }
this.bodyRender = function(param) { this.bodyRender = function(param) {
@ -142,8 +146,6 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
} }
var colorId = localStorage.getItem("theme-color"); var colorId = localStorage.getItem("theme-color");
var menu = localStorage.getItem("theme-menu"); var menu = localStorage.getItem("theme-menu");
console.log("主题标识:"+colorId);
console.log("菜单主题:"+menu);
var color = getColorById(colorId); var color = getColorById(colorId);
if (menu == "null") { if (menu == "null") {
menu = option.theme.defaultMenu; menu = option.theme.defaultMenu;
@ -240,7 +242,7 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
}); });
$("body").on("click", '[user-menu-id]', function() { $("body").on("click", '[user-menu-id]', function() {
if(getData().tab.muiltTab){ if (config.tab.muiltTab) {
bodyTab.addTabOnly({ bodyTab.addTabOnly({
id: $(this).attr("user-menu-id"), id: $(this).attr("user-menu-id"),
title: $(this).attr("user-menu-title"), title: $(this).attr("user-menu-title"),
@ -293,6 +295,7 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
content: html + buildColorHtml() + buildLinkHtml(), content: html + buildColorHtml() + buildLinkHtml(),
success: function(layero, index) { success: function(layero, index) {
form.render(); form.render();
var color = localStorage.getItem("theme-color"); var color = localStorage.getItem("theme-color");
var menu = localStorage.getItem("theme-menu"); var menu = localStorage.getItem("theme-menu");
@ -335,16 +338,6 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
pearAdmin.colorSet(color.color); pearAdmin.colorSet(color.color);
}); });
function getData() {
$.ajaxSettings.async = false;
var data = null;
$.getJSON("pear.config.json?fresh=" + Math.random(), function(result) {
data = result;
});
$.ajaxSettings.async = true;
return data;
}
function readConfig() { function readConfig() {
var defer = $.Deferred(); var defer = $.Deferred();
$.getJSON("pear.config.json?fresh=" + Math.random(), function(result) { $.getJSON("pear.config.json?fresh=" + Math.random(), function(result) {
@ -356,16 +349,15 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
function getColorById(id) { function getColorById(id) {
var color; var color;
var flag = false; var flag = false;
var data = getData(); $.each(config.colors, function(i, value) {
$.each(data.colors, function(i, value) {
if (value.id == id) { if (value.id == id) {
color = value; color = value;
flag = true; flag = true;
} }
}) })
if (flag == false || data.theme.allowCustom == false) { if (flag == false || config.theme.allowCustom == false) {
$.each(data.colors, function(i, value) { $.each(config.colors, function(i, value) {
if (value.id == data.theme.defaultColor) { if (value.id == config.theme.defaultColor) {
color = value; color = value;
} }
}) })
@ -375,7 +367,7 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
function buildLinkHtml() { function buildLinkHtml() {
var links = ""; var links = "";
$.each(getData().links, function(i, value) { $.each(config.links, function(i, value) {
links += '<a class="more-menu-item" href="' + value.href + '" target="_blank">' + links += '<a class="more-menu-item" href="' + value.href + '" target="_blank">' +
'<i class="' + value.icon + '" style="font-size: 19px;"></i> ' + value.title + '<i class="' + value.icon + '" style="font-size: 19px;"></i> ' + value.title +
'</a>' '</a>'
@ -385,7 +377,7 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
function buildColorHtml() { function buildColorHtml() {
var colors = ""; var colors = "";
$.each(getData().colors, function(i, value) { $.each(config.colors, function(i, value) {
colors += "<span class='select-color-item' color-id='" + value.id + "' style='background-color:" + value.color + colors += "<span class='select-color-item' color-id='" + value.id + "' style='background-color:" + value.color +
";'></span>"; ";'></span>";
}) })
@ -443,4 +435,3 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
exports('admin', pearAdmin); exports('admin', pearAdmin);
}) })

View File

@ -1,9 +1,3 @@
/**
* Layui图标选择器
* @author wujiawei0926@yeah.net
* @version 1.1
*/
layui.define(['laypage', 'form'], function (exports) { layui.define(['laypage', 'form'], function (exports) {
"use strict"; "use strict";
@ -17,9 +11,6 @@ layui.define(['laypage', 'form'], function (exports) {
BODY = 'body', BODY = 'body',
TIPS = '请选择图标'; TIPS = '请选择图标';
/**
* 渲染组件
*/
IconPicker.prototype.render = function(options){ IconPicker.prototype.render = function(options){
var opts = options, var opts = options,
// DOM选择器 // DOM选择器

View File

@ -25,22 +25,18 @@ layui.define(['table', 'jquery', 'element'], function(exports) {
theme: opt.theme, theme: opt.theme,
data: opt.data ? opt.data : [], data: opt.data ? opt.data : [],
change: opt.change ? opt.change : function() { change: opt.change ? opt.change : function() {
console.log("切换")
}, },
done: opt.done ? opt.done : function() {} done: opt.done ? opt.done : function() {}
} }
// 根 据 请 求 方 式 获 取 数 据
if (option.async) { if (option.async) {
option.data = getData(option.url); getData(option.url).then(function(data){
option.data = data;
if (option.parseData != false) { if (option.parseData != false) {
option.parseData(option.data); option.parseData(option.data);
} }
}
if (option.data.length > 0) { if (option.data.length > 0) {
if (option.control != false) { if (option.control != false) {
createMenuAndControl(option); createMenuAndControl(option);
} else { } else {
createMenu(option); createMenu(option);
@ -49,13 +45,15 @@ layui.define(['table', 'jquery', 'element'], function(exports) {
element.init(); element.init();
downShow(option); downShow(option);
option.done(); option.done();
return new pearMenu(option); });
}
return new pearMenu(opt);
} }
pearMenu.prototype.click = function(clickEvent) { pearMenu.prototype.click = function(clickEvent) {
var _this = this; var _this = this;
$("#" + _this.option.elem + " .site-demo-active").parent().click(function() { $("body").on("click","#" + _this.option.elem + " .site-demo-active",function(){
var dom = $(this).children(".site-demo-active"); var dom = $(this);
var data = { var data = {
menuId: dom.attr("menu-id"), menuId: dom.attr("menu-id"),
menuTitle: dom.attr("menu-title"), menuTitle: dom.attr("menu-title"),
@ -76,7 +74,7 @@ layui.define(['table', 'jquery', 'element'], function(exports) {
data['menuPath'] = domsss.find("span").text() + " / " + data['menuPath']; data['menuPath'] = domsss.find("span").text() + " / " + data['menuPath'];
} }
clickEvent(dom, data); clickEvent(dom, data);
}); })
} }
function hash(dom) { function hash(dom) {
@ -91,7 +89,6 @@ layui.define(['table', 'jquery', 'element'], function(exports) {
} }
pearMenu.prototype.selectItem = function(pearId) { pearMenu.prototype.selectItem = function(pearId) {
if (this.option.control != false) { if (this.option.control != false) {
$("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".layui-side-scroll ").find("ul").css({ $("#" + this.option.elem + " a[menu-id='" + pearId + "']").parents(".layui-side-scroll ").find("ul").css({
display: "none" display: "none"
@ -145,18 +142,14 @@ layui.define(['table', 'jquery', 'element'], function(exports) {
} }
} }
/** 同 步 请 求 获 取 数 据 */
function getData(url){ function getData(url){
$.ajaxSettings.async = false; var defer = $.Deferred();
var data = null; $.get(url+"?fresh=" + Math.random(), function(result) {
$.get(url+"&fresh=" + Math.random(), function(result) { defer.resolve(result)
data = result;
}); });
$.ajaxSettings.async = true; return defer.promise();
return data;
} }
function createMenu(option) { function createMenu(option) {
var menuHtml = '<ul lay-filter="' + option.elem + var menuHtml = '<ul lay-filter="' + option.elem +
'" class="layui-nav arrow pear-menu layui-nav-tree pear-nav-tree">' '" class="layui-nav arrow pear-menu layui-nav-tree pear-nav-tree">'

View File

@ -7,14 +7,14 @@
"data": "admin/data/menu.json", "data": "admin/data/menu.json",
"accordion": true, "accordion": true,
"control": false, "control": false,
"select": "0" "select": "10"
}, },
"tab": { "tab": {
"muiltTab": true, "muiltTab": true,
"keepState": true, "keepState": true,
"tabMax": 30, "tabMax": 30,
"index": { "index": {
"id": "0", "id": "10",
"href": "view/console/console1.html", "href": "view/console/console1.html",
"title": "首页" "title": "首页"
} }

View File

@ -6,7 +6,6 @@
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css"> <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="../../admin/css/other/icon.css"> <link rel="stylesheet" href="../../admin/css/other/icon.css">
<link rel="stylesheet" href="../../component/pear/css/pear.css" /> <link rel="stylesheet" href="../../component/pear/css/pear.css" />
<script src="iconfont.js"></script>
<!-- jQuery --> <!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script> <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 --> <!-- 代码高亮 -->

View File

@ -208,6 +208,7 @@
<script src="../../component/pear/pear.js"></script> <script src="../../component/pear/pear.js"></script>
<script> <script>
layui.use(['select','code','element'], function() { layui.use(['select','code','element'], function() {
let select = layui.select;
layui.code(); layui.code();
}); });