Compare commits

...

67 Commits

Author SHA1 Message Date
Anyon
9d07605601 Update .gitignore 2022-02-25 10:24:23 +08:00
Anyon
fcfb1c5fcd Update .gitignore 2022-02-25 10:22:42 +08:00
Anyon
a907cbaa35
!24 update app/data/view/base/config/page_form.html.
Merge pull request !24 from JinPengBSY/N/A
2022-02-22 10:31:53 +00:00
Anyon
d3ea9a26bf Update admin.js 2022-02-22 17:21:22 +08:00
Anyon
4d7a899b89 Update admin.js 2022-02-22 13:13:00 +08:00
Anyon
ac13b1db61 Update admin.js 2022-02-22 13:12:36 +08:00
Anyon
3b8e76182a Update admin.js 2022-02-22 11:31:19 +08:00
Anyon
d6fb303dd6 Update mobile_head.png 2022-02-22 11:24:33 +08:00
Anyon
32521330bc Update mobile_head.png 2022-02-22 11:20:59 +08:00
Anyon
e0a46567cc 调整图片大小 2022-02-22 10:56:35 +08:00
Anyon
03e75c9f5e 修改配置 2022-02-21 18:14:30 +08:00
JinPengBSY
39da639dd5
update app/data/view/base/config/page_form.html. 2022-02-20 13:00:45 +00:00
Anyon
65a959a8c5 优化后台样式 2022-02-18 18:31:24 +08:00
Anyon
ff6d44bb05 Update excel.xlsx.js 2022-02-18 14:41:10 +08:00
Anyon
1e987f5dfe 修改样式 2022-02-16 12:38:04 +08:00
Anyon
1c8bceafa4 Update admin.js 2022-02-15 10:38:20 +08:00
Anyon
0d2211197b
!23 修复autocompleter下拉框宽度自适应
Merge pull request !23 from Gamit/v6
2022-02-14 05:01:43 +00:00
liupf
56d2292ece autocompleter下拉框宽度自适应 2022-02-12 21:54:54 +08:00
Anyon
958d357a03 Update readme.md 2022-02-11 12:29:20 +08:00
Anyon
2ecb7066e8 修改后台主题配置 2022-02-11 11:43:53 +08:00
Anyon
e6a3c5a526 Merge branch 'v6' of https://gitee.com/zoujingli/ThinkAdmin into v6 2022-02-10 17:11:14 +08:00
Anyon
38643eb8bb 修改后台样式 2022-02-10 17:10:26 +08:00
邹景立
e7560c6af7
Merge pull request #241 from chenyongze/master
Merge pull request #1 from zoujingli/master
2022-02-10 17:06:48 +08:00
Anyon
1527d45961 统一图片上传样式 2022-02-10 16:55:32 +08:00
Anyon
810cd5d8ea 格式化代码 2022-02-10 16:51:00 +08:00
Anyon
2855bc245f 同步 less 生成 css 2022-02-10 16:49:51 +08:00
Anyon
f5e6d1d012
!21 上传单张图片增加预览功能
Merge pull request !21 from Gamit/v6
2022-02-10 08:48:29 +00:00
liupf
09c49730b5 上传单张图片增加预览功能 2022-02-10 16:36:55 +08:00
Anyon
933ddd63b4 修改后台主题布局 2022-02-10 15:12:15 +08:00
Anyon
906a509027 修改后台样式 2022-02-10 14:40:28 +08:00
Anyon
4ffbc9730d 修改样式 2022-02-10 14:39:06 +08:00
Anyon
d2aa8d0817 Update FansService.php 2022-02-10 13:54:26 +08:00
Anyon
7f3cae056e 修改代码注释 2022-02-10 13:52:15 +08:00
Anyon
2ca69565f6 修改注释 2022-02-10 13:48:56 +08:00
Anyon
b03cb6fc1d 修改注释 2022-02-10 13:47:43 +08:00
Anyon
e72ab77bb3 Update form.html 2022-02-10 11:38:36 +08:00
Anyon
7a9ef75f5c Update form.html 2022-02-10 11:34:05 +08:00
Anyon
8186864daf 修改样式及商品表单 2022-02-10 11:32:47 +08:00
Anyon
2cc3e4f471 修改版本信息 2022-02-10 11:14:40 +08:00
邹景立
7352483f14 修改主题颜色值 2022-01-21 20:59:14 +08:00
邹景立
5430b3a6b8 Update index.html 2022-01-21 20:47:41 +08:00
邹景立
cba7560481 修改登录处理 2022-01-21 20:22:20 +08:00
邹景立
558dede7ce Update Login.php 2022-01-21 19:59:10 +08:00
邹景立
60ba2a872b Update Login.php 2022-01-21 19:41:11 +08:00
邹景立
e98bfc8b34 Update Login.php 2022-01-21 19:33:25 +08:00
Anyon
1a40f50322 Update favicon.ico 2022-01-21 18:29:47 +08:00
Anyon
cbd49abf60 增加小草绿1 2022-01-21 18:19:39 +08:00
Anyon
28f8c23c94 Update Config.php 2022-01-21 18:14:22 +08:00
Anyon
751fc77c4a 修改后台样式 2022-01-21 18:10:58 +08:00
Anyon
f14e6ca191 修改样式 2022-01-21 18:03:56 +08:00
Anyon
e1d38f1ffe 修改后台样式 2022-01-21 17:57:17 +08:00
Anyon
d58b1d2c73 Update index.html 2022-01-21 17:51:53 +08:00
Anyon
ff3c649381 Update Config.php 2022-01-21 17:48:49 +08:00
Anyon
2841dc0907 修改后台样式 2022-01-21 17:45:12 +08:00
Anyon
fb1b5ed2de Update index.html 2022-01-21 17:29:16 +08:00
Anyon
b6aaa4077a 修改后台样式 2022-01-21 17:20:19 +08:00
Anyon
0ef7fbd292 Update console.css 2022-01-21 17:06:33 +08:00
Anyon
298017b93b 修改样式 2022-01-21 17:06:29 +08:00
Anyon
c95890a4fa 修改模板 2022-01-21 16:51:39 +08:00
Anyon
c3f62db5d7 Update theme.html 2022-01-21 16:17:27 +08:00
Anyon
02a1b5ae70 增加更多样式 2022-01-21 16:13:36 +08:00
Anyon
677cfc4317 修改后台样式 2022-01-21 16:06:55 +08:00
Anyon
6f8a451bb9 Update layout-left.html 2022-01-21 15:58:25 +08:00
Anyon
38e972af30 增加更新样式 2022-01-21 15:53:59 +08:00
Anyon
f757b92901 Update system.html 2022-01-21 14:25:48 +08:00
Anyon
76919b48c1 Update theme.html 2022-01-21 14:13:17 +08:00
Chen,Yongze
e1dbdf6120
Merge pull request #1 from zoujingli/master
get new
2019-03-18 07:51:04 +08:00
83 changed files with 651 additions and 336 deletions

19
.gitignore vendored
View File

@ -5,12 +5,13 @@
.vscode
*.log
.DS_Store
/vendor
/runtime
/safefile
/nbproject
/composer.lock
/public/upload
/public/static/theme/css/_*.css*
/public/static/theme/css/node_modules
/public/static/theme/css/package-lock.json
vendor
runtime
safefile
nbproject
composer.lock
public/upload
public/favicon.ico
public/static/theme/css/_*.css*
public/static/theme/css/node_modules
public/static/theme/css/package-lock.json

View File

@ -34,11 +34,16 @@ use think\admin\storage\TxcosStorage;
class Config extends Controller
{
const themes = [
'default' => '默认色',
'red' => '玫瑰红',
'blue' => '天空蓝',
'black' => '精典黑',
'white' => '简约白'
'default' => '默认色0',
'white' => '简约白0',
'red-1' => '玫瑰红1',
'blue-1' => '深空蓝1',
'black-1' => '精典黑1',
'green-1' => '小草绿1',
'red-2' => '玫瑰红2',
'blue-2' => '深空蓝2',
'black-2' => '精典黑2',
'green-2' => '小草绿2',
];
/**

View File

@ -51,7 +51,7 @@ class Index extends Controller
$this->title = '系统管理后台';
$this->super = AdminService::instance()->isSuper();
$this->theme = AdminService::instance()->getUserTheme();
$this->fetch('layout');
$this->fetch();
}
}

View File

@ -71,8 +71,8 @@ class Login extends Controller
}
/*! 用户信息验证 */
$map = ['username' => $data['username'], 'is_deleted' => 0];
$user = SystemUser::mk()->where($map)->find();
if (empty($user)) {
$user = SystemUser::mk()->where($map)->findOrEmpty();
if ($user->isEmpty()) {
$this->app->session->set("LoginInputSessionError", true);
$this->error('登录账号或密码错误,请重新输入!');
}
@ -86,10 +86,9 @@ class Login extends Controller
}
$this->app->session->set('user', $user->toArray());
$this->app->session->delete("LoginInputSessionError");
$user->save([
'login_ip' => $this->app->request->ip(),
'login_at' => $this->app->db->raw('now()'),
'login_num' => $this->app->db->raw('login_num+1'),
$user->inc('login_num')->update([
'login_at' => date('Y-m-d H:i:s'),
'login_ip' => $this->app->request->ip(),
]);
sysoplog('系统用户登录', '登录系统后台成功');
$this->success('登录成功', sysuri('admin/index/index'));

View File

@ -1,36 +1,30 @@
<form data-auto="true" action="{:sysuri()}" method="post" class='layui-form layui-card'>
<div class="layui-card-body padding-left-40">
<div class="layui-form-item margin-bottom-5">
<div class="help-label label-required-prev"><b>默认主题样式</b>Theme Style</div>
<div class="layui-textarea" style="min-height:unset">
{foreach $themes as $k=>$v}
<label class="think-radio">
{if sysconf('base.site_theme') eq $k}
<input name="site_theme" type="radio" value="{$k}" lay-ignore checked> {$v}
{else}
<input name="site_theme" type="radio" value="{$k}" lay-ignore> {$v}
{/if}
</label>
{/foreach}
</div>
<span class="help-block">用户登录管理后台,未配置个性化主题的用户默认会使用此处配置的主题样式 ~</span>
</div>
<div class="layui-row layui-col-space15 margin-bottom-5">
<div class="layui-col-xs6 padding-bottom-0">
<div class="layui-col-xs4 padding-bottom-0">
<label class="relative block">
<span class="help-label"><b>登录表单标题</b>Login Name</span>
<input name="login_name" required placeholder="请输入登录页面的表单标题" value="{:sysconf('login_name')?:'系统管理'}" class="layui-input">
</label>
</div>
<div class="layui-col-xs6 padding-bottom-0">
<div class="layui-col-xs4 padding-bottom-0">
<div class="help-label label-required-prev"><b>后台登录入口</b>Login Entry</div>
<label class="layui-input relative block label-required-null">
<label class="layui-input relative block nowrap label-required-null">
<span>{:sysuri('@',[],false,true)}</span>
<input autofocus required pattern="[a-zA-Z_][a-zA-Z0-9_]*" placeholder="请输入后台登录入口" class="layui-input inline-block padding-0 border-0" style="width:auto;background:none" value="{:substr(sysuri('admin/index/index',[],false), strlen(sysuri('@')))}" name="xpath">
<input autofocus required pattern="[a-zA-Z_][a-zA-Z0-9_]*" placeholder="请输入后台登录入口" class="layui-input inline-block padding-0 border-0" style="width:100px;background:none" value="{:substr(sysuri('admin/index/index',[],false), strlen(sysuri('@')))}" name="xpath">
</label>
</div>
<div class="layui-col-xs4 padding-bottom-0">
<div class="help-label label-required-prev"><b>后台默认配色</b>Theme Style</div>
<select class="layui-select" name="site_theme" lay-filter="SiteTheme">
{foreach $themes as $k=>$v}{if sysconf('base.site_theme') eq $k}
<option selected value="{$k}">{$v}</option>
{else}
<option value="{$k}">{$v}</option>
{/if}{/foreach}
</select>
</div>
<div class="layui-col-xs12 padding-top-0 padding-bottom-0">
<span class="help-block">后台登录入口是由英文字母开头,且不能有相同名称的模块,设置之后原地址不能继续访问,请谨慎配置 ~</span>
</div>
@ -108,11 +102,11 @@
<script>
layui.form.render();
$('[name="site_theme"]').on('click', function () {
var alls = '', that = this, prox = 'layui-layout-theme-', curt = prox + that.value;
$('[name="site_theme"]').map(function () {
if (this.value !== that.value) alls += ' ' + prox + this.value;
layui.form.on('select(SiteTheme)', function (data) {
var alls = '', prox = 'layui-layout-theme-', curt = prox + data.value;
$(data.elem.options).map(function () {
if (this.value !== data.value) alls += ' ' + prox + this.value;
});
$('.layui-layout-admin').removeClass(alls).addClass(curt)
$('.layui-layout-body').removeClass(alls).addClass(curt)
});
</script>

View File

@ -10,7 +10,8 @@
{foreach $menus as $one}
<div>
<a data-menu-node="m-{$one.id}" data-open="{$one.url}" data-target-tips="{$one.title|default=''}">
<i class="{$one.icon|default='layui-icon layui-icon-ie'} font-s20"></i>
{notempty name='one.icon'}<i class="{$one.icon|default=''}"></i>{/notempty}
<span>{$one.title|default=''}</span>
</a>
</div>
{/foreach}

View File

@ -27,7 +27,7 @@
<dd lay-unselect><a data-load="{:sysuri('admin/api.runtime/push')}"><i class="layui-icon layui-icon-template-1"></i> 缓存加速</a></dd>
<dd lay-unselect><a data-load="{:sysuri('admin/api.runtime/clear')}"><i class="layui-icon layui-icon-fonts-clear"></i> 清理缓存</a></dd>
{/if}
<dd lay-unselect><a data-modal="{:sysuri('admin/index/theme')}"><i class="layui-icon layui-icon-theme"></i> 配色方案</a></dd>
<dd lay-unselect><a data-width="520px" data-modal="{:sysuri('admin/index/theme')}"><i class="layui-icon layui-icon-theme"></i> 配色方案</a></dd>
<dd lay-unselect><a data-load="{:sysuri('admin/login/out')}" data-confirm="确定要退出登录吗?"><i class="layui-icon layui-icon-release"></i> 退出登录</a></dd>
</dl>
<a class="layui-elip">

View File

@ -19,17 +19,17 @@
<script src="__ROOT__/static/plugs/jquery/pace.min.js"></script>
</head>
<body class="layui-layout-body">
<body class="layui-layout-body layui-layout-theme-{$theme|default=''}">
{block name='body'}
<div class="layui-layout layui-layout-admin layui-layout-left-hide layui-layout-theme-{$theme|default=''}">
<div class="layui-layout layui-layout-admin layui-layout-left-hide">
<!-- 顶部菜单 开始 -->
{include file='index/layout-top'}
{include file='index/index-top'}
<!-- 顶部菜单 结束 -->
<!-- 左则菜单 开始 -->
{include file="index/layout-left"}
{include file="index/index-left"}
<!-- 左则菜单 结束 -->
<!-- 主体内容 开始 -->

View File

@ -3,7 +3,7 @@
<div class="layui-form-item margin-bottom-5 label-required-prev">
<div class="help-label"><b>后台配色方案</b>Theme Style</div>
<div class="layui-textarea" style="min-height:unset">
<div class="layui-textarea think-bg-gray" style="min-height:unset">
{foreach $themes as $k=>$v}
<label class="think-radio">
{if isset($theme) and $theme eq $k}
@ -14,6 +14,7 @@
</label>
{/foreach}
</div>
<p class="help-block">切换配色方案,需要保存成功后配色方案才会永久生效,下次登录也会有效哦 ~</p>
</div>
</div>
@ -31,6 +32,6 @@
$('form#theme input[name=site_theme]').map(function () {
if (this.value !== that.value) alls += ' ' + prox + this.value;
});
$('.layui-layout-admin').removeClass(alls).addClass(curt)
$('.layui-layout-body').removeClass(alls).addClass(curt)
});
</script>

View File

@ -1,4 +1,4 @@
{extend name="index/layout"}
{extend name="index/index"}
{block name="body"}
<div class="login-container" data-supersized="{$backgrounds|default='__ROOT__/static/theme/img/login/bg1.jpg,__ROOT__/static/theme/img/login/bg2.jpg'}">

View File

@ -11,7 +11,7 @@
</label>
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">页面名称</span>
<span class="color-green font-w7 label-required-prev">页面内容</span>
<span class="color-desc margin-left-5">Page Content</span>
<label class="relative block">
<textarea class="layui-hide" name="content">{$data.content|default=''}</textarea>

View File

@ -7,9 +7,8 @@
<!--{notempty name='marks'}-->
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">商品标签</span>
<span class="color-desc margin-left-5">Mark Name</span>
<div class="layui-textarea">
<span class="help-label label-required-prev"><b>商品标签</b>Mark Name</span>
<div class="layui-textarea padding-bottom-10" style="min-height:unset">
{foreach $marks as $mark}{if isset($vo.marks) && is_array($vo.marks) && in_array($mark, $vo.marks)}
<input checked name="marks[]" title="{$mark}" type="checkbox" value="{$mark}">
{else}
@ -21,8 +20,7 @@
<!--{notempty name='cates'}-->
<label class="layui-form-item block relative">
<span class="color-green font-w7 label-required-prev">所属分类</span>
<span class="color-desc margin-left-5">Category Name</span>
<span class="help-label label-required-prev"><b>所属分类</b>Category Name</span>
<select class="layui-select" lay-search name="cateids">
{foreach $cates as $cate}{if in_array($cate.id, $vo.cateids)}
<option selected value="{:arr2str($cate.ids)}">{:join(' ', $cate.names)}</option>
@ -35,9 +33,8 @@
<!--{notempty name='payments'}-->
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">支付方式</span>
<span class="color-desc margin-left-5">Goods Payment</span>
<div class="layui-textarea">
<span class="help-label label-required-prev"><b>支付方式</b>Goods Payment</span>
<div class="layui-textarea padding-bottom-10" style="min-height:unset">
{foreach $payments as $payment}{if isset($vo.payment) && is_array($vo.payment) && in_array($payment.code, $vo.payment)}
<input checked name="payment[]" title="{$payment.name}" type="checkbox" value="{$payment.code}">
{else}
@ -48,15 +45,13 @@
<!--{/notempty}-->
<label class="layui-form-item block relative">
<span class="color-green font-w7">商品名称</span>
<span class="color-desc margin-left-5">Goods Name</span>
<span class="help-label"><b>商品名称</b>Goods Name</span>
<input class="layui-input" name="name" placeholder="请输入商品名称" required value="{$vo.name|default=''}">
</label>
<!--{notempty name='trucks'}-->
<label class="layui-form-item block relative">
<span class="color-green font-w7 label-required-prev">邮费模板</span>
<span class="color-desc margin-left-5">Truck Template</span>
<span class="help-label label-required-prev"><b>邮费模板</b>Truck Template</span>
<select class="layui-select" lay-search name="truck_code">
<option value="">--- ---</option>
{foreach $trucks as $truck}{if isset($vo.truck_code) and $vo.truck_code eq $truck.code}
@ -69,8 +64,7 @@
<!--{/notempty}-->
<div class="layui-form-item">
<span class="color-green font-w7 label-required-prev">商品封面及轮播图片</span>
<span class="color-desc margin-left-5">Cover and Carousel Pictures</span>
<span class="help-label label-required-prev"><b>商品封面及轮播图片</b>Cover and Carousel Pictures</span>
<table class="layui-table">
<thead>
<tr>
@ -130,9 +124,6 @@
</label>
</fieldset>
<!--{/notempty}-->
</div>
<div class="layui-clear">
<fieldset>
<legend><span class="layui-badge think-bg-violet">物流配送发货类型</span></legend>
<div class="layui-form-item">
@ -187,7 +178,7 @@
</div>
<div class="layui-form-item">
<span class="color-green font-w7 label-required-prev">商品规格及商品SKU绑定<span class="color-red font-s12">(规格填写后不允许再次修改)</span></span>
<span class="help-label label-required-prev"><b>商品规格及商品SKU绑定</b><span class="color-red font-s12">(规格填写后不允许再次修改)</span></span>
<div class="margin-bottom-10" ng-class="{true:'layui-show'}[mode==='add'&&specs.length>0]" ng-repeat="x in specs track by $index" style="display:none">
<div class="goods-spec-box padding-10 margin-0 relative" style="background:#ddd">
<span class="text-center goods-spec-name">分组</span>
@ -281,12 +272,12 @@
</div>
<label class="layui-form-item block">
<span class="font-w7 color-green">商品简介描述</span>
<span class="help-label"><b>商品简介描述</b></span>
<textarea class="layui-textarea" name="remarks" placeholder="请输入商品简介描述">{$vo.remarks|default=''|raw}</textarea>
</label>
<div class="layui-form-item block">
<span class="label-required-prev font-w7 color-green">商品富文本详情</span>
<span class="help-label label-required-prev"><b>商品富文本详情</b></span>
<textarea class="layui-hide" name="content">{$vo.content|default=''|raw}</textarea>
</div>
@ -306,6 +297,7 @@
<textarea id="GoodsSpecs">{$vo.data_specs|raw|default=''}</textarea>
<textarea id="GoodsItems">{$vo.data_items|raw|default=''}</textarea>
</label>
<script>
/*! 表单初始化 */
window.form.render();

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -102,10 +102,10 @@ class Auto extends Command
[$item, $news] = [MediaService::instance()->news($data['news_id']), []];
if (isset($item['articles']) && is_array($item['articles'])) {
$host = sysconf('base.site_host') ?: true;
foreach ($item['articles'] as $vo) if (empty($news)) array_push($news, [
foreach ($item['articles'] as $vo) if (empty($news)) $news[] = [
'url' => url("@wechat/api.view/item/id/{$vo['id']}", [], false, $host)->build(),
'title' => $vo['title'], 'picurl' => $vo['local_url'], 'description' => $vo['digest'],
]);
];
$result = $this->sendMessage('news', ['articles' => $news]);
}
}

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -125,7 +125,7 @@ class Menu extends Controller
*/
private function _buildMenuData(array $list): array
{
foreach ($list as $key => &$item) {
foreach ($list as &$item) {
if (empty($item['sub_button'])) {
$item = $this->_buildMenuDataItem($item);
} else {

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -148,7 +148,7 @@ class News extends Controller
$id = intval($vo['id']);
$result = WechatNewsArticle::mk()->where('id', $id)->update($vo);
}
if ($result !== false) array_push($ids, $id);
if ($result !== false) $ids[] = $id;
}
return join(',', $ids);
}

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -223,10 +223,10 @@ class Push extends Controller
case 'news':
[$news, $articles] = [MediaService::instance()->news($data['news_id']), []];
if (empty($news['articles'])) return false;
foreach ($news['articles'] as $vo) array_push($articles, [
foreach ($news['articles'] as $vo) $articles[] = [
'url' => url("@wechat/api.view/item/id/{$vo['id']}", [], false, true)->build(),
'title' => $vo['title'], 'picurl' => $vo['local_url'], 'description' => $vo['digest'],
]);
];
return $this->_sendMessage('news', ['articles' => $articles], $custom);
case 'music':
if (empty($data['music_url']) || empty($data['music_title']) || empty($data['music_desc'])) return false;

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -54,13 +54,9 @@ class FansService extends Service
* 获取粉丝信息
* @param string $openid
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function get(string $openid): array
{
$user = WechatFans::mk()->where(['openid' => $openid])->find();
return empty($user) ? [] : $user->toArray();
return WechatFans::mk()->where(['openid' => $openid])->findOrEmpty()->toArray();
}
}

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -16,7 +16,7 @@
return [
// 字段名称
'name' => 'PHPSESSID',
'name' => 'ssid',
// 驱动方式
'type' => 'file',
// 存储连接

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -21,7 +21,7 @@ return [
'auto_rule' => 1,
// 模板目录名
'view_dir_name' => 'view',
// 模板后缀
// 模板文件后缀
'view_suffix' => 'html',
// 模板文件名分隔符
'view_depr' => DIRECTORY_SEPARATOR,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -3,7 +3,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -14,9 +14,9 @@
// | github 代码仓库https://github.com/zoujingli/ThinkAdmin
// +----------------------------------------------------------------------
if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) {
if (is_file($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_NAME'])) {
return false;
} else {
$_SERVER["SCRIPT_FILENAME"] = __DIR__ . '/index.php';
require __DIR__ . "/index.php";
$_SERVER['SCRIPT_FILENAME'] = __DIR__ . '/index.php';
require $_SERVER['SCRIPT_FILENAME'];
}

View File

@ -1,7 +1,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
@ -58,8 +58,7 @@ window.form = layui.form, window.layer = layui.layer, window.laydate = layui.lay
/*! 配置 require 参数 */
require.config({
waitSeconds: 60,
baseUrl: baseRoot,
baseUrl: baseRoot, waitSeconds: 60,
map: {'*': {css: baseRoot + 'plugs/require/css.js'}},
paths: {
'vue': ['plugs/vue/vue.min'],
@ -142,7 +141,8 @@ $(function () {
/*! 消息组件实例 */
$.msg = new function () {
var that = this;
this.idx = [], this.shade = [0.02, '#000'];
this.idx = [], this.mdx = [];
this.shade = [0.02, '#000000'];
/*! 关闭消息框 */
this.close = function (index) {
if (index !== null) return layer.close(index);
@ -202,10 +202,10 @@ $(function () {
var url = ret.url || (typeof ret.data === 'string' ? ret.data : '');
var msg = ret.msg || (typeof ret.info === 'string' ? ret.info : '');
if (parseInt(ret.code) === 1 && time === 'false') {
return url ? (location.href = url) : $.form.reload();
}
return (parseInt(ret.code) === 1) ? this.success(msg, time, function () {
(url ? (location.href = url) : $.form.reload()), that.close(null);
return url ? location.href = url : $.form.reload();
} else return (parseInt(ret.code) === 1) ? this.success(msg, time, function () {
url ? location.href = url : $.form.reload();
that.close($.msg.mdx.length > 0 ? $.msg.mdx.pop() : null);
}) : this.error(msg, 3, function () {
url ? location.href = url : '';
});
@ -318,7 +318,7 @@ $(function () {
this.modal = function (url, data, name, call, load, tips, area, offset) {
this.load(url, data, 'GET', function (res) {
if (typeof (res) === 'object') return $.msg.auto(res), false;
$.msg.idx.push(layer.open({
$.msg.mdx.push(layer.open({
type: 1, btn: false, area: area || "800px", resize: false, content: res, title: name || '', offset: offset || 'auto', success: function ($dom, idx) {
$.form.reInit($dom.off('click', '[data-close]').on('click', '[data-close]', function () {
(function (confirm, callable) {
@ -500,7 +500,7 @@ $(function () {
/* 触发表单提交后,锁定三秒不能再次提交表单 */
if (that.form.attr('submit-locked')) return false;
that.form.attr('submit-locked', 1), evt.button.addClass('submit-button-loading');
callable.call(this, that.form.formToJson()), setTimeout(function () {
callable.call(this, that.form.formToJson(), []), setTimeout(function () {
that.form.removeAttr('submit-locked'), evt.button.removeClass('submit-button-loading');
}, 3000);
}
@ -574,9 +574,10 @@ $(function () {
$.fn.uploadOneImage = function () {
return this.each(function () {
if ($(this).data('inited')) return true; else $(this).data('inited', true);
var $in = $(this), $bt = $('<a data-file class="uploadimage transition"><span class="layui-icon">&#x1006;</span></a>').data('input', this);
$bt.attr('data-size', $in.data('size') || 0).attr('data-type', $in.data('type') || 'png,jpg,gif').find('span').on('click', function (event) {
event.stopPropagation(), $bt.attr('style', ''), $in.val('');
var $in = $(this), $bt = $('<a data-file class="uploadimage transition margin-top-5"><span class="layui-icon">&#x1006;</span><span class="layui-icon">&#xe615;</span></a>').data('input', this);
$bt.attr('data-size', $in.data('size') || 0).attr('data-type', $in.data('type') || 'png,jpg,gif,jpeg').find('span').on('click', function (event) {
event.stopPropagation();
if ($(this).index() === 0) $bt.attr('style', ''), $in.val(''); else $in.val() && $.previewImage(encodeURI($in.val()));
}), $in.on('change', function () {
if (this.value) $bt.css('backgroundImage', 'url(' + encodeURI(this.value) + ')');
}).after($bt).trigger('change');
@ -588,7 +589,7 @@ $(function () {
return this.each(function () {
if ($(this).data('inited')) return true; else $(this).data('inited', true);
var $in = $(this), $bt = $('<a data-file="mul" class="uploadimage"></a>'), imgs = this.value ? this.value.split('|') : []
$in.after($bt.attr('data-size', $in.data('size') || 0).attr('data-type', $in.data('type') || 'png,jpg,gif').uploadFile(function (src) {
$in.after($bt.attr('data-size', $in.data('size') || 0).attr('data-type', $in.data('type') || 'png,jpg,gif,jpeg').uploadFile(function (src) {
imgs.push(src), $in.val(imgs.join('|')), showImageContainer([src]);
})), (imgs.length > 0 && showImageContainer(imgs));

View File

@ -1,7 +1,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------

View File

@ -1,7 +1,7 @@
.autocompleter {
left: 0;
top: 37px;
width: 100%;
min-width: 100%;
z-index: 100;
background: #fff;
position: absolute;

View File

@ -20,7 +20,7 @@ define(function () {
var method = this.dataset.method || form.attr('method') || 'get';
var location = this.dataset.excel || this.dataset.formExport || form.attr('action') || '';
that.load(location, form.serialize(), method).then(function (ret) {
that.export(done(ret), name);
that.export(done(ret, []), name);
}).fail(function (ret) {
$.msg.tips(ret || '文件导出失败');
});

View File

@ -3,9 +3,9 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
@ -49,7 +49,7 @@
@LeftMainNavHoverTextColor: #FFF;
@LeftMainNavNormalBackColor: none;
@LeftMainNavNormalTextColor: #FFF;
@LeftMainNavNormalTextColor: #EEE;
@LeftMainNavActiveBackColor: #098;
@LeftMainNavActiveTextColor: #FFF;

View File

@ -6,7 +6,7 @@
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
@ -630,7 +630,6 @@
background-size: cover;
span.layui-icon {
right: 0;
color: #fff;
width: 20px;
height: 20px;
@ -638,7 +637,20 @@
position: absolute;
text-align: center;
line-height: 22px;
background: rgba(0, 0, 0, .5)
box-shadow: @ShadowMinOuter;
background: rgba(0, 0, 0, .8);
}
span.layui-icon:first-child {
right: 0;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
span.layui-icon:last-child {
right: 21px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
&:hover span.layui-icon {

View File

@ -4,9 +4,9 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
@ -65,6 +65,8 @@ fieldset {
border: 1px solid #009688;
&:hover:not(.layui-btn-disabled) {
opacity: 1;
filter: alpha(opacity=100);
box-shadow: @ShadowMaxInset;
}
@ -370,6 +372,10 @@ fieldset {
border-color: @InputBorderActiveColor;
}
.layui-form-selected dl {
min-height: fit-content;
}
.layui-form-checkbox.layui-form-checked {
i {
border-color: #5FB878;

View File

@ -4,9 +4,9 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
@ -175,16 +175,16 @@
.layui-side-target {
&:before {
content: "\e65b";
color: #FFF;
width: 100%;
height: 100%;
display: block;
content: "\e65b";
line-height: 50px;
text-align: center;
font-family: layui-icon !important;
font-size: 10px;
font-style: normal;
font-family: layui-icon !important;
transform: rotate(180deg);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
@ -275,6 +275,11 @@
line-height: 45px;
padding-top: 0;
padding-bottom: 0;
color: @LeftMainNavNormalTextColor;
&:hover {
color: @LeftMainNavActiveTextColor;
}
.nav-icon {
padding-right: 5px;

View File

@ -1,71 +0,0 @@
> .layui-header {
background: @headNormalBackColor;
.layui-nav-item {
&.layui-this > a {
color: @headActionTextColor;
background: @headActiveBackColor;
}
> a {
color: @headNormalTextColor;
&:hover {
color: @headActionTextColor;
}
}
}
}
> .layui-body {
> .think-page-body > .layui-card > .layui-card-header {
box-sizing: border-box;
}
}
.layui-side {
background-color: @leftBackColor;
.layui-logo {
color: #FFF;
box-shadow: none;
font-weight: bold;
}
.layui-side-scroll {
display: flex !important;
box-sizing: border-box;
border-right: @TopHeaderBottomLine;
.layui-side-icon {
display: none;
}
.layui-side-tree {
flex: 1;
.layui-nav-item {
a {
color: @leftNormalTextColor;
border-bottom: none !important;
&:hover {
color: @leftActiveTextColor;
}
}
.layui-this, &.layui-this {
> a {
color: @leftActiveTextColor;
background: @leftActiveBackColor;
}
}
&ed > a {
color: @leftActiveTextColor;
}
}
}
}
}

View File

@ -0,0 +1,91 @@
> .layui-layout-admin {
> .layui-side {
background-color: @leftBackColor;
.layui-logo {
color: #FFF;
box-shadow: none;
font-weight: bold;
}
.layui-side-scroll {
display: flex !important;
box-sizing: border-box;
.layui-side-icon {
display: none;
}
.layui-side-tree {
flex: 1;
.layui-nav-item {
a {
color: @leftNormalTextColor;
border-bottom: none !important;
&:hover {
color: @leftActiveTextColor;
}
}
.layui-this, &.layui-this {
> a {
color: @leftActiveTextColor;
background: @leftActiveBackColor;
}
}
&ed > a {
color: @leftActiveTextColor;
}
}
}
}
}
> .layui-body {
> .think-page-body > .layui-card > .layui-card-header {
box-sizing: border-box;
}
}
> .layui-header {
background: @headNormalBackColor;
.layui-nav-item {
&.layui-this > a {
color: @headActionTextColor;
background: @headActiveBackColor;
}
> a {
color: @headNormalTextColor;
&:hover {
color: @headActionTextColor;
}
}
}
}
}
.help-label b {
color: @mainActiveBack
}
.layui-btn-group {
border-color: @mainActiveBack;
background-color: @mainActiveBack;
.layui-btn {
&:hover:not(.layui-btn-active) {
color: @mainActiveBack;
}
&.layui-btn-active {
background-color: @mainActiveBack
}
}
}

View File

@ -1,7 +1,7 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-black {
.layui-layout-theme-black-1 {
@mainActiveBack: #393D49 !important;
@mainNormalBack: rgba(0, 0, 0, 0.1) !important;
@ -21,5 +21,5 @@
@leftNormalBackColor: @mainNormalBack;
@leftActiveBackColor: #098 !important;
@import (multiple)"_layout_.less";
@import (multiple)"_layout_1.less";
}

View File

@ -0,0 +1,25 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-blue-1 {
@mainActiveBack: #0E54C4 !important;
@mainNormalBack: rgba(0, 0, 0, 0.1) !important;
@mainActionText: #FFFFFF !important;
@mainNormalText: #EEEEEE !important;
@headNormalBackColor: @mainActiveBack;
@headActiveBackColor: @mainNormalBack;
@headNormalTextColor: @mainNormalText;
@headActionTextColor: @mainActionText;
@leftNormalTextColor: @mainNormalText;
@leftActiveTextColor: @mainActionText;
@leftBackColor: #344058 !important;
@leftNormalBackColor: @mainNormalBack;
@leftActiveBackColor: @mainActiveBack;
@import (multiple)"_layout_1.less";
}

View File

@ -1,8 +1,8 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-blue {
@mainActiveBack: #1890FF !important;
.layui-layout-theme-green-1 {
@mainActiveBack: #098 !important;
@mainNormalBack: rgba(0, 0, 0, 0.1) !important;
@mainActionText: #FFFFFF !important;
@ -21,5 +21,5 @@
@leftNormalBackColor: @mainNormalBack;
@leftActiveBackColor: @mainActiveBack;
@import (multiple)"_layout_.less";
@import (multiple)"_layout_1.less";
}

View File

@ -1,7 +1,7 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-red {
.layui-layout-theme-red-1 {
@mainActiveBack: #AA3130 !important;
@mainNormalBack: rgba(0, 0, 0, 0.1) !important;
@ -17,9 +17,9 @@
@leftNormalTextColor: @mainNormalText;
@leftActiveTextColor: @mainActionText;
@leftBackColor: #20222A !important;
@leftBackColor: #344058 !important;
@leftNormalBackColor: @mainNormalBack;
@leftActiveBackColor: @mainActiveBack;
@import (multiple)"_layout_.less";
@import (multiple)"_layout_1.less";
}

View File

@ -0,0 +1,203 @@
> .layui-layout-admin {
> .layui-side {
width: 260px;
display: block !important;
background-color: @mainColor;
.layui-logo {
color: #fff;
box-shadow: none;
font-weight: bold;
}
.layui-side-scroll {
display: flex !important;
box-sizing: border-box;
.layui-nav-child {
background: none !important;
}
.layui-side-icon {
width: 100px;
display: block;
background: @mainColor;
a {
height: 60px;
display: block;
font-size: 14px;
text-align: center;
line-height: 60px;
white-space: nowrap;
&:hover {
background-color: rgba(0, 0, 0, 0.1);;
}
.layui-icon, span {
color: #fff;
overflow: hidden;
max-width: 4em;
margin-right: 5px;
text-overflow: ellipsis;
vertical-align: middle;
display: inline-block !important;
}
}
> .layui-this {
background: #fff;
a {
&:hover {
background-color: #fff;
}
.layui-icon, span {
color: @textColor;
}
}
}
}
.layui-side-tree {
flex: 1;
background-color: #fff;
> .layui-nav-tree {
width: unset !important;
}
.layui-nav-item {
background: none !important;
border-bottom-color: #fff;
a {
color: #333 !important;
background: none !important;
border-bottom: none !important;
&:hover {
color: @textColor;
}
}
.layui-this, &.layui-this {
> a {
color: @textColor;
background: none !important;
font-weight: bold !important;
&:hover {
background: none !important;
}
}
}
&ed > a {
color: #999 !important;
}
}
}
}
}
> .layui-body {
left: 260px;
> .think-page-body > .layui-card > .layui-card-header {
left: 261px;
box-sizing: border-box;
border-bottom: unset;
}
}
> .layui-header {
left: 260px;
background-color: @mainColor;
.layui-layout-left {
.layui-nav-item {
display: none !important;
}
}
.layui-nav-item {
&.layui-this > a {
color: #fff !important;
font-weight: bold;
}
> a {
color: #eee !important;
&:hover {
color: #fff !important;
background: none !important;
}
}
}
}
}
> .layui-layout-left-hide,
> .layui-layout-left-mini {
> .layui-side {
width: 260px;
z-index: 11;
.layui-logo {
.headimg {
margin-right: 10px !important;
}
.headtxt {
display: inline-block !important;
}
}
.layui-side-target {
left: @iconWidth;
margin-left: -12px;
}
.layui-side-scroll .layui-side-icon {
width: @iconWidth;
display: block;
background: #098;
}
}
> .layui-body {
z-index: 11;
left: @iconWidth;
> .think-page-body > .layui-card > .layui-card-header {
left: @iconWidth;
}
}
> .layui-header {
left: 260px !important;
}
}
.help-label b {
color: @textColor;
}
.layui-btn-group {
border-color: @mainColor;
background-color: @mainColor;
.layui-btn {
&:hover:not(.layui-btn-active) {
color: @mainColor;
}
&.layui-btn-active {
background-color: @mainColor
}
}
}

View File

@ -0,0 +1,11 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-black-2 {
@iconWidth: 100px !important;
@mainColor: #393D49 !important;
@textColor: #009988 !important;
@import (multiple)"_layout_2.less";
}

View File

@ -0,0 +1,11 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-blue-2 {
@iconWidth: 100px !important;
@mainColor: #0E54C4 !important;
@textColor: #0E54C4 !important;
@import (multiple)"_layout_2.less";
}

View File

@ -0,0 +1,11 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-green-2 {
@iconWidth: 100px !important;
@mainColor: #098 !important;
@textColor: #098 !important;
@import (multiple)"_layout_2.less";
}

View File

@ -0,0 +1,11 @@
@charset "UTF-8";
@import "_config.less";
.layui-layout-theme-red-2 {
@iconWidth: 100px !important;
@mainColor: #AA3130 !important;
@textColor: #AA3130 !important;
@import (multiple)"_layout_2.less";
}

View File

@ -2,110 +2,111 @@
@import "_config.less";
.layui-layout-theme-white {
> .layui-layout-admin {
> .layui-side {
background-color: #fff !important;
> .layui-header {
background: none !important;
.layui-nav-item {
&.layui-this > a {
color: #098 !important;
.layui-logo {
color: #333;
box-shadow: none;
font-weight: bold;
background: none !important;
}
> a {
color: #333 !important;
.layui-side-scroll {
display: flex !important;
box-sizing: border-box;
border-right: @TopHeaderBottomLine;
&:hover {
color: #098 !important;
.layui-nav-child {
background: none !important;
}
}
}
}
> .layui-body {
> .think-page-body > .layui-card > .layui-card-header {
box-sizing: border-box;
box-shadow: none !important;
border-bottom: @TopHeaderBottomLine;
}
}
.layui-side {
background-color: #fff !important;
.layui-logo {
color: #333;
box-shadow: none;
font-weight: bold;
}
.layui-side-scroll {
display: flex !important;
box-sizing: border-box;
border-right: @TopHeaderBottomLine;
.layui-nav-child {
background: none !important;
}
.layui-side-icon {
width: 60px;
display: none;
background: #fff;
a {
height: 60px;
display: block;
text-align: center;
line-height: 60px;
}
.layui-icon {
color: #999;
}
> .layui-this {
.layui-side-icon {
width: 60px;
display: none;
background: #fff;
a {
height: 60px;
display: block;
text-align: center;
line-height: 60px;
}
.layui-icon {
color: #098 !important;
color: #999;
}
> .layui-this {
background: #fff;
.layui-icon {
color: #098 !important;
}
}
}
.layui-side-tree {
flex: 1;
.layui-nav-item {
background: none !important;
border-bottom-color: #fff;
a {
color: #333 !important;
background: none !important;
border-bottom: none !important;
&:hover {
color: #098 !important;
}
}
.layui-this, &.layui-this {
> a {
color: #098 !important;
background: none !important;
font-weight: bold !important;
&:hover {
background: none !important;
}
}
}
&ed > a {
color: #999 !important;
}
}
}
}
}
.layui-side-tree {
flex: 1;
> .layui-body {
> .think-page-body > .layui-card > .layui-card-header {
box-sizing: border-box;
box-shadow: none !important;
border-bottom: @TopHeaderBottomLine;
}
}
.layui-nav-item {
> .layui-header {
background: none !important;
.layui-nav-item {
&.layui-this > a {
color: #098 !important;
font-weight: bold;
background: none !important;
border-bottom-color: #fff;
}
a {
color: #333 !important;
> a {
color: #333 !important;
&:hover {
color: #098 !important;
background: none !important;
border-bottom: none !important;
&:hover {
color: #098 !important;
}
}
.layui-this, &.layui-this {
> a {
color: #098 !important;
background: none !important;
font-weight: bold !important;
&:hover {
background: none !important;
}
}
}
&ed > a {
color: #999 !important;
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,9 +4,9 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------
@ -66,7 +66,15 @@ body {
@import '_custom.less';
@import '_display.less';
@import '_layout.less';
@import '_layout_red.less';
@import '_layout_blue.less';
@import '_layout_white.less';
@import '_layout_black.less';
@import '_layout_1_red.less';
@import '_layout_1_blue.less';
@import '_layout_1_black.less';
@import '_layout_1_green.less';
@import '_layout_2_red.less';
@import '_layout_2_blue.less';
@import '_layout_2_black.less';
@import '_layout_2_green.less';
@import '_layout_white.less';

View File

@ -4,9 +4,9 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------

View File

@ -3,9 +3,9 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: http://demo.thinkadmin.top
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------
// | 开源协议 ( https://mit-license.org )
// +----------------------------------------------------------------------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -111,6 +111,7 @@ ThinkAdmin 为 MIT 协议开源项目,安装使用或二次开发不受约束
* 修复文件上传入口的后缀验证,读取真实文件后缀与配置对比,阻止不合法的文件上传并存储到本地服务器。
* 修改`JsonRpc`接口异常处理机制,当服务端绑定`Exception`时,客户端将能收到`error`消息及异常数据。
* 修改`location.hash`访问机制,禁止直接访问外部`URL`资源链接,防止外部`XSS`攻击读取本地缓存数据。
* 增加后台主题样式配置,支持全局默认+用户个性配置,需要更新`ThinkLibrary`,`static`,`admin`组件及模块。
## 项目版本

2
think
View File

@ -4,7 +4,7 @@
// +----------------------------------------------------------------------
// | ThinkAdmin
// +----------------------------------------------------------------------
// | 版权所有 2014~2021 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// | 版权所有 2014~2022 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
// +----------------------------------------------------------------------
// | 官方网站: https://thinkadmin.top
// +----------------------------------------------------------------------