config.js

var okConfig = {
   theme: "blue_theme", //主题色orange_theme|blue_theme
   menuArrow: "ok-arrow2", //导航箭头ok-arrow2:箭头,不填为默认样式
   tabMemory: true,  //是否开启tab刷新记忆
   tabRefresh: false, //是否开启切换刷新
};
master
zhizous 2020-04-06 17:59:35 +08:00
parent 71a453d54d
commit 197ba8478f
6 changed files with 811 additions and 663 deletions

View File

@ -9,6 +9,7 @@
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
<link rel="stylesheet" href="css/okadmin.css">
<link rel="stylesheet" href="lib/loading/okLoading.css"/>
<script type="text/javascript" src="./js/okconfig.js"></script>
<script type="text/javascript" src="lib/loading/okLoading.js"></script>
</head>
<body class="layui-layout-body">

View File

@ -7,7 +7,6 @@ layui.use(["element", "layer", "okUtils", "okTab", "okLayer", "okContextMenu", "
var layer = layui.layer;
var okLayer = layui.okLayer;
var okHoliday = layui.okHoliday;
var okTab = layui.okTab({
// 菜单请求路径
url: "data/navs.json",
@ -18,8 +17,18 @@ layui.use(["element", "layer", "okUtils", "okTab", "okLayer", "okContextMenu", "
return data;
}
});
var config = okUtils.local("okConfig") || okConfig || {};
objOkTab = okTab;
okLoading && okLoading.close();/**关闭加载动画*/
if(config.theme){ //主题颜色
$(".layui-layout-admin").removeClass("orange_theme blue_theme");
$(".layui-layout-admin").addClass(config.theme);
}
if(config.menuArrow){ //tab箭头样式
$("#navBar").addClass(config.menuArrow);
}
/**
* 左侧导航渲染完成之后的操作
*/

6
js/okconfig.js Normal file
View File

@ -0,0 +1,6 @@
var okConfig = {
theme: "blue_theme", //主题色orange_theme|blue_theme
menuArrow: "ok-arrow2", //导航箭头ok-arrow2:箭头,不填为默认样式
tabMemory: true, //是否开启tab刷新记忆
tabRefresh: false, //是否开启切换刷新
};

File diff suppressed because it is too large Load Diff

View File

@ -1,163 +1,209 @@
"use strict";
layui.define(["layer"], function (exprots) {
var $ = layui.jquery;
var okUtils = {
/**
* 是否前后端分离
*/
isFrontendBackendSeparate: true,
/**
* 服务器地址
*/
baseUrl: "http://rap2api.taobao.org/app/mock/233041",
/**
* 获取body的总宽度
*/
getBodyWidth: function () {
return document.body.scrollWidth;
},
/**
* 主要用于对ECharts视图自动适应宽度
*/
echartsResize: function (element) {
var element = element || [];
window.addEventListener("resize", function () {
var isResize = localStorage.getItem("isResize");
// if (isResize == "false") {
for (let i = 0; i < element.length; i++) {
element[i].resize();
}
// }
});
},
/**
* ajax()函数二次封装
* @param url
* @param type
* @param params
* @param load
* @returns {*|never|{always, promise, state, then}}
*/
ajax: function (url, type, params, load) {
var deferred = $.Deferred();
var loadIndex;
$.ajax({
url: okUtils.isFrontendBackendSeparate ? okUtils.baseUrl + url : url,
type: type || "get",
data: params || {},
dataType: "json",
beforeSend: function () {
if (load) {
loadIndex = layer.load(0, {shade: 0.3});
}
},
success: function (data) {
if (data.code == 0) {
// 业务正常
deferred.resolve(data)
} else {
// 业务异常
layer.msg(data.msg, {icon: 7, time: 2000});
deferred.reject("okUtils.ajax warn: " + data.msg);
}
},
complete: function () {
if (load) {
layer.close(loadIndex);
}
},
error: function () {
layer.close(loadIndex);
layer.msg("服务器错误", {icon: 2, time: 2000});
deferred.reject("okUtils.ajax error: 服务器错误");
}
});
return deferred.promise();
},
/**
* 主要用于针对表格批量操作操作之前的检查
* @param table
* @returns {string}
*/
tableBatchCheck: function (table) {
var checkStatus = table.checkStatus("tableId");
var rows = checkStatus.data.length;
if (rows > 0) {
var idsStr = "";
for (var i = 0; i < checkStatus.data.length; i++) {
idsStr += checkStatus.data[i].id + ",";
}
return idsStr;
} else {
layer.msg("未选择有效数据", {offset: "t", anim: 6});
var $ = layui.jquery;
var okUtils = {
/**
* 是否前后端分离
*/
isFrontendBackendSeparate: true,
/**
* 服务器地址
*/
baseUrl: "http://rap2api.taobao.org/app/mock/233041",
/**
* 获取body的总宽度
*/
getBodyWidth: function () {
return document.body.scrollWidth;
},
/**
* 主要用于对ECharts视图自动适应宽度
*/
echartsResize: function (element) {
var element = element || [];
window.addEventListener("resize", function () {
var isResize = localStorage.getItem("isResize");
// if (isResize == "false") {
for (let i = 0; i < element.length; i++) {
element[i].resize();
}
},
/**
* 在表格页面操作成功后弹窗提示
* @param content
*/
tableSuccessMsg: function (content) {
layer.msg(content, {icon: 1, time: 1000}, function () {
// 刷新当前页table数据
$(".layui-laypage-btn")[0].click();
});
},
/**
* 获取父窗体的okTab
* @returns {string}
*/
getOkTab: function () {
return parent.objOkTab;
},
/**
* 格式化当前日期
* @param date
* @param fmt
* @returns {void | string}
*/
dateFormat: function (date, fmt) {
var o = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
"q+": Math.floor((date.getMonth() + 3) / 3),
"S": date.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
},
number: {
/**
* 判断是否为一个正常的数字
* @param num
*/
isNumber: function (num) {
if (num && !isNaN(num)) {
return true;
}
return false;
// }
});
},
/**
* ajax()函数二次封装
* @param url
* @param type
* @param params
* @param load
* @returns {*|never|{always, promise, state, then}}
*/
ajax: function (url, type, params, load) {
var deferred = $.Deferred();
var loadIndex;
$.ajax({
url: okUtils.isFrontendBackendSeparate ? okUtils.baseUrl + url : url,
type: type || "get",
data: params || {},
dataType: "json",
beforeSend: function () {
if (load) {
loadIndex = layer.load(0, {shade: 0.3});
}
},
/**
* 判断一个数字是否包括在某个范围
* @param num
* @param begin
* @param end
*/
isNumberWith: function (num, begin, end) {
if (this.isNumber(num)) {
if (num >= begin && num <= end) {
return true;
}
return false;
}
success: function (data) {
if (data.code == 0) {
// 业务正常
deferred.resolve(data)
} else {
// 业务异常
layer.msg(data.msg, {icon: 7, time: 2000});
deferred.reject("okUtils.ajax warn: " + data.msg);
}
},
}
};
exprots("okUtils", okUtils);
complete: function () {
if (load) {
layer.close(loadIndex);
}
},
error: function () {
layer.close(loadIndex);
layer.msg("服务器错误", {icon: 2, time: 2000});
deferred.reject("okUtils.ajax error: 服务器错误");
}
});
return deferred.promise();
},
/**
* 主要用于针对表格批量操作操作之前的检查
* @param table
* @returns {string}
*/
tableBatchCheck: function (table) {
var checkStatus = table.checkStatus("tableId");
var rows = checkStatus.data.length;
if (rows > 0) {
var idsStr = "";
for (var i = 0; i < checkStatus.data.length; i++) {
idsStr += checkStatus.data[i].id + ",";
}
return idsStr;
} else {
layer.msg("未选择有效数据", {offset: "t", anim: 6});
}
},
/**
* 在表格页面操作成功后弹窗提示
* @param content
*/
tableSuccessMsg: function (content) {
layer.msg(content, {icon: 1, time: 1000}, function () {
// 刷新当前页table数据
$(".layui-laypage-btn")[0].click();
});
},
/**
* sessionStorage 二次封装
*/
session: function (name, value) {
if (value) { /**设置*/
if (typeof value == "object") {
sessionStorage.setItem(name, JSON.stringify(value));
} else {
sessionStorage.setItem(name, value);
}
} else if (null !== value) {
/**获取*/
let val = sessionStorage.getItem(name);
try {
val = JSON.parse(val);
return val;
} catch (err) {
return val;
}
} else { /**清除*/
return sessionStorage.removeItem(name);
}
},
/**
* localStorage 二次封装
*/
local: function (name, value) {
if (value) { /**设置*/
if (typeof value == "object") {
localStorage.setItem(name, JSON.stringify(value));
} else {
localStorage.setItem(name, value);
}
} else if (null !== value) {
/**获取*/
let val = localStorage.getItem(name);
try {
val = JSON.parse(val);
return val;
} catch (err) {
return val;
}
} else { /**清除*/
return localStorage.removeItem(name);
}
},
/**
* 获取父窗体的okTab
* @returns {string}
*/
getOkTab: function () {
return parent.objOkTab;
},
/**
* 格式化当前日期
* @param date
* @param fmt
* @returns {void | string}
*/
dateFormat: function (date, fmt) {
var o = {
"M+": date.getMonth() + 1,
"d+": date.getDate(),
"h+": date.getHours(),
"m+": date.getMinutes(),
"s+": date.getSeconds(),
"q+": Math.floor((date.getMonth() + 3) / 3),
"S": date.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
},
number: {
/**
* 判断是否为一个正常的数字
* @param num
*/
isNumber: function (num) {
if (num && !isNaN(num)) {
return true;
}
return false;
},
/**
* 判断一个数字是否包括在某个范围
* @param num
* @param begin
* @param end
*/
isNumberWith: function (num, begin, end) {
if (this.isNumber(num)) {
if (num >= begin && num <= end) {
return true;
}
return false;
}
},
}
};
exprots("okUtils", okUtils);
});

View File

@ -3,18 +3,23 @@
<head>
<meta charset="UTF-8">
<title>系统设置</title>
<link rel="stylesheet" href="../../css/oksub.css">
<!--<link rel="stylesheet" href="../../css/oksub.css">-->
<link rel="stylesheet" href="../../css/okadmin.css">
<script type="text/javascript" src="../../js/okconfig.js"></script>
<style type="text/css">
.ok-setting .layui-form-item{
.ok-setting .layui-form-item {
margin: 0;
}
.ok-setting .set-label{
.ok-setting .set-label {
padding-left: 0;
width: auto;
width: 80px;
text-align: right;
font-size: 16px;
padding-right: 10px;
}
.ok-setting .layui-input-block{
.ok-setting .layui-input-block {
margin: 0;
}
</style>
@ -22,11 +27,33 @@
<body>
<div class="layui-card-body ok-setting">
<form class="layui-form" action="javascript:;">
<div class="layui-form-item">
<label class="layui-form-label set-label">主题色:</label>
<div class="layui-input-block">
<input lay-filter="theme" type="radio" name="theme" value="" title="默认">
<input lay-filter="theme" type="radio" name="theme" value="blue_theme" title="蓝色"/>
<input lay-filter="theme" type="radio" name="theme" value="orange_theme" title="橘色"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label set-label">导航箭头:</label>
<div class="layui-input-block">
<input lay-filter="arrow" type="radio" name="sex" value="" title="默认" checked>
<input lay-filter="arrow" type="radio" name="sex" value="ok-arrow2" title="箭头" >
<input lay-filter="arrow" type="radio" name="arrow" value="" title="默认">
<input lay-filter="arrow" type="radio" name="arrow" value="ok-arrow2" title="箭头">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label set-label">切换刷新:</label>
<div class="layui-input-block">
<input lay-filter="refresh" type="checkbox" name="refresh" lay-skin="switch" lay-text="开启|关闭">
<!--<input lay-filter="arrow" type="checkbox" name="sex" value="" title="默认">-->
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label set-label">tab记忆</label>
<div class="layui-input-block">
<input lay-filter="memory" type="checkbox" name="memory" lay-skin="switch" lay-text="开启|关闭">
<!--<input lay-filter="arrow" type="checkbox" name="sex" value="" title="默认">-->
</div>
</div>
</form>
@ -35,20 +62,60 @@
</html>
<script type="text/javascript" src="../../lib/layui/layui.js"></script>
<script type="text/javascript">
layui.use(['jquery', 'form'], function () {
layui.use(['jquery', 'form', 'okUtils'], function () {
var $ = layui.jquery,
form = layui.form,
okUtils = layui.okUtils,
parentBody = parent.document.body;// 父级dom
var config = okUtils.local("okConfig") || okConfig || {};
var ok_arrow = ['ok-arrow2'];
let ok_arrow = ['ok-arrow2'];
form.on('radio(arrow)', function(data){ //更改导航箭头样式
if(data.value){
$("input[name=theme]").each(function (i,item) {
if(config.theme == $(item).val()){
$(item).prop("checked", true);
}else {
$(item).prop("checked", false);
}
});
$("input[name=arrow]").each(function (i,item) {
if(config.menuArrow == $(item).val()){
$(item).prop("checked", true);
}else {
$(item).prop("checked", false);
}
});
$("input[name=refresh]").prop("checked", config.tabRefresh);
$("input[name=memory]").prop("checked", config.tabMemory);
form.render();
form.on('radio(arrow)', function (data) { //更改导航箭头样式
if (data.value) {
$(parentBody).find("#navBar").addClass(data.value);
} else {
for(var i = 0; i < ok_arrow.length; i++){
for (var i = 0; i < ok_arrow.length; i++) {
$(parentBody).find("#navBar").removeClass(ok_arrow[i]);
}
}
config.menuArrow = data.value;
okUtils.local("okConfig", config);
});
form.on('switch(refresh)', function (data) { //切换刷新
config.tabRefresh = data.elem.checked;
okUtils.local("okConfig", config);
});
form.on('switch(memory)', function (data) { //tab记忆
config.tabMemory = data.elem.checked;
okUtils.local("okConfig", config);
});
form.on('radio(theme)', function (data) {
$(parentBody).find(".layui-layout-admin").removeClass("orange_theme blue_theme");
$(parentBody).find(".layui-layout-admin").addClass(data.value);
config.theme = data.value;
okUtils.local("okConfig", config);
});
});
</script>