diff --git a/app/common.php b/app/common.php index c6d1fde..9d0d82d 100644 --- a/app/common.php +++ b/app/common.php @@ -44,12 +44,29 @@ function get_system_config($name, $key = '') if ($key == '') { return $config; } else { - if ($config[$key]) { + if (isset($config[$key])) { return $config[$key]; } + else{ + return ''; + } } } +//设置系统配置 +function set_system_config($name, $key, $value='') +{ + $config = []; + $conf = Db::name('config')->where('name', $name)->find(); + if ($conf['content']) { + $config = unserialize($conf['content']); + } + $config[$key] = $value; + set_cache('system_config' . $name, $config); + $content = serialize($config); + Db::name('config')->where('name', $name)->update(['content'=>$content]); +} + //读取文件配置 function get_config($key) diff --git a/app/home/controller/Index.php b/app/home/controller/Index.php index e7623a6..16e5b30 100644 --- a/app/home/controller/Index.php +++ b/app/home/controller/Index.php @@ -84,6 +84,7 @@ class Index extends BaseController \think\facade\Cache::tag('adminMenu')->set('menu' . $admin['id'], $list); } View::assign('menu', $list); + View::assign('theme', get_system_config('other','theme')); return View(); } } @@ -199,4 +200,17 @@ class Index extends BaseController return view(); } } + + //设置theme + public function set_theme() + { + if (request()->isAjax()) { + $param = get_params(); + set_system_config('other','theme',$param['theme']); + return to_assign(); + } + else{ + return to_assign(1,'操作错误'); + } + } } diff --git a/app/home/view/conf/other.html b/app/home/view/conf/other.html index fdb41f1..06e178d 100644 --- a/app/home/view/conf/other.html +++ b/app/home/view/conf/other.html @@ -5,6 +5,16 @@

其他配置

+ +
系统主题 + {empty name="$config.theme"} + + + {else/} + + + {/empty} + 开发者 diff --git a/app/home/view/index/index.html b/app/home/view/index/index.html index 5a5cb5f..f67914d 100644 --- a/app/home/view/index/index.html +++ b/app/home/view/index/index.html @@ -24,13 +24,18 @@ -
+
    -
  • +
@@ -160,7 +168,32 @@ layer.close(index); }); }); - + layui.dropdown.render({ + elem: '#theme', + trigger: 'mousedown', + align: 'center', + data: [{ + title: '经典黑', + theme: 'black' + },{ + title: '简约白', + theme: 'white' + }], + click: function(data, othis){ + $.ajax({ + url: "/home/index/set_theme", + data:{'theme':data.theme}, + success: function (e) { + layer.msg(e.msg); + if (e.code == 0) { + setTimeout(function () { + parent.location.reload(); + }, 1000) + } + } + }) + } + }); //轮循获取消息 var getStatus = setInterval(function () { $.ajax({ diff --git a/public/static/assets/gougu/css/layout.css b/public/static/assets/gougu/css/layout.css index 78cf2cb..68e48c9 100644 --- a/public/static/assets/gougu/css/layout.css +++ b/public/static/assets/gougu/css/layout.css @@ -7,6 +7,7 @@ .gg-head-item .layui-nav{background:0 0;padding:0;} .gg-head-item .layui-nav .layui-nav-item a{padding:0;} .layui-layout-right .gg-head-item{border-left:1px solid #eeeeee;} +.layui-layout-right .gg-head-item i.layui-icon{font-weight:600} .layui-layout-right .gg-head-message{position:relative;} .layui-layout-right .gg-message-num{height: 18px;position: absolute; top: -12px;margin-left: -4px;left: 50%;} @@ -17,15 +18,15 @@ .gg-head-item .layui-nav .layui-this:after{display:none;} .gg-layout .layui-side {width: 200px;top: 0;z-index: 1001} -.gg-layout .layui-logo {position: fixed;left: 0; top: 0; z-index: 1001; width: 200px; height: 50px; text-align:center; line-height:50px; overflow: hidden;background-color: #001529;box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .15); cursor:pointer;} +.gg-layout .layui-logo {position: fixed;left: 0; top: 0; z-index: 1001; width: 200px; height: 49px; text-align:center; line-height:49px; overflow: hidden;background-color: #001529; border-bottom: 1px solid #011120; cursor:pointer;} .gg-layout .layui-logo, .gg-layout .layui-logo a {color: #f1f1f1; text-align:center;} .layui-side-menu {box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05);background-color: #001529; color: #fff} .layui-side-menu .layui-side-scroll {width: 100%} .layui-side-menu .layui-nav {width: 200px; margin-top: 50px; background: 0 0} -.layui-side-menu .layui-nav .layui-nav-item a {height: 40px;line-height: 40px; padding-left: 40px; padding-right: 20px} -.layui-side-menu .layui-nav .layui-nav-item>a {padding-top: 8px;padding-bottom: 8px} +.layui-side-menu .layui-nav .layui-nav-item a {height: 40px;line-height: 40px; padding-left: 44px; padding-right: 20px} +.layui-side-menu .layui-nav .layui-nav-item>a {padding-top: 2px;padding-bottom: 2px} .layui-side-menu .layui-nav .layui-nav-itemed>.layui-nav-child { padding: 0} .layui-side-menu .layui-nav .layui-nav-item .bi, .layui-side-menu .layui-nav .layui-nav-item .iconfont, @@ -33,9 +34,10 @@ .layui-side-menu .layui-nav .layui-nav-item .bi, .layui-side-menu .layui-nav .layui-nav-item .iconfont{font-size:18px;} .layui-side-menu .layui-nav .layui-nav-item .layui-nav-more {margin-top: -24px; color:#677C91} +.layui-side-menu .layui-nav .layui-nav-child .layui-nav-more {margin-top: -20px; color:#677C91} .layui-side-menu .layui-nav .layui-nav-child .layui-nav-child { background: 0 0 !important} -.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child a {padding-left: 55px} +.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child a {padding-left: 58px} .layui-side-menu .layui-nav .layui-nav-more {right: 12px} .layui-nav-tree .layui-nav-child dd.layui-this, @@ -47,6 +49,23 @@ .layui-side .layui-nav-tree .layui-nav-child dd a:hover{background-color:#192A3B;} .layui-side .layui-nav-tree .layui-nav-bar{background-color: #3C9CFF;width:3px;} +.layui-side-white{background-color: #fff; color: #323232} +.layui-side-white .layui-logo {background-color: #ffffff;border-bottom: 1px solid #eeeeee;} +.layui-side-white .layui-nav .layui-nav-item a{color: #323232} +.layui-side-white .layui-nav .layui-nav-item .iconfont{font-weight:600;} +.layui-side-white .layui-nav-itemed>.layui-nav-child{background-color:#fff!important;} +.layui-side-white .layui-nav-itemed>a, +.layui-side-white .layui-nav-tree .layui-nav-title a, +.layui-side-white .layui-nav-tree .layui-nav-title a:hover{color:#187FDD!important;} +.layui-side-white .layui-nav-tree .layui-nav-child dd.layui-this, +.layui-side-white .layui-nav-tree .layui-nav-child dd.layui-this a, +.layui-side-white .layui-nav-tree .layui-this, +.layui-side-white .layui-nav-tree .layui-this>a, +.layui-side-white .layui-nav-tree .layui-this>a:hover {background-color: #ECF6FF;color: #187FDD;} + +.layui-side-white .layui-nav-tree .layui-nav-child dd a:hover{background-color:#ffffff;color: #187FDD;} +.layui-side-white .layui-nav-tree .layui-nav-bar{background-color: #187FDD;width:3px;left:inherit;right:0} + .page-tabs{ position: fixed;top: 50px;right: 0; z-index: 999; height: 40px; line-height: 40px; padding: 0 80px 0 40px; background-color: #fff;box-sizing: border-box; box-shadow: 0 1px 20px 0 rgba(0, 0, 0, 8%)} .page-tabs, .gg-layout .layui-body, @@ -77,6 +96,7 @@ .page-tabs .layui-icon-down {right: 0} .page-tabs .layui-tab {margin: 0; overflow: hidden} .page-tabs .layui-tab-title {height: 40px;border: none} +.page-tabs .layui-tab-title i{font-size:18px; font-weight:600} .page-tabs .layui-tab-title li { min-width: 0; line-height: 40px; max-width: 160px; text-overflow: ellipsis; padding-left:12px; padding-right: 32px;overflow: hidden;border-right: 1px solid #eeeeee;vertical-align: top} .page-tabs .layui-tab-title li:first-child {padding-right: 15px} @@ -89,7 +109,7 @@ .page-tabs .layui-tab-title li:hover:after {width: 100%} .page-tabs .layui-tab-title li.layui-this, -.page-tabs .layui-tab-title li:hover { background-color: #fafafa} +.page-tabs .layui-tab-title li:hover { background-color: #fafafa; color:#187FDD} .page-tabs .layui-tab-title li.layui-this:after {width: 100%; border: none;height: 2px; background-color: #1E9FFF} diff --git a/public/static/home/images/syslogo.png b/public/static/home/images/syslogo.png index 8bdf298..1abd636 100644 Binary files a/public/static/home/images/syslogo.png and b/public/static/home/images/syslogo.png differ