first commit
This commit is contained in:
59
catch/index/controller/Index.php
Normal file
59
catch/index/controller/Index.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace catchAdmin\index\controller;
|
||||
|
||||
use catchAdmin\permissions\model\Permissions;
|
||||
use catchAdmin\user\Auth;
|
||||
use catcher\base\CatchController;
|
||||
use catcher\Tree;
|
||||
use think\facade\Db;
|
||||
|
||||
class Index extends CatchController
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @time 2019年12月11日
|
||||
* @return string
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
*/
|
||||
public function index(): string
|
||||
{
|
||||
$permissionIds = Auth::user()->getPermissionsBy();
|
||||
|
||||
$menus = Permissions::whereIn('id', $permissionIds)
|
||||
->where('type', Permissions::MENU_TYPE)
|
||||
->field(['id', 'parent_id', 'permission_name', 'route'])
|
||||
->select()->toArray();
|
||||
|
||||
return $this->fetch([
|
||||
'menus' => Tree::done($menus),
|
||||
'username' => Auth::user()->username,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @time 2019年12月11日
|
||||
* @throws \Exception
|
||||
* @return string
|
||||
*/
|
||||
public function theme(): string
|
||||
{
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @time 2019年12月12日
|
||||
* @throws \Exception
|
||||
* @return string
|
||||
*/
|
||||
public function dashboard(): string
|
||||
{
|
||||
$mysqlVersion = Db::query('select version() as version');
|
||||
return $this->fetch([
|
||||
'mysql_version' => $mysqlVersion['0']['version'],
|
||||
]);
|
||||
}
|
||||
}
|
13
catch/index/module.json
Normal file
13
catch/index/module.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "首页管理",
|
||||
"alias": "index",
|
||||
"description": "",
|
||||
"keywords": [],
|
||||
"order": 0,
|
||||
"services": [
|
||||
"catchAdmin\\index\\IndexService"
|
||||
],
|
||||
"aliases": {},
|
||||
"files": [],
|
||||
"requires": []
|
||||
}
|
5
catch/index/route.php
Normal file
5
catch/index/route.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
|
||||
$router->get('/', '\catchAdmin\index\controller\Index@index');
|
||||
$router->get('theme', '\catchAdmin\index\controller\Index@theme');
|
||||
$router->get('dashboard', '\catchAdmin\index\controller\Index@dashboard');
|
221
catch/index/view/dashboard.html
Normal file
221
catch/index/view/dashboard.html
Normal file
@@ -0,0 +1,221 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>CatchAdmin 后台开发框架</title>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_LIBS__/layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_MODULE__/admin.css?v=315"/>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<style>
|
||||
/** 卡片轮播图样式 */
|
||||
.admin-carousel .layui-carousel-ind {
|
||||
position: absolute;
|
||||
top: -41px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.admin-carousel .layui-carousel-ind ul {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
.admin-carousel .layui-carousel-ind li {
|
||||
background-color: #e2e2e2;
|
||||
}
|
||||
|
||||
.admin-carousel .layui-carousel-ind li.layui-this {
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
/** 广告位轮播图 */
|
||||
.admin-news .layui-carousel-ind {
|
||||
height: 45px;
|
||||
}
|
||||
|
||||
.admin-news a {
|
||||
display: block;
|
||||
line-height: 60px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- 加载动画 -->
|
||||
<div class="page-loading">
|
||||
<div class="ball-loader">
|
||||
<span></span><span></span><span></span><span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 正文开始 -->
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
访问量<span class="layui-badge layui-bg-blue pull-right">周</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="lay-big-font">99,666</p>
|
||||
<p>总计访问量<span class="pull-right">88万 <i class="layui-icon layui-icon-flag"></i></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
下载<span class="layui-badge layui-bg-black pull-right">月</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="lay-big-font">33,555</p>
|
||||
<p>新下载<span class="pull-right">10% <i class="layui-icon"></i></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
Start<span class="layui-badge layui-bg-green pull-right">周</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="lay-big-font">99,666</p>
|
||||
<p>总Start数<span class="pull-right">88万 <i class="layui-icon layui-icon-rate"></i></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
活跃用户<span class="layui-badge layui-bg-orange pull-right">月</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="lay-big-font">66,666</p>
|
||||
<p>最近一个月<span class="pull-right">15% <i class="layui-icon layui-icon-user"></i></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-lg8 layui-col-md7">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">更新日志</div>
|
||||
<div class="layui-card-body">
|
||||
<ul class="layui-timeline">
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<h3 class="layui-timeline-title">
|
||||
V1.0
|
||||
<small>catchAdmin 后台框架发布</small> 
|
||||
<span class="layui-badge-rim">2019-12-15</span>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>基于 Thinkphp6 & layui 开发</li>
|
||||
<li>完整的权限管理</li>
|
||||
<li>模块化开发方式</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
CatchAdmin 开发中... <span class="layui-badge-rim">更早</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-lg4 layui-col-md5">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">后台框架</div>
|
||||
<div class="layui-card-body">
|
||||
<table class="layui-table layui-text">
|
||||
<colgroup>
|
||||
<col width="100">
|
||||
<col>
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>PHP 版本</td>
|
||||
<td>{$Think.PHP_VERSION}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MYSQL 版本</td>
|
||||
<td>{$mysql_version}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>WEB 服务器</td>
|
||||
<td>{$_SERVER['SERVER_SOFTWARE']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>操作系统</td>
|
||||
<td>{$Think.PHP_OS}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>opcache (建议开启)</td>
|
||||
{if condition="function_exists('opcache_get_configuration')"}
|
||||
<td>{:opcache_get_configuration()['directives']['opcache.enable'] ? '开启' : '关闭' }</td>
|
||||
{else/}
|
||||
<td>未开启</td>
|
||||
{/if}
|
||||
</tr>
|
||||
<tr>
|
||||
<td>最大执行时间</td>
|
||||
<td>{:get_cfg_var("max_execution_time")} s</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>上传限制大小(M)</td>
|
||||
<td>{:get_cfg_var ("upload_max_filesize")}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>当前时间</td>
|
||||
<td>{:date("Y-m-d H:i:s")}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>核心框架</td>
|
||||
<td>Thinkphp v6</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- js部分 -->
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_LIBS__/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_JS__/common.js?v=315"></script>
|
||||
<script>
|
||||
layui.use(['layer', 'carousel'], function () {
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
var carousel = layui.carousel;
|
||||
var device = layui.device;
|
||||
|
||||
// 渲染轮播
|
||||
carousel.render({
|
||||
elem: '.layui-carousel',
|
||||
width: '100%',
|
||||
height: '60px',
|
||||
arrow: 'none',
|
||||
autoplay: true,
|
||||
trigger: device.ios || device.android ? 'click' : 'hover',
|
||||
anim: 'fade'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
38
catch/index/view/error.html
Normal file
38
catch/index/view/error.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>403</title>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_LIBS__/layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_MODULE__/admin.css?v=315"/>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_CSS__/error-page.css"/>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- 正文开始 -->
|
||||
<div class="error-page">
|
||||
<img class="error-page-img" src="__CATCH_ADMIN_IMAGES__/ic_403.png">
|
||||
<div class="error-page-info">
|
||||
<h1>403</h1>
|
||||
<div class="error-page-info-desc">{$msg}</div>
|
||||
<div>
|
||||
{if ($code == 10006)}
|
||||
<a href="{:url('login')}" class="layui-btn">返回登录</a>
|
||||
{else/}
|
||||
<button onclick="history(-1)" class="layui-btn">返回上一页</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- js部分 -->
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_LIBS__/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_JS__/common.js?v=315"></script>
|
||||
</body>
|
||||
</html>
|
142
catch/index/view/index.html
Normal file
142
catch/index/view/index.html
Normal file
@@ -0,0 +1,142 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link href="__CATCH_ADMIN_IMAGES__/favicon.ico" rel="icon">
|
||||
<title>CatchAdmin 后台管理系统</title>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_LIBS__/layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_MODULE__/admin.css?v=315"/>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<!-- 头部 -->
|
||||
<div class="layui-header">
|
||||
<div class="layui-logo">
|
||||
<img src="__CATCH_ADMIN_IMAGES__/logo.png"/>
|
||||
<cite>CatchAdmin</cite>
|
||||
</div>
|
||||
<ul class="layui-nav layui-layout-left">
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a ew-event="flexible" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a ew-event="refresh" title="刷新"><i class="layui-icon layui-icon-refresh-3"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="layui-nav layui-layout-right">
|
||||
<!-- <li class="layui-nav-item" lay-unselect>
|
||||
<a ew-event="message" title="消息">
|
||||
<i class="layui-icon layui-icon-notice"></i>
|
||||
<span class="layui-badge-dot"></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a ew-event="note" title="便签"><i class="layui-icon layui-icon-note"></i></a>
|
||||
</li>-->
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a>
|
||||
<img src="__CATCH_ADMIN_IMAGES__/head.png" class="layui-nav-img">
|
||||
<cite>{$username}</cite>
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<!--<dd lay-unselect>
|
||||
<a ew-href="javascript:;">个人中心</a>
|
||||
</dd>
|
||||
<dd lay-unselect>
|
||||
<a ew-event="psw">修改密码</a>
|
||||
</dd>
|
||||
<hr>-->
|
||||
<dd lay-unselect>
|
||||
<a id="logout">退出</a>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 侧边栏 -->
|
||||
<div class="layui-side">
|
||||
<div class="layui-side-scroll">
|
||||
<ul class="layui-nav layui-nav-tree arrow2" lay-filter="admin-side-nav" lay-accordion="true"
|
||||
style="margin-top: 15px;">
|
||||
{foreach $menus as $key => $menu }
|
||||
<li class="layui-nav-item">
|
||||
{if (!empty($menu['children']))}
|
||||
<a><i class="layui-icon layui-icon-home"></i> <cite>{$menu['permission_name']}</cite></a>
|
||||
<dl class="layui-nav-child">
|
||||
{foreach $menu['children'] as $m}
|
||||
{if (!empty($m['children']))}
|
||||
<a><i class="layui-icon layui-icon-home"></i> <cite>{$m['permission_name']}</cite></a>
|
||||
<dl class="layui-nav-child">
|
||||
{foreach $m['children'] as $_m}
|
||||
<dd><a lay-href="{:url($_m['route'])}">{$_m['permission_name']}</a></dd>
|
||||
{/foreach}
|
||||
</dl>
|
||||
{else/}
|
||||
<dd><a lay-href="{:url($m['route'])}">{$m['permission_name']}</a></dd>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</dl>
|
||||
{else/}
|
||||
<a lay-href="{:url($menu['route'])}"><i class="layui-icon layui-icon-unlink"></i> <cite>{$menu['permission_name']}</cite></a>
|
||||
{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 主体部分 -->
|
||||
<div class="layui-body"></div>
|
||||
<!-- 底部 -->
|
||||
<div class="layui-footer">
|
||||
copyright 2017 ~ © {:date('Y', time())} <a href="https://catchadmin.com" target="_blank">catchadmin.com</a> all rights reserved.
|
||||
<span class="pull-right">Version 2.0</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 加载动画 -->
|
||||
<div class="page-loading">
|
||||
<div class="ball-loader">
|
||||
<span></span><span></span><span></span><span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- js部分 -->
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_LIBS__/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_JS__/common.js?v=315"></script>
|
||||
<script>
|
||||
layui.use(['index', 'admin'], function () {
|
||||
var $ = layui.jquery;
|
||||
var index = layui.index;
|
||||
var admin = layui.admin;
|
||||
|
||||
// 默认加载主页
|
||||
index.loadHome({
|
||||
menuPath: '{:url("dashboard")}',
|
||||
menuName: '<i class="layui-icon layui-icon-home"></i>'
|
||||
});
|
||||
$(document).on('click','#logout',function(){
|
||||
admin.req('{:url("logout")}', {}, function (response) {
|
||||
if (response.code === 10000) {
|
||||
window.location.href = "{:url('login')}";
|
||||
}
|
||||
}, 'post')
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
259
catch/index/view/theme.html
Normal file
259
catch/index/view/theme.html
Normal file
@@ -0,0 +1,259 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="bg-white">
|
||||
<head>
|
||||
<title>设置</title>
|
||||
<meta charset="utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_LIBS__/layui/css/layui.css"/>
|
||||
<link rel="stylesheet" href="__CATCH_ADMIN_MODULE__/admin.css?v=315"/>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<style>
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.layui-card-body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.theme-div {
|
||||
padding-left: 15px;
|
||||
padding-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.btnTheme {
|
||||
display: inline-block;
|
||||
margin: 0 6px 15px 0;
|
||||
padding: 4px;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
.btnTheme img {
|
||||
width: 80px;
|
||||
height: 50px;
|
||||
border: 1px solid #f2f2f2;
|
||||
background: #F2F2F2;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btnTheme:hover, .btnTheme.active {
|
||||
border-color: #5FB878;
|
||||
}
|
||||
|
||||
.more-menu-item {
|
||||
display: block;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
font-size: 16px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
color: #333;
|
||||
padding: 0px 25px;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.more-menu-item:first-child {
|
||||
border-top: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.more-menu-item:hover {
|
||||
background: #F2F2F2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.more-menu-item .layui-icon {
|
||||
padding-right: 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.more-menu-item:after {
|
||||
content: "\e602";
|
||||
font-family: layui-icon !important;
|
||||
position: absolute;
|
||||
right: 16px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.more-menu-item.no-icon:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
/** 设置表单样式 */
|
||||
.set-item-label {
|
||||
display: inline-block;
|
||||
height: 38px;
|
||||
line-height: 38px;
|
||||
padding-left: 20px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.set-item-ctrl {
|
||||
display: inline-block;
|
||||
height: 38px;
|
||||
line-height: 38px;
|
||||
}
|
||||
|
||||
.set-item-ctrl > * {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- 加载动画 -->
|
||||
<div class="page-loading">
|
||||
<div class="ball-loader">
|
||||
<span></span><span></span><span></span><span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-header">设置主题</div>
|
||||
<div class="layui-card-body">
|
||||
<!-- 主题列表 -->
|
||||
<div class="theme-div"></div>
|
||||
|
||||
<!-- 导航 -->
|
||||
<div class="more-menu">
|
||||
<a class="more-menu-item" href="https://gitee.com/jaguarjack/catchAdmin" target="_blank">
|
||||
<i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> Git 地址
|
||||
</a>
|
||||
<a class="more-menu-item" href="https://catchadmin.com" target="_blank">
|
||||
<i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> 官网
|
||||
</a>
|
||||
<!--<a class="more-menu-item" href="https://demo.easyweb.vip/theme" target="_blank">
|
||||
<i class="layui-icon layui-icon-theme"></i> 主题生成器
|
||||
</a>-->
|
||||
</div>
|
||||
|
||||
<!-- 控制开关 -->
|
||||
<div class="layui-form" style="margin: 25px 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="set-item-label">页 脚:</label>
|
||||
<div class="set-item-ctrl">
|
||||
<input id="setFooter" lay-filter="setFooter" type="checkbox" lay-skin="switch" lay-text="开启|关闭">
|
||||
</div>
|
||||
<label class="set-item-label"> Tab 记忆:</label>
|
||||
<div class="set-item-ctrl">
|
||||
<input id="setTab" lay-filter="setTab" type="checkbox" lay-skin="switch" lay-text="开启|关闭">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="set-item-label">多标签:</label>
|
||||
<div class="set-item-ctrl">
|
||||
<input id="setMoreTab" lay-filter="setMoreTab" type="checkbox" lay-skin="switch" lay-text="开启|关闭">
|
||||
</div>
|
||||
<label class="set-item-label">切换刷新:</label>
|
||||
<div class="set-item-ctrl">
|
||||
<input id="setRefresh" lay-filter="setRefresh" type="checkbox" lay-skin="switch" lay-text="开启|关闭">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="set-item-label">导航箭头:</label>
|
||||
<div class="set-item-ctrl">
|
||||
<input lay-filter="navArrow" type="radio" value="" title="默认" name="navArrow">
|
||||
<input lay-filter="navArrow" type="radio" value="arrow2" title="箭头" name="navArrow">
|
||||
<input lay-filter="navArrow" type="radio" value="arrow3" title="加号" name="navArrow">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_LIBS__/layui/layui.js"></script>
|
||||
<script type="text/javascript" src="__CATCH_ADMIN_JS__/common.js?v=315"></script>
|
||||
<script>
|
||||
layui.use(['layer', 'form', 'admin'], function () {
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
var leftNav = '.layui-layout-admin>.layui-side>.layui-side-scroll>.layui-nav';
|
||||
var mainTab = '.layui-body>.layui-tab[lay-filter="admin-pagetabs"]';
|
||||
|
||||
var themes = [
|
||||
{title: '黑白主题', theme: 'admin'},
|
||||
{title: '黑色主题', theme: 'black'},
|
||||
{title: '蓝色主题', theme: 'blue'},
|
||||
{title: '藏青主题', theme: 'cyan'},
|
||||
{title: '黄色主题', theme: 'yellow'},
|
||||
{title: '绿色主题', theme: 'green'},
|
||||
{title: '粉红主题', theme: 'pink'},
|
||||
{title: '紫白主题', theme: 'purple-white'},
|
||||
{title: '紫色主题', theme: 'purple'},
|
||||
{title: '白色主题', theme: 'white'},
|
||||
{title: '红白主题', theme: 'red-white'},
|
||||
{title: '红色主题', theme: 'red'}
|
||||
];
|
||||
for (var i = 0; i < themes.length; i++) {
|
||||
var str = '<div class="btnTheme" theme="theme-' + themes[i].theme + '" title="' + themes[i].title + '">';
|
||||
str += ' <img src="__CATCH_ADMIN_MODULE__/theme/img/theme-' + themes[i].theme + '.png">';
|
||||
str += ' </div>';
|
||||
$('.theme-div').append(str)
|
||||
}
|
||||
|
||||
// 切换主题
|
||||
var mTheme = layui.data(admin.tableName).theme;
|
||||
$('.btnTheme[theme=' + (mTheme ? mTheme : admin.defaultTheme) + ']').addClass('active');
|
||||
$('.btnTheme').click(function () {
|
||||
$('.btnTheme').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
admin.changeTheme($(this).attr('theme'));
|
||||
});
|
||||
|
||||
// 关闭/开启页脚
|
||||
var openFooter = layui.data(admin.tableName).openFooter;
|
||||
$('#setFooter').prop('checked', openFooter == undefined ? true : openFooter);
|
||||
form.on('switch(setFooter)', function (data) {
|
||||
var checked = data.elem.checked;
|
||||
layui.data(admin.tableName, {key: 'openFooter', value: checked});
|
||||
checked ? top.layui.jquery('body.layui-layout-body').removeClass('close-footer') : top.layui.jquery('body.layui-layout-body').addClass('close-footer');
|
||||
});
|
||||
|
||||
// 关闭/开启Tab记忆功能
|
||||
$('#setTab').prop('checked', top.layui.index.cacheTab);
|
||||
form.on('switch(setTab)', function (data) {
|
||||
top.layui.index.setTabCache(data.elem.checked);
|
||||
});
|
||||
|
||||
// 切换Tab自动刷新
|
||||
var tabAutoRefresh = layui.data(admin.tableName).tabAutoRefresh;
|
||||
$('#setRefresh').prop('checked', tabAutoRefresh == undefined ? false : tabAutoRefresh);
|
||||
form.on('switch(setRefresh)', function (data) {
|
||||
var checked = data.elem.checked;
|
||||
layui.data(admin.tableName, {key: 'tabAutoRefresh', value: checked});
|
||||
checked ? top.layui.jquery(mainTab).attr('lay-autoRefresh', 'true') : top.layui.jquery(mainTab).removeAttr('lay-autoRefresh');
|
||||
});
|
||||
|
||||
// 关闭/开启多标签
|
||||
var openTab = layui.data(admin.tableName).openTab;
|
||||
$('#setMoreTab').prop('checked', openTab == undefined ? top.layui.index.pageTabs : openTab);
|
||||
form.on('switch(setMoreTab)', function (data) {
|
||||
var checked = data.elem.checked;
|
||||
layui.data(admin.tableName, {key: 'openTab', value: checked});
|
||||
admin.putTempData('indexTabs', undefined); // 清除缓存的Tab
|
||||
top.location.reload();
|
||||
});
|
||||
|
||||
// 导航小三角
|
||||
var navArrow = layui.data(admin.tableName).navArrow;
|
||||
if (navArrow == undefined) {
|
||||
var $sideNav = top.layui.jquery('.layui-side .layui-nav-tree');
|
||||
navArrow = $sideNav.hasClass('arrow2') ? 'arrow2' : $sideNav.hasClass('arrow3') ? 'arrow3' : '';
|
||||
}
|
||||
$('[name="navArrow"][value="' + (navArrow ? navArrow : '') + '"]').prop('checked', 'true');
|
||||
form.on('radio(navArrow)', function (data) {
|
||||
layui.data(admin.tableName, {key: 'navArrow', value: data.value});
|
||||
top.layui.jquery(leftNav).removeClass('arrow2 arrow3');
|
||||
data.value && top.layui.jquery(leftNav).addClass(data.value);
|
||||
});
|
||||
|
||||
form.render('checkbox');
|
||||
form.render('radio');
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user