Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
963febc15c | ||
|
|
f78edd2fd5 | ||
|
|
83aa399f95 | ||
|
|
3096aa8985 | ||
|
|
c7f7ca9af7 | ||
|
|
352484c69e | ||
|
|
dfe15f7e88 | ||
|
|
4d7365921e | ||
|
|
d613f3c26f |
@@ -39,7 +39,13 @@
|
||||
|
||||
> EasyAdmin8 使用 Composer 来管理项目依赖。因此,在使用 EasyAdmin8 之前,请确保你的机器已经安装了 Composer。
|
||||
|
||||
### 通过git下载安装包,composer安装依赖包
|
||||
### 通过一键安装命令
|
||||
|
||||
```
|
||||
if [ -f /usr/bin/curl ];then curl -sSO https://easyadmin8.top/auto-install-EasyAdmin8.sh;else wget -O auto-install-EasyAdmin8.sh https://easyadmin8.top/auto-install-EasyAdmin8.sh;fi;bash auto-install-EasyAdmin8.sh
|
||||
```
|
||||
|
||||
### 通过`git`下载安装包,`composer`安装依赖包
|
||||
|
||||
```
|
||||
1.下载安装包
|
||||
|
||||
@@ -22,6 +22,7 @@ use think\response\Json;
|
||||
*/
|
||||
class Log extends AdminController
|
||||
{
|
||||
protected array $ignoreLog = ['record'];
|
||||
|
||||
public function __construct(App $app)
|
||||
{
|
||||
@@ -98,7 +99,7 @@ class Log extends AdminController
|
||||
/**
|
||||
* @NodeAnnotation(title="框架日志")
|
||||
*/
|
||||
public function record(): string
|
||||
public function record(): Json|string
|
||||
{
|
||||
return (new \Wolfcode\PhpLogviewer\thinkphp\LogViewer())->fetch();
|
||||
}
|
||||
|
||||
@@ -7,9 +7,11 @@ use app\admin\service\annotation\NodeAnnotation;
|
||||
use app\admin\service\SystemLogService;
|
||||
use app\common\traits\JumpTrait;
|
||||
use app\Request;
|
||||
use ReflectionClass;
|
||||
use Closure;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Annotations\DocParser;
|
||||
use ReflectionException;
|
||||
|
||||
class SystemLog
|
||||
{
|
||||
@@ -26,9 +28,13 @@ class SystemLog
|
||||
'mobile',
|
||||
];
|
||||
|
||||
/**
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
$params = $request->param();
|
||||
$response = $next($request);
|
||||
$params = $request->param();
|
||||
if (isset($params['s'])) unset($params['s']);
|
||||
foreach ($params as $key => $val) {
|
||||
in_array($key, $this->sensitiveParams) && $params[$key] = "***********";
|
||||
@@ -39,9 +45,18 @@ class SystemLog
|
||||
if (env('APP_DEBUG')) {
|
||||
trace(['url' => $url, 'method' => $method, 'params' => $params,], 'requestDebugInfo');
|
||||
}
|
||||
$response = $next($request);
|
||||
if ($request->isAjax()) {
|
||||
if (in_array($method, ['post', 'put', 'delete'])) {
|
||||
|
||||
$controller = $request->controller();
|
||||
if (str_contains($controller, '.')) $controller = str_replace('.', '\\', $controller);
|
||||
$action = $request->action();
|
||||
$controllerClass = 'app\\admin\\controller\\' . $controller;
|
||||
$classObj = new ReflectionClass($controllerClass);
|
||||
$properties = $classObj->getDefaultProperties();
|
||||
$ignoreLog = $properties['ignoreLog'] ?? [];
|
||||
if (in_array($action, $ignoreLog)) return $response;
|
||||
|
||||
$title = '';
|
||||
try {
|
||||
$pathInfo = $request->pathinfo();
|
||||
|
||||
@@ -21,8 +21,9 @@
|
||||
IS_SUPER_ADMIN: "{$isSuperAdmin|default='false'}",
|
||||
VERSION: "{$version|default='1.0.0'}",
|
||||
CSRF_TOKEN: "{:token()}",
|
||||
ADMIN_UPLOAD_URL: "{$adminUploadUrl|DEFAULT=''}",
|
||||
EDITOR_TYPE: "{$adminEditor|default='ueditor'}",
|
||||
ADMIN_UPLOAD_URL: "{$adminUploadUrl|default=''}",
|
||||
IFRAME_OPEN_TOP: "{$iframeOpenTop|default=0}",
|
||||
EDITOR_TYPE: "{$adminEditor|default='wangEditor'}",
|
||||
};
|
||||
</script>
|
||||
<script src="/static/plugs/layui-v2.x/layui.js" charset="utf-8"></script>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<form id="app-form" class="layui-form layuimini-form layui-form-pane">
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xl5 layui-col-lg5 layui-col-md5 layui-col-sm5 layui-col-xs5">
|
||||
<div class="layui-col-xl5 layui-col-lg5 layui-col-md12 layui-col-sm12 layui-col-xs12">
|
||||
<!-- 可以使用该方式 推荐写法-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品分类</label>
|
||||
@@ -89,7 +89,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xl7 layui-col-lg7 layui-col-md7 layui-col-sm7 layui-col-xs7">
|
||||
<div class="layui-col-xl7 layui-col-lg7 layui-col-md12 layui-col-sm12 layui-col-xs12">
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">商品描述</label>
|
||||
<div class="layui-input-block">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<form id="app-form" class="layui-form layuimini-form layui-form-pane">
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-xl5 layui-col-lg5 layui-col-md5 layui-col-sm5 layui-col-xs5">
|
||||
<div class="layui-col-xl5 layui-col-lg5 layui-col-md12 layui-col-sm12 layui-col-xs12">
|
||||
<!-- 可以使用该方式 推荐写法-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品分类</label>
|
||||
@@ -89,7 +89,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xl7 layui-col-lg7 layui-col-md7 layui-col-sm7 layui-col-xs7">
|
||||
<div class="layui-col-xl7 layui-col-lg7 layui-col-md12 layui-col-sm12 layui-col-xs12">
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">商品描述</label>
|
||||
<div class="layui-input-block">
|
||||
|
||||
@@ -54,6 +54,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">新标签页窗口</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="iframe_open_top" value="0" title="不允许" {if 1!=sysConfig('site','iframe_open_top')}checked{/if}>
|
||||
<input type="radio" name="iframe_open_top" value="1" title="允许" {if 1==sysConfig('site','iframe_open_top')}checked{/if}>
|
||||
<br>
|
||||
<tip>是否允许弹框在新标签页打开。</tip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">默认编辑器</label>
|
||||
|
||||
@@ -240,6 +240,7 @@ class AdminController extends BaseController
|
||||
'version' => env('APP_DEBUG') ? time() : ConfigService::getVersion(),
|
||||
'adminUploadUrl' => url('ajax/upload', [], false),
|
||||
'adminEditor' => sysConfig('site', 'editor_type') ?: 'wangEditor',
|
||||
'iframeOpenTop' => sysConfig('site', 'iframe_open_top') ?: 0,
|
||||
];
|
||||
View::assign($data);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"qiniu/php-sdk": "v7.11.0",
|
||||
"ext-mysqli": "*",
|
||||
"ext-pdo": "*",
|
||||
"wolf-leo/phplogviewer": "^0.05.0"
|
||||
"wolf-leo/phplogviewer": "^0.10.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/var-dumper": ">=4.2",
|
||||
|
||||
@@ -253,36 +253,10 @@ table样式
|
||||
|
||||
.layuimini-container .layui-table-tool {
|
||||
background-color: #ffffff;
|
||||
border-bottom: none !important;
|
||||
padding: 10px;
|
||||
padding-bottom: 15px !important;
|
||||
}
|
||||
|
||||
.dark .layuimini-container .layui-table-tool {
|
||||
background-color: var(--lay-color-bg-1);
|
||||
border-bottom: none !important;
|
||||
padding-bottom: 15px !important;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-view {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-box {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
|
||||
.dark .layuimini-container .layui-table-box {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #363636;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-page, .layui-table-total {
|
||||
border-width: 0px 0 0;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-box .layui-table-header th {
|
||||
font-weight: bold !important;
|
||||
color: #565656 !important;
|
||||
@@ -329,10 +303,6 @@ table样式
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
按钮
|
||||
*/
|
||||
.layuimini-container .layui-btn-success {
|
||||
color: #fff;
|
||||
background-color: #4bb368;
|
||||
@@ -360,14 +330,6 @@ table样式
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool-self {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.layuimini-container .layui-table-tool {
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
/**
|
||||
弹出层样式
|
||||
*/
|
||||
|
||||
@@ -19,9 +19,11 @@ define(["jquery", "tableSelect"], function ($, tableSelect) {
|
||||
table_render_id: 'currentTableRenderId',
|
||||
upload_url: 'ajax/upload',
|
||||
upload_exts: 'doc|gif|ico|icon|jpg|mp3|mp4|p12|pem|png|rar',
|
||||
csrf_token: window.CONFIG.CSRF_TOKEN
|
||||
csrf_token: window.CONFIG.CSRF_TOKEN,
|
||||
wait_submit: false
|
||||
};
|
||||
|
||||
|
||||
var admin = {
|
||||
config: {
|
||||
shade: [0.02, '#000'],
|
||||
@@ -112,6 +114,7 @@ define(["jquery", "tableSelect"], function ($, tableSelect) {
|
||||
// @todo 刷新csrf-token
|
||||
let token = data.responseJSON ? data.responseJSON.__token__ : ''
|
||||
init.csrf_token = token
|
||||
init.wait_submit = false
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -974,6 +977,14 @@ define(["jquery", "tableSelect"], function ($, tableSelect) {
|
||||
before: function () {
|
||||
},
|
||||
success: function (layero, index) {
|
||||
if (window.CONFIG.IFRAME_OPEN_TOP == '1') {
|
||||
let _winTopBtn = `
|
||||
<span class="_winTopBtn layui-btn layui-btn-primary layui-btn-xs"
|
||||
style="position: absolute;top: 14px;right: 120px;color: #fff;border-color: #fff;" onclick="window.open(location.href)">
|
||||
新标签页打开
|
||||
</span>`
|
||||
$('.layui-layer-iframe').append(_winTopBtn)
|
||||
}
|
||||
},
|
||||
end: function () {
|
||||
index = null
|
||||
@@ -1365,6 +1376,10 @@ define(["jquery", "tableSelect"], function ($, tableSelect) {
|
||||
url = admin.url(url);
|
||||
}
|
||||
form.on('submit(' + filter + ')', function (data) {
|
||||
if (init.wait_submit) {
|
||||
layer.msg('你点击太快了', {icon: 16, shade: 0.3, shadeClose: false, time: 1000})
|
||||
return false
|
||||
}
|
||||
var dataField = data.field;
|
||||
var editorList = document.querySelectorAll(".editor");
|
||||
// 富文本数据处理
|
||||
@@ -1392,6 +1407,7 @@ define(["jquery", "tableSelect"], function ($, tableSelect) {
|
||||
if (typeof preposeCallback === 'function') {
|
||||
dataField = preposeCallback(dataField);
|
||||
}
|
||||
init.wait_submit = true
|
||||
admin.api.form(url, dataField, ok, no, ex, refresh);
|
||||
return false;
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user