增加日志功能
This commit is contained in:
@@ -7,7 +7,7 @@ use app\admin\controller\Base;
|
||||
use think\facade\Db;
|
||||
use think\facade\View;
|
||||
use think\facade\Request;
|
||||
use app\common\service\LogService;
|
||||
use app\admin\controller\Log;
|
||||
|
||||
class Article extends Base
|
||||
{
|
||||
@@ -131,8 +131,10 @@ class Article extends Base
|
||||
|
||||
$insert = Db::table('yz_article')->insert($data);
|
||||
if (empty($insert)) {
|
||||
Log::record('添加文章', 0, '添加文章失败', '文章管理');
|
||||
return json(['code' => 1, 'msg' => '添加失败', 'data' => []]);
|
||||
}
|
||||
Log::record('添加文章', 1, '', '文章管理');
|
||||
return json(['code' => 0, 'msg' => '添加成功', 'data' => []]);
|
||||
} else {
|
||||
$lists = Db::table('yz_article')
|
||||
@@ -166,7 +168,12 @@ class Article extends Base
|
||||
];
|
||||
|
||||
$update = Db::table('yz_article')->where('id', $id)->update($data);
|
||||
return json(['code' => $update === false ? 1 : 0, 'msg' => $update === false ? '更新失败' : '更新成功', 'data' => []]);
|
||||
if ($update === false) {
|
||||
Log::record('编辑文章', 0, '编辑文章失败', '文章管理');
|
||||
return json(['code' => 1, 'msg' => '更新失败', 'data' => []]);
|
||||
}
|
||||
Log::record('编辑文章', 1, '', '文章管理');
|
||||
return json(['code' => 0, 'msg' => '更新成功', 'data' => []]);
|
||||
} else {
|
||||
$id = input('get.id');
|
||||
$info = Db::table('yz_article')->where('id', $id)->find();
|
||||
@@ -207,8 +214,10 @@ class Article extends Base
|
||||
];
|
||||
$delete = Db::table('yz_article')->where('id', $id)->update($data);
|
||||
if ($delete === false) {
|
||||
Log::record('删除文章', 0, '删除文章失败', '文章管理');
|
||||
return json(['code' => 1, 'msg' => '删除失败', 'data' => []]);
|
||||
}
|
||||
Log::record('删除文章', 1, '', '文章管理');
|
||||
return json(['code' => 0, 'msg' => '删除成功', 'data' => []]);
|
||||
}
|
||||
|
||||
@@ -304,8 +313,10 @@ class Article extends Base
|
||||
|
||||
$insert = Db::table('yz_article_category')->insert($data);
|
||||
if (empty($insert)) {
|
||||
Log::record('添加文章分类', 0, '添加文章分类失败', '文章分类');
|
||||
return json(['code' => 1, 'msg' => '添加失败', 'data' => []]);
|
||||
}
|
||||
Log::record('添加文章分类', 1, '', '文章分类');
|
||||
return json(['code' => 0, 'msg' => '添加成功', 'data' => []]);
|
||||
} else {
|
||||
// 获取所有可选的父级分类
|
||||
@@ -346,8 +357,10 @@ class Article extends Base
|
||||
->update($data);
|
||||
|
||||
if ($update === false) {
|
||||
Log::record('编辑文章分类', 0, '更新文章分类失败', '文章分类');
|
||||
return json(['code' => 1, 'msg' => '更新失败', 'data' => []]);
|
||||
}
|
||||
Log::record('编辑文章分类', 1, '', '文章分类');
|
||||
return json(['code' => 0, 'msg' => '更新成功', 'data' => []]);
|
||||
} else {
|
||||
$id = input('get.id');
|
||||
@@ -400,6 +413,7 @@ class Article extends Base
|
||||
->find();
|
||||
|
||||
if ($hasChildren) {
|
||||
Log::record('删除文章分类', 0, '该分类下有子分类,无法删除', '文章分类');
|
||||
return json(['code' => 1, 'msg' => '该分类下有子分类,无法删除', 'data' => []]);
|
||||
}
|
||||
|
||||
@@ -408,8 +422,10 @@ class Article extends Base
|
||||
->update(['delete_time' => time()]);
|
||||
|
||||
if ($delete === false) {
|
||||
Log::record('删除文章分类', 0, '删除文章分类失败', '文章分类');
|
||||
return json(['code' => 1, 'msg' => '删除失败', 'data' => []]);
|
||||
}
|
||||
Log::record('删除文章分类', 1, '', '文章分类');
|
||||
return json(['code' => 0, 'msg' => '删除成功', 'data' => []]);
|
||||
}
|
||||
|
||||
|
||||
+53
-101
@@ -5,6 +5,7 @@ use app\admin\controller\Base;
|
||||
use think\facade\Db;
|
||||
use think\facade\Request;
|
||||
use think\facade\View;
|
||||
use think\facade\Cookie;
|
||||
|
||||
class Log extends Base
|
||||
{
|
||||
@@ -62,43 +63,38 @@ class Log extends Base
|
||||
*/
|
||||
public function operation()
|
||||
{
|
||||
if (Request::isPost()) {
|
||||
$page = input('post.page', 1);
|
||||
$limit = input('post.limit', 10);
|
||||
$username = input('post.username');
|
||||
$module = input('post.module');
|
||||
$operation = input('post.operation');
|
||||
$status = input('post.status');
|
||||
$startTime = input('post.start_time');
|
||||
$endTime = input('post.end_time');
|
||||
$params = input();
|
||||
$page = $params['page'] ?? 1;
|
||||
$limit = $params['limit'] ?? 10;
|
||||
|
||||
$query = Db::name('yz_logs_operation');
|
||||
|
||||
// 构建搜索条件
|
||||
$searchFields = [
|
||||
'username' => ['field' => 'username', 'type' => 'like'],
|
||||
'module' => ['field' => 'module', 'type' => 'like'],
|
||||
'operation' => ['field' => 'operation', 'type' => 'like'],
|
||||
'status' => ['field' => 'status', 'type' => '='],
|
||||
'start_time' => ['field' => 'operation_time', 'type' => '>='],
|
||||
'end_time' => ['field' => 'operation_time', 'type' => '<=']
|
||||
];
|
||||
|
||||
foreach ($searchFields as $param => $config) {
|
||||
if (!empty($params[$param])) {
|
||||
$value = $params[$param];
|
||||
if ($config['type'] === 'like') {
|
||||
$value = "%{$value}%";
|
||||
}
|
||||
$query = $query->where($config['field'], $config['type'], $value);
|
||||
}
|
||||
}
|
||||
|
||||
$query = Db::name('yz_logs_operation');
|
||||
|
||||
// 搜索条件
|
||||
if ($username) {
|
||||
$query = $query->where('username', 'like', "%{$username}%");
|
||||
}
|
||||
if ($module) {
|
||||
$query = $query->where('module', 'like', "%{$module}%");
|
||||
}
|
||||
if ($operation) {
|
||||
$query = $query->where('operation', 'like', "%{$operation}%");
|
||||
}
|
||||
if ($status !== '') {
|
||||
$query = $query->where('status', $status);
|
||||
}
|
||||
if ($startTime) {
|
||||
$query = $query->where('operation_time', '>=', $startTime);
|
||||
}
|
||||
if ($endTime) {
|
||||
$query = $query->where('operation_time', '<=', $endTime);
|
||||
}
|
||||
|
||||
$count = $query->count();
|
||||
$list = $query->order('id desc')
|
||||
->page($page, $limit)
|
||||
->select();
|
||||
$count = $query->count();
|
||||
$list = $query->order('id desc')
|
||||
->page($page, $limit)
|
||||
->select();
|
||||
|
||||
if (Request::isAjax()) {
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => '获取成功',
|
||||
@@ -112,12 +108,16 @@ class Log extends Base
|
||||
|
||||
/**
|
||||
* 记录操作日志
|
||||
* @param string $operation 操作名称
|
||||
* @param int $status 状态 1成功 0失败
|
||||
* @param string $error_message 错误信息
|
||||
* @param string $module 模块名称
|
||||
*/
|
||||
protected function recordOperation($operation, $status = 1, $error_message = '')
|
||||
public static function record($operation, $status = 1, $error_message = '', $module = '')
|
||||
{
|
||||
$data = [
|
||||
'username' => session('admin_username'),
|
||||
'module' => '日志管理',
|
||||
'username' => Cookie::get('admin_name') ?: '未知用户',
|
||||
'module' => $module ?: '系统管理',
|
||||
'operation' => $operation,
|
||||
'request_method' => Request::method(),
|
||||
'request_url' => Request::url(true),
|
||||
@@ -133,76 +133,28 @@ class Log extends Base
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除登录日志
|
||||
* 获取操作日志详情
|
||||
*/
|
||||
public function deleteLogin()
|
||||
public function getOperationDetail()
|
||||
{
|
||||
$id = input('post.id');
|
||||
try {
|
||||
if (Db::name('yz_logs_login')->delete($id)) {
|
||||
$this->recordOperation('删除登录日志');
|
||||
return json(['code' => 0, 'msg' => '删除成功']);
|
||||
}
|
||||
$this->recordOperation('删除登录日志', 0, '删除失败');
|
||||
return json(['code' => 1, 'msg' => '删除失败']);
|
||||
} catch (\Exception $e) {
|
||||
$this->recordOperation('删除登录日志', 0, $e->getMessage());
|
||||
return json(['code' => 1, 'msg' => '删除失败:' . $e->getMessage()]);
|
||||
$id = input('id/d', 0);
|
||||
if (!$id) {
|
||||
return json(['code' => 1, 'msg' => '参数错误']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除操作日志
|
||||
*/
|
||||
public function deleteOperation()
|
||||
{
|
||||
$id = input('post.id');
|
||||
try {
|
||||
if (Db::name('yz_logs_operation')->delete($id)) {
|
||||
$this->recordOperation('删除操作日志');
|
||||
return json(['code' => 0, 'msg' => '删除成功']);
|
||||
}
|
||||
$this->recordOperation('删除操作日志', 0, '删除失败');
|
||||
return json(['code' => 1, 'msg' => '删除失败']);
|
||||
} catch (\Exception $e) {
|
||||
$this->recordOperation('删除操作日志', 0, $e->getMessage());
|
||||
return json(['code' => 1, 'msg' => '删除失败:' . $e->getMessage()]);
|
||||
$info = Db::name('yz_logs_operation')
|
||||
->where('id', $id)
|
||||
->find();
|
||||
|
||||
if (!$info) {
|
||||
return json(['code' => 1, 'msg' => '日志不存在']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空登录日志
|
||||
*/
|
||||
public function clearLogin()
|
||||
{
|
||||
try {
|
||||
if (Db::name('yz_logs_login')->where('1=1')->delete()) {
|
||||
$this->recordOperation('清空登录日志');
|
||||
return json(['code' => 0, 'msg' => '清空成功']);
|
||||
}
|
||||
$this->recordOperation('清空登录日志', 0, '清空失败');
|
||||
return json(['code' => 1, 'msg' => '清空失败']);
|
||||
} catch (\Exception $e) {
|
||||
$this->recordOperation('清空登录日志', 0, $e->getMessage());
|
||||
return json(['code' => 1, 'msg' => '清空失败:' . $e->getMessage()]);
|
||||
// 格式化请求参数
|
||||
if (!empty($info['request_params'])) {
|
||||
$info['request_params'] = json_decode($info['request_params'], true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空操作日志
|
||||
*/
|
||||
public function clearOperation()
|
||||
{
|
||||
try {
|
||||
if (Db::name('yz_logs_operation')->where('1=1')->delete()) {
|
||||
$this->recordOperation('清空操作日志');
|
||||
return json(['code' => 0, 'msg' => '清空成功']);
|
||||
}
|
||||
$this->recordOperation('清空操作日志', 0, '清空失败');
|
||||
return json(['code' => 1, 'msg' => '清空失败']);
|
||||
} catch (\Exception $e) {
|
||||
$this->recordOperation('清空操作日志', 0, $e->getMessage());
|
||||
return json(['code' => 1, 'msg' => '清空失败:' . $e->getMessage()]);
|
||||
}
|
||||
return json(['code' => 0, 'msg' => '获取成功', 'data' => $info]);
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ use app\admin\controller\Base;
|
||||
use think\facade\Db;
|
||||
use think\facade\View;
|
||||
use think\facade\Request;
|
||||
use app\admin\controller\Log;
|
||||
|
||||
class Resources extends Base
|
||||
{
|
||||
@@ -129,8 +130,10 @@ class Resources extends Base
|
||||
|
||||
$insert = Db::table('yz_resources')->insert($data);
|
||||
if (empty($insert)) {
|
||||
Log::record('添加资源', 0, '添加资源失败', '资源管理');
|
||||
return json(['code' => 1, 'msg' => '添加失败', 'data' => []]);
|
||||
}
|
||||
Log::record('添加资源', 1, '', '资源管理');
|
||||
return json(['code' => 0, 'msg' => '添加成功', 'data' => []]);
|
||||
} else {
|
||||
$lists = Db::table('yz_resources')
|
||||
@@ -156,8 +159,10 @@ class Resources extends Base
|
||||
];
|
||||
$delete = Db::table('yz_resources')->where('id', $id)->update($data);
|
||||
if ($delete === false) {
|
||||
Log::record('删除资源', 0, '删除资源失败', '资源管理');
|
||||
return json(['code' => 1, 'msg' => '删除失败', 'data' => []]);
|
||||
}
|
||||
Log::record('删除资源', 1, '', '资源管理');
|
||||
return json(['code' => 0, 'msg' => '删除成功', 'data' => []]);
|
||||
}
|
||||
|
||||
@@ -253,8 +258,10 @@ class Resources extends Base
|
||||
|
||||
$insert = Db::table('yz_resources_category')->insert($data);
|
||||
if (empty($insert)) {
|
||||
Log::record('添加资源分类', 0, '添加资源分类失败', '资源分类');
|
||||
return json(['code' => 1, 'msg' => '添加失败', 'data' => []]);
|
||||
}
|
||||
Log::record('添加资源分类', 1, '', '资源分类');
|
||||
return json(['code' => 0, 'msg' => '添加成功', 'data' => []]);
|
||||
} else {
|
||||
// 获取所有可选的父级分类
|
||||
@@ -295,8 +302,10 @@ class Resources extends Base
|
||||
->update($data);
|
||||
|
||||
if ($update === false) {
|
||||
Log::record('编辑资源分类', 0, '更新资源分类失败', '资源分类');
|
||||
return json(['code' => 1, 'msg' => '更新失败', 'data' => []]);
|
||||
}
|
||||
Log::record('编辑资源分类', 1, '', '资源分类');
|
||||
return json(['code' => 0, 'msg' => '更新成功', 'data' => []]);
|
||||
} else {
|
||||
$id = input('get.id');
|
||||
@@ -349,6 +358,7 @@ class Resources extends Base
|
||||
->find();
|
||||
|
||||
if ($hasChildren) {
|
||||
Log::record('删除资源分类', 0, '该分类下有子分类,无法删除', '资源分类');
|
||||
return json(['code' => 1, 'msg' => '该分类下有子分类,无法删除', 'data' => []]);
|
||||
}
|
||||
|
||||
@@ -357,8 +367,10 @@ class Resources extends Base
|
||||
->update(['delete_time' => time()]);
|
||||
|
||||
if ($delete === false) {
|
||||
Log::record('删除资源分类', 0, '删除资源分类失败', '资源分类');
|
||||
return json(['code' => 1, 'msg' => '删除失败', 'data' => []]);
|
||||
}
|
||||
Log::record('删除资源分类', 1, '', '资源分类');
|
||||
return json(['code' => 0, 'msg' => '删除成功', 'data' => []]);
|
||||
}
|
||||
|
||||
@@ -369,6 +381,7 @@ class Resources extends Base
|
||||
{
|
||||
$id = input('id/d', 0);
|
||||
if (!$id) {
|
||||
Log::record('获取资源详情', 0, '参数错误', '资源管理');
|
||||
return json(['code' => 1, 'msg' => '参数错误']);
|
||||
}
|
||||
|
||||
@@ -378,6 +391,7 @@ class Resources extends Base
|
||||
->find();
|
||||
|
||||
if (!$resource) {
|
||||
Log::record('获取资源详情', 0, '资源不存在', '资源管理');
|
||||
return json(['code' => 1, 'msg' => '资源不存在']);
|
||||
}
|
||||
|
||||
@@ -391,9 +405,7 @@ class Resources extends Base
|
||||
$resource['cate_name'] = $cateInfo['name'];
|
||||
}
|
||||
|
||||
// 调试输出
|
||||
trace('Resource data: ' . json_encode($resource), 'debug');
|
||||
|
||||
Log::record('获取资源详情', 1, '', '资源管理');
|
||||
return json(['code' => 0, 'msg' => '获取成功', 'data' => $resource]);
|
||||
}
|
||||
|
||||
@@ -407,6 +419,7 @@ class Resources extends Base
|
||||
$id = input('id/d', 0);
|
||||
|
||||
if (!$id) {
|
||||
Log::record('编辑资源', 0, '参数错误', '资源管理');
|
||||
return json(['code' => 1, 'msg' => '参数错误']);
|
||||
}
|
||||
|
||||
@@ -425,19 +438,23 @@ class Resources extends Base
|
||||
]);
|
||||
|
||||
if ($result !== false) {
|
||||
Log::record('编辑资源', 1, '', '资源管理');
|
||||
return json(['code' => 0, 'msg' => '编辑成功']);
|
||||
} else {
|
||||
Log::record('编辑资源', 0, '编辑资源失败', '资源管理');
|
||||
return json(['code' => 1, 'msg' => '编辑失败']);
|
||||
}
|
||||
}
|
||||
|
||||
$id = input('id/d', 0);
|
||||
if (!$id) {
|
||||
Log::record('编辑资源', 0, '参数错误', '资源管理');
|
||||
$this->error('参数错误');
|
||||
}
|
||||
|
||||
$resource = Db::table('yz_resources')->where('id', $id)->find();
|
||||
if (!$resource) {
|
||||
Log::record('编辑资源', 0, '资源不存在', '资源管理');
|
||||
$this->error('资源不存在');
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ use think\facade\Db;
|
||||
use think\facade\View;
|
||||
use think\facade\Request;
|
||||
use app\admin\model\YzAdminConfig;
|
||||
use app\admin\controller\Log;
|
||||
|
||||
class Yunzer extends Base{
|
||||
# 菜单列表
|
||||
@@ -25,6 +26,7 @@ class Yunzer extends Base{
|
||||
if ($req->isPost()) {
|
||||
$data['label'] = trim(input('post.label'));
|
||||
if (empty($data['label'])) {
|
||||
Log::record('添加菜单', 0, '请输入菜单名称', '菜单管理');
|
||||
$this->returnCode(1, '请输入菜单名称');
|
||||
}
|
||||
$data['icon_class'] = trim(input('post.icon_class'));
|
||||
@@ -34,11 +36,13 @@ class Yunzer extends Base{
|
||||
if ($data['type'] == 1) {
|
||||
$data['src'] = trim(input('post.src1'));
|
||||
if (empty($data['src'])) {
|
||||
Log::record('添加菜单', 0, '请输入内部跳转地址', '菜单管理');
|
||||
$this->returnCode(1, '请输入内部跳转地址');
|
||||
}
|
||||
} else if ($data['type'] == 2) {
|
||||
$data['src'] = trim(input('post.src2'));
|
||||
if (empty($data['src'])) {
|
||||
Log::record('添加菜单', 0, '请输入超链接地址', '菜单管理');
|
||||
$this->returnCode(1, '请输入超链接地址');
|
||||
}
|
||||
} else {
|
||||
@@ -47,6 +51,7 @@ class Yunzer extends Base{
|
||||
// 保存菜单
|
||||
$res = Db::table('yz_admin_sys_menu')->insert($data);
|
||||
if (!$res) {
|
||||
Log::record('添加菜单', 0, '添加菜单失败', '菜单管理');
|
||||
$this->returnCode(1, '添加菜单失败');
|
||||
}
|
||||
|
||||
@@ -73,6 +78,7 @@ class Yunzer extends Base{
|
||||
}
|
||||
}
|
||||
|
||||
Log::record('添加菜单', 1, '', '菜单管理');
|
||||
$this->returnCode(0);
|
||||
} else {
|
||||
$iconfont = Db::table('yz_z_iconfont')->where('status', 1)->select();
|
||||
@@ -89,6 +95,7 @@ class Yunzer extends Base{
|
||||
$smid = (int)input('post.smid');
|
||||
$data['label'] = trim(input('post.label'));
|
||||
if(!$data['label']){
|
||||
Log::record('编辑菜单', 0, '请输入菜单名称', '菜单管理');
|
||||
$this->returnCode(1, '请输入菜单名称');
|
||||
}
|
||||
$data['icon_class'] = trim(input('post.icon_class'));
|
||||
@@ -98,11 +105,13 @@ class Yunzer extends Base{
|
||||
if($data['type'] == 1){
|
||||
$data['src'] = trim(input('post.src1'));
|
||||
if(empty($data['src'])){
|
||||
Log::record('编辑菜单', 0, '请输入内部跳转地址', '菜单管理');
|
||||
$this->returnCode(1, '请输入内部跳转地址');
|
||||
}
|
||||
}else if($data['type'] == 2){
|
||||
$data['src'] = trim(input('post.src2'));
|
||||
if(empty($data['src'])){
|
||||
Log::record('编辑菜单', 0, '请输入超链接地址', '菜单管理');
|
||||
$this->returnCode(1, '请输入超链接地址');
|
||||
}
|
||||
}else{
|
||||
@@ -111,8 +120,10 @@ class Yunzer extends Base{
|
||||
// 保存用户
|
||||
$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->update($data);
|
||||
if(!$res){
|
||||
Log::record('编辑菜单', 0, '修改菜单失败', '菜单管理');
|
||||
$this->returnCode(1, '修改菜单失败');
|
||||
}
|
||||
Log::record('编辑菜单', 1, '', '菜单管理');
|
||||
$this->returnCode(0);
|
||||
}else{
|
||||
$smid = (int)input('get.smid');
|
||||
@@ -130,12 +141,15 @@ class Yunzer extends Base{
|
||||
$smid = (int)input('post.smid');
|
||||
$count = Db::table('yz_admin_sys_menu')->where('parent_id',$smid)->count();
|
||||
if($count > 0){
|
||||
Log::record('删除菜单', 0, '该菜单下还有子菜单,不能删除', '菜单管理');
|
||||
$this->returnCode(1, '该菜单下还有子菜单,不能删除');
|
||||
}
|
||||
$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->delete();
|
||||
if(empty($res)){
|
||||
Log::record('删除菜单', 0, '删除菜单失败', '菜单管理');
|
||||
$this->returnCode(1, '删除菜单失败');
|
||||
}
|
||||
Log::record('删除菜单', 1, '', '菜单管理');
|
||||
$this->returnCode(0);
|
||||
}
|
||||
# 按钮管理
|
||||
@@ -173,6 +187,7 @@ class Yunzer extends Base{
|
||||
$smid = (int)input('post.smid');
|
||||
$data['label'] = trim(input('post.label'));
|
||||
if(!$data['label']){
|
||||
Log::record('添加按钮', 0, '请输入按钮名称', '按钮管理');
|
||||
$this->returnCode(1, '请输入按钮名称');
|
||||
}
|
||||
$data['icon_class'] = trim(input('post.icon_class'));
|
||||
@@ -180,24 +195,29 @@ class Yunzer extends Base{
|
||||
$data['status'] = (int)trim(input('post.status'));
|
||||
$data['type'] = (int)trim(input('post.type'));
|
||||
if(empty($data['type'])){
|
||||
Log::record('添加按钮', 0, '请选择按钮类型', '按钮管理');
|
||||
$this->returnCode(1, '请选择按钮类型');
|
||||
}
|
||||
if($data['type'] == 1){
|
||||
$data['src'] = trim(input('post.src1'));
|
||||
if(empty($data['src'])){
|
||||
Log::record('添加按钮', 0, '请输入内部跳转地址', '按钮管理');
|
||||
$this->returnCode(1, '请输入内部跳转地址');
|
||||
}
|
||||
}else if($data['type'] == 2){
|
||||
$data['src'] = trim(input('post.src2'));
|
||||
if(empty($data['src'])){
|
||||
Log::record('添加按钮', 0, '请输入超链接地址', '按钮管理');
|
||||
$this->returnCode(1, '请输入超链接地址');
|
||||
}
|
||||
}
|
||||
$data['parent_id'] = $smid;
|
||||
$res = Db::table('yz_admin_sys_menu')->insert($data);
|
||||
if(!$res){
|
||||
Log::record('添加按钮', 0, '添加按钮失败', '按钮管理');
|
||||
$this->returnCode(1, '添加按钮失败');
|
||||
}
|
||||
Log::record('添加按钮', 1, '', '按钮管理');
|
||||
$this->returnCode(0);
|
||||
}else{
|
||||
$smid = (int)input('get.smid');
|
||||
@@ -216,6 +236,7 @@ class Yunzer extends Base{
|
||||
$smid = (int)input('post.smid');
|
||||
$data['label'] = trim(input('post.label'));
|
||||
if(!$data['label']){
|
||||
Log::record('编辑按钮', 0, '请输入按钮名称', '按钮管理');
|
||||
$this->returnCode(1, '请输入按钮名称');
|
||||
}
|
||||
$data['icon_class'] = trim(input('post.icon_class'));
|
||||
@@ -223,23 +244,28 @@ class Yunzer extends Base{
|
||||
$data['status'] = (int)trim(input('post.status'));
|
||||
$data['type'] = (int)trim(input('post.type'));
|
||||
if(empty($data['type'])){
|
||||
Log::record('编辑按钮', 0, '请选择按钮类型', '按钮管理');
|
||||
$this->returnCode(1, '请选择按钮类型');
|
||||
}
|
||||
if($data['type'] == 1){
|
||||
$data['src'] = trim(input('post.src1'));
|
||||
if(empty($data['src'])){
|
||||
Log::record('编辑按钮', 0, '请输入内部跳转地址', '按钮管理');
|
||||
$this->returnCode(1, '请输入内部跳转地址');
|
||||
}
|
||||
}else if($data['type'] == 2){
|
||||
$data['src'] = trim(input('post.src2'));
|
||||
if(empty($data['src'])){
|
||||
Log::record('编辑按钮', 0, '请输入超链接地址', '按钮管理');
|
||||
$this->returnCode(1, '请输入超链接地址');
|
||||
}
|
||||
}
|
||||
$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->update($data);
|
||||
if(!$res){
|
||||
Log::record('编辑按钮', 0, '修改按钮失败', '按钮管理');
|
||||
$this->returnCode(1, '修改按钮失败');
|
||||
}
|
||||
Log::record('编辑按钮', 1, '', '按钮管理');
|
||||
$this->returnCode(0);
|
||||
}else{
|
||||
$smid = (int)input('get.smid');
|
||||
@@ -257,8 +283,10 @@ class Yunzer extends Base{
|
||||
$smid = (int)input('post.smid');
|
||||
$res = Db::table('yz_admin_sys_menu')->where('smid',$smid)->delete();
|
||||
if(empty($res)){
|
||||
Log::record('删除按钮', 0, '删除按钮失败', '按钮管理');
|
||||
$this->returnCode(1, '删除按钮失败');
|
||||
}
|
||||
Log::record('删除按钮', 1, '', '按钮管理');
|
||||
$this->returnCode(0);
|
||||
}
|
||||
# 配置列表
|
||||
@@ -280,10 +308,12 @@ class Yunzer extends Base{
|
||||
if($req->isPost()){
|
||||
$data['config_name'] = trim(input('post.config_name'));
|
||||
if(empty($data['config_name'])){
|
||||
Log::record('添加配置', 0, '请输入关键词', '系统配置');
|
||||
$this->returnCode(1,'请输入关键词');
|
||||
}
|
||||
$data['config_info'] = trim(input('post.config_info'));
|
||||
if(empty($data['config_info'])){
|
||||
Log::record('添加配置', 0, '请输入作用', '系统配置');
|
||||
$this->returnCode(1,'请输入作用');
|
||||
}
|
||||
$data['config_type'] = trim(input('post.config_type'));
|
||||
@@ -292,8 +322,10 @@ class Yunzer extends Base{
|
||||
$data['config_sort'] = trim(input('post.config_sort'));
|
||||
$res = Db::table('yz_admin_config')->insert($data);
|
||||
if(empty($res)){
|
||||
Log::record('添加配置', 0, '添加配置失败', '系统配置');
|
||||
$this->returnCode(1, '添加配置失败');
|
||||
}
|
||||
Log::record('添加配置', 1, '', '系统配置');
|
||||
$this->returnCode(0);
|
||||
}else{
|
||||
return View::fetch();
|
||||
@@ -305,14 +337,17 @@ class Yunzer extends Base{
|
||||
if($req->isPost()){
|
||||
$config_id = (int)input('post.config_id');
|
||||
if(empty($config_id)){
|
||||
Log::record('编辑配置', 0, '请选择一条数据', '系统配置');
|
||||
$this->returnCode(1,'请选择一条数据');
|
||||
}
|
||||
$data['config_name'] = trim(input('post.config_name'));
|
||||
if(empty($data['config_name'])){
|
||||
Log::record('编辑配置', 0, '请输入关键词', '系统配置');
|
||||
$this->returnCode(1,'请输入关键词');
|
||||
}
|
||||
$data['config_info'] = trim(input('post.config_info'));
|
||||
if(empty($data['config_info'])){
|
||||
Log::record('编辑配置', 0, '请输入作用', '系统配置');
|
||||
$this->returnCode(1,'请输入作用');
|
||||
}
|
||||
$data['config_type'] = trim(input('post.config_type'));
|
||||
@@ -321,8 +356,10 @@ class Yunzer extends Base{
|
||||
$data['config_sort'] = trim(input('post.config_sort'));
|
||||
$res = Db::table('yz_admin_config')->where('config_id',$config_id)->update($data);
|
||||
if(empty($res)){
|
||||
Log::record('编辑配置', 0, '修改配置失败', '系统配置');
|
||||
$this->returnCode(1, '修改配置失败');
|
||||
}
|
||||
Log::record('编辑配置', 1, '', '系统配置');
|
||||
$this->returnCode(0);
|
||||
}else{
|
||||
$config_id = (int)input('get.config_id');
|
||||
@@ -337,12 +374,15 @@ class Yunzer extends Base{
|
||||
public function configdel(){
|
||||
$config_id = (int)input('post.config_id');
|
||||
if(empty($config_id)){
|
||||
Log::record('删除配置', 0, '请选择一条数据', '系统配置');
|
||||
$this->returnCode(1,'请选择一条数据');
|
||||
}
|
||||
$res = Db::table('yz_admin_config')->where('config_id',$config_id)->delete();
|
||||
if(empty($res)){
|
||||
Log::record('删除配置', 0, '删除配置失败', '系统配置');
|
||||
$this->returnCode(1, '删除配置失败');
|
||||
}
|
||||
Log::record('删除配置', 1, '', '系统配置');
|
||||
$this->returnCode(0);
|
||||
}
|
||||
# 配置值
|
||||
@@ -351,13 +391,16 @@ class Yunzer extends Base{
|
||||
if($req->isPost()){
|
||||
$post = input('post.');
|
||||
if(empty($post)){
|
||||
Log::record('更新配置值', 0, '数据不能为空', '系统配置');
|
||||
$this->returnCode(1,'数据不能为空');
|
||||
}
|
||||
$oConfig = new YzAdminConfig();
|
||||
$updateAll = $oConfig->updateAll($post);
|
||||
if(empty($updateAll)){
|
||||
Log::record('更新配置值', 0, '更新配置值失败', '系统配置');
|
||||
$this->returnCode(1, '更新配置值失败');
|
||||
}
|
||||
Log::record('更新配置值', 1, '', '系统配置');
|
||||
$this->returnCode(0);
|
||||
}else{
|
||||
$lists = Db::table('yz_admin_config')->order('config_sort DESC,config_id')->select();
|
||||
|
||||
@@ -4,6 +4,7 @@ use app\admin\controller\Base;
|
||||
use think\facade\Db;
|
||||
use think\facade\View;
|
||||
use think\facade\Request;
|
||||
use app\admin\controller\Log;
|
||||
|
||||
class Yunzeradmin extends Base
|
||||
{
|
||||
@@ -23,6 +24,7 @@ class Yunzeradmin extends Base
|
||||
if (Request::isPost()) {
|
||||
$data['group_name'] = trim(input('post.group_name'));
|
||||
if (!$data['group_name']) {
|
||||
Log::record('添加角色', 0, '角色名称不能为空', '角色管理');
|
||||
return json(['code' => 1, 'msg' => '角色名称不能为空']);
|
||||
}
|
||||
$data['status'] = (int) trim(input('post.status'));
|
||||
@@ -33,8 +35,10 @@ class Yunzeradmin extends Base
|
||||
}
|
||||
$res = Db::table('yz_admin_user_group')->insert($data);
|
||||
if (!$res) {
|
||||
Log::record('添加角色', 0, '添加角色失败', '角色管理');
|
||||
return json(['code' => 1, 'msg' => '添加角色失败']);
|
||||
}
|
||||
Log::record('添加角色', 1, '', '角色管理');
|
||||
return json(['code' => 0, 'msg' => '添加成功']);
|
||||
} else {
|
||||
$menus = Db::table('yz_admin_sys_menu')->order('type,sort desc')->where('status', '=', 1)->select();
|
||||
@@ -69,6 +73,7 @@ class Yunzeradmin extends Base
|
||||
$group_id = (int) trim(input('post.group_id'));
|
||||
$data['group_name'] = trim(input('post.group_name'));
|
||||
if (!$data['group_name']) {
|
||||
Log::record('编辑角色', 0, '角色名称不能为空', '角色管理');
|
||||
return json(['code' => 1, 'msg' => '角色名称不能为空']);
|
||||
}
|
||||
$data['status'] = (int) trim(input('post.status'));
|
||||
@@ -80,8 +85,10 @@ class Yunzeradmin extends Base
|
||||
}
|
||||
$res = Db::table('yz_admin_user_group')->where('group_id', $group_id)->update($data);
|
||||
if (!$res) {
|
||||
Log::record('编辑角色', 0, '更新角色失败', '角色管理');
|
||||
return json(['code' => 1, 'msg' => '更新角色失败']);
|
||||
}
|
||||
Log::record('编辑角色', 1, '', '角色管理');
|
||||
return json(['code' => 0, 'msg' => '更新成功']);
|
||||
} else {
|
||||
$group_id = (int) input('get.group_id');
|
||||
@@ -122,8 +129,10 @@ class Yunzeradmin extends Base
|
||||
$group_id = (int) input('post.group_id');
|
||||
$res = Db::table('yz_admin_user_group')->where('group_id', $group_id)->delete();
|
||||
if (empty($res)) {
|
||||
Log::record('删除角色', 0, '删除角色失败', '角色管理');
|
||||
return json(['code' => 1, 'msg' => '删除角色失败']);
|
||||
}
|
||||
Log::record('删除角色', 1, '', '角色管理');
|
||||
return json(['code' => 0, 'msg' => '删除成功']);
|
||||
}
|
||||
|
||||
@@ -149,14 +158,17 @@ class Yunzeradmin extends Base
|
||||
if (Request::isPost()) {
|
||||
$data['account'] = trim(input('post.account'));
|
||||
if (empty($data['account'])) {
|
||||
Log::record('添加管理员', 0, '账号不能为空', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '账号不能为空']);
|
||||
}
|
||||
$pattern = "/^([0-9A-Za-z-_.]+)@([0-9a-z]+.[a-z]{2,3}(.[a-z]{2})?)$/i";
|
||||
if (!preg_match($pattern, $data['account'])) {
|
||||
Log::record('添加管理员', 0, '邮箱格式不正确', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '邮箱格式不正确']);
|
||||
}
|
||||
$item = Db::table('yz_admin_user')->where('account', $data['account'])->find();
|
||||
if ($item) {
|
||||
Log::record('添加管理员', 0, '该账号已存在', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '该账号已存在']);
|
||||
}
|
||||
$data['name'] = trim(input('post.name'));
|
||||
@@ -167,15 +179,19 @@ class Yunzeradmin extends Base
|
||||
$data['status'] = (int) (input('post.status'));
|
||||
$password = trim(input('post.password'));
|
||||
if (empty($data['name'])) {
|
||||
Log::record('添加管理员', 0, '姓名不能为空', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '姓名不能为空']);
|
||||
}
|
||||
if (empty($data['phone'])) {
|
||||
Log::record('添加管理员', 0, '手机号不能为空', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '手机号不能为空']);
|
||||
}
|
||||
if (empty($data['group_id'])) {
|
||||
Log::record('添加管理员', 0, '请选择角色', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '请选择角色']);
|
||||
}
|
||||
if (empty($password)) {
|
||||
Log::record('添加管理员', 0, '密码不能为空', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '密码不能为空']);
|
||||
} else {
|
||||
$data['password'] = md5($password);
|
||||
@@ -184,8 +200,10 @@ class Yunzeradmin extends Base
|
||||
$data['update_time'] = time();
|
||||
$res = Db::table('yz_admin_user')->insert($data);
|
||||
if (!$res) {
|
||||
Log::record('添加管理员', 0, '添加管理员失败', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '添加管理员失败']);
|
||||
}
|
||||
Log::record('添加管理员', 1, '', '管理员管理');
|
||||
return json(['code' => 0, 'msg' => '添加成功']);
|
||||
} else {
|
||||
$group = [];
|
||||
@@ -212,19 +230,23 @@ class Yunzeradmin extends Base
|
||||
$data['sex'] = (int) (input('post.sex'));
|
||||
$data['status'] = (int) (input('post.status'));
|
||||
if (empty($data['name'])) {
|
||||
Log::record('编辑管理员', 0, '姓名不能为空', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '姓名不能为空']);
|
||||
}
|
||||
if (empty($data['phone'])) {
|
||||
Log::record('编辑管理员', 0, '手机号不能为空', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '手机号不能为空']);
|
||||
}
|
||||
if (empty($data['group_id'])) {
|
||||
Log::record('编辑管理员', 0, '请选择角色', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '请选择角色']);
|
||||
}
|
||||
// 保存用户
|
||||
$res = Db::table('yz_admin_user')->where('uid', $uid)->update($data);
|
||||
if (!$res) {
|
||||
Log::record('编辑管理员', 0, '更新管理员信息失败', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '更新管理员信息失败']);
|
||||
}
|
||||
Log::record('编辑管理员', 1, '', '管理员管理');
|
||||
return json(['code' => 0, 'msg' => '更新成功']);
|
||||
} else {
|
||||
$uid = (int) input('get.uid');
|
||||
@@ -250,8 +272,10 @@ class Yunzeradmin extends Base
|
||||
$uid = (int) input('post.uid');
|
||||
$res = Db::table('yz_admin_user')->where('uid', $uid)->delete();
|
||||
if (empty($res)) {
|
||||
Log::record('删除管理员', 0, '删除管理员失败', '管理员管理');
|
||||
return json(['code' => 1, 'msg' => '删除管理员失败']);
|
||||
}
|
||||
Log::record('删除管理员', 1, '', '管理员管理');
|
||||
return json(['code' => 0, 'msg' => '删除成功']);
|
||||
}
|
||||
|
||||
@@ -261,6 +285,7 @@ class Yunzeradmin extends Base
|
||||
if (Request::isPost()) {
|
||||
$find = Db::table('yz_admin_user')->where('uid', $this->adminId)->find();
|
||||
if (empty($find)) {
|
||||
Log::record('修改个人信息', 0, '当前账户不存在', '个人信息');
|
||||
return json(['code' => 1, 'msg' => '当前账户不存在']);
|
||||
}
|
||||
$data['name'] = trim(input('post.name'));
|
||||
@@ -268,9 +293,11 @@ class Yunzeradmin extends Base
|
||||
$data['qq'] = (int) trim(input('post.qq'));
|
||||
$data['sex'] = (int) (input('post.sex'));
|
||||
if (empty($data['name'])) {
|
||||
Log::record('修改个人信息', 0, '姓名不能为空', '个人信息');
|
||||
return json(['code' => 1, 'msg' => '姓名不能为空']);
|
||||
}
|
||||
if (empty($data['phone'])) {
|
||||
Log::record('修改个人信息', 0, '手机号不能为空', '个人信息');
|
||||
return json(['code' => 1, 'msg' => '手机号不能为空']);
|
||||
}
|
||||
|
||||
@@ -279,16 +306,18 @@ class Yunzeradmin extends Base
|
||||
$new_pw = trim(input('post.new_pw'));
|
||||
if (!empty($old_pw) && !empty($new_pw)) {
|
||||
if (md5($old_pw) != $find['password']) {
|
||||
Log::record('修改个人信息', 0, '原密码错误', '个人信息');
|
||||
return json(['code' => 1, 'msg' => '原密码错误']);
|
||||
}
|
||||
$data['password'] = md5($new_pw);
|
||||
}
|
||||
|
||||
// 保存用户
|
||||
$res = Db::table('yz_admin_user')->where('uid', $this->adminId)->update($data);
|
||||
if (!$res) {
|
||||
Log::record('修改个人信息', 0, '更新管理员信息失败', '个人信息');
|
||||
return json(['code' => 1, 'msg' => '更新管理员信息失败']);
|
||||
}
|
||||
Log::record('修改个人信息', 1, '', '个人信息');
|
||||
return json(['code' => 0, 'msg' => '更新成功']);
|
||||
} else {
|
||||
return View::fetch();
|
||||
@@ -352,8 +381,10 @@ class Yunzeradmin extends Base
|
||||
|
||||
$res = Db::table('yz_banner')->insert($data);
|
||||
if (!$res) {
|
||||
Log::record('添加Banner', 0, '添加Banner失败', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => '添加Banner失败']);
|
||||
}
|
||||
Log::record('添加Banner', 1, '', 'Banner管理');
|
||||
return json(['code' => 0, 'msg' => '添加成功']);
|
||||
}
|
||||
return json(['code' => 1, 'msg' => '请求方法无效']);
|
||||
@@ -365,6 +396,7 @@ class Yunzeradmin extends Base
|
||||
if (Request::isPost()) {
|
||||
$id = input('post.id');
|
||||
if (empty($id)) {
|
||||
Log::record('编辑Banner', 0, 'ID不能为空', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => 'ID不能为空']);
|
||||
}
|
||||
|
||||
@@ -378,8 +410,10 @@ class Yunzeradmin extends Base
|
||||
|
||||
$res = Db::table('yz_banner')->where('id', $id)->update($data);
|
||||
if ($res === false) {
|
||||
Log::record('编辑Banner', 0, '更新Banner失败', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => '更新Banner失败']);
|
||||
}
|
||||
Log::record('编辑Banner', 1, '', 'Banner管理');
|
||||
return json(['code' => 0, 'msg' => '更新成功']);
|
||||
}
|
||||
return json(['code' => 1, 'msg' => '请求方法无效']);
|
||||
@@ -391,13 +425,16 @@ class Yunzeradmin extends Base
|
||||
if (Request::isPost()) {
|
||||
$id = input('post.id');
|
||||
if (empty($id)) {
|
||||
Log::record('删除Banner', 0, 'ID不能为空', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => 'ID不能为空']);
|
||||
}
|
||||
|
||||
$res = Db::table('yz_banner')->where('id', $id)->update(['delete_time' => time()]);
|
||||
if (!$res) {
|
||||
Log::record('删除Banner', 0, '删除Banner失败', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => '删除Banner失败']);
|
||||
}
|
||||
Log::record('删除Banner', 1, '', 'Banner管理');
|
||||
return json(['code' => 0, 'msg' => '删除成功']);
|
||||
}
|
||||
return json(['code' => 1, 'msg' => '请求方法无效']);
|
||||
@@ -411,13 +448,16 @@ class Yunzeradmin extends Base
|
||||
$status = input('post.status');
|
||||
|
||||
if (empty($id)) {
|
||||
Log::record('修改Banner状态', 0, 'ID不能为空', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => 'ID不能为空']);
|
||||
}
|
||||
|
||||
$res = Db::table('yz_banner')->where('id', $id)->update(['status' => $status]);
|
||||
if ($res === false) {
|
||||
Log::record('修改Banner状态', 0, '更新状态失败', 'Banner管理');
|
||||
return json(['code' => 1, 'msg' => '更新状态失败']);
|
||||
}
|
||||
Log::record('修改Banner状态', 1, '', 'Banner管理');
|
||||
return json(['code' => 0, 'msg' => '更新成功']);
|
||||
}
|
||||
return json(['code' => 1, 'msg' => '请求方法无效']);
|
||||
|
||||
@@ -53,24 +53,13 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="tableToolbar">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="clearAll">
|
||||
<i class="layui-icon layui-icon-delete"></i> 清空日志
|
||||
</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="tableBar">
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
|
||||
</script>
|
||||
|
||||
<script src="/static/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.use(['table', 'form', 'laydate'], function(){
|
||||
layui.use(['table', 'form', 'laydate', 'layer'], function(){
|
||||
var table = layui.table;
|
||||
var form = layui.form;
|
||||
var laydate = layui.laydate;
|
||||
var layer = layui.layer;
|
||||
|
||||
// 初始化时间范围选择器
|
||||
laydate.render({
|
||||
@@ -83,35 +72,30 @@
|
||||
table.render({
|
||||
elem: '#operationLogTable',
|
||||
url: '{:url("log/operation")}',
|
||||
method: 'post',
|
||||
toolbar: '#tableToolbar',
|
||||
method: 'get',
|
||||
defaultToolbar: ['filter', 'exports', 'print'],
|
||||
parseData: function(res) {
|
||||
return {
|
||||
"code": res.code === 0 ? 0 : 1,
|
||||
"msg": res.msg,
|
||||
"count": res.count,
|
||||
"data": res.data
|
||||
"code": 0,
|
||||
"msg": res.msg || '获取成功',
|
||||
"count": res.count || 0,
|
||||
"data": res.data || []
|
||||
};
|
||||
},
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 80, sort: true},
|
||||
{field: 'username', title: '用户名', width: 120},
|
||||
{field: 'module', title: '模块', width: 120},
|
||||
{field: 'operation', title: '操作', width: 120},
|
||||
{field: 'request_method', title: '请求方法', width: 100},
|
||||
{field: 'request_url', title: '请求URL', width: 200},
|
||||
{field: 'request_params', title: '请求参数', width: 200},
|
||||
{field: 'ip_address', title: 'IP地址', width: 130},
|
||||
{field: 'status', title: '状态', width: 100, templet: function(d){
|
||||
return d.status == 1 ?
|
||||
'<span class="layui-badge layui-bg-green">成功</span>' :
|
||||
'<span class="layui-badge layui-bg-red">失败</span>';
|
||||
{field: 'id', title: 'ID', width: 80, sort: true, align: 'center'},
|
||||
{field: 'username', title: '操作人', width: 120, align: 'center'},
|
||||
{field: 'module', title: '模块', width: 120, align: 'center'},
|
||||
{field: 'operation', title: '操作', width: 150, align: 'center'},
|
||||
{field: 'request_method', title: '请求方法', width: 100, align: 'center'},
|
||||
{field: 'request_url', title: '请求地址', align: 'center'},
|
||||
{field: 'ip_address', title: 'IP地址', width: 120, align: 'center'},
|
||||
{field: 'status', title: '状态', width: 100, align: 'center', templet: function(d){
|
||||
return d.status == 1 ? '<span class="layui-badge layui-bg-green">成功</span>' : '<span class="layui-badge layui-bg-red">失败</span>';
|
||||
}},
|
||||
{field: 'error_message', title: '错误信息', width: 150},
|
||||
{field: 'operation_time', title: '操作时间', width: 180, sort: true},
|
||||
{field: 'execution_time', title: '执行时间(ms)', width: 120, sort: true},
|
||||
{title: '操作', toolbar: '#tableBar', width: 80, fixed: 'right'}
|
||||
{field: 'operation_time', title: '操作时间', width: 180, align: 'center'},
|
||||
{field: 'execution_time', title: '执行时间(ms)', width: 120, align: 'center'},
|
||||
{title: '操作', width: 120, toolbar: '#operationBar', fixed: 'right', align: 'center'}
|
||||
]],
|
||||
page: true,
|
||||
limit: 10,
|
||||
@@ -138,38 +122,52 @@
|
||||
// 监听工具条
|
||||
table.on('tool(operationLogTable)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('确定删除这条日志吗?', function(index){
|
||||
$.post('{:url("log/deleteOperation")}', {id: data.id}, function(res){
|
||||
if(obj.event === 'detail'){
|
||||
// 获取详情
|
||||
$.ajax({
|
||||
url: '{:url("log/getOperationDetail")}',
|
||||
type: 'GET',
|
||||
data: {id: data.id},
|
||||
success: function(res){
|
||||
if(res.code === 0){
|
||||
layer.msg(res.msg, {icon: 1});
|
||||
obj.del();
|
||||
}else{
|
||||
layer.msg(res.msg, {icon: 2});
|
||||
var detail = res.data;
|
||||
var content = '<div class="layui-card">' +
|
||||
'<div class="layui-card-body">' +
|
||||
'<table class="layui-table" lay-skin="nob">' +
|
||||
'<colgroup><col width="100"><col></colgroup>' +
|
||||
'<tbody>' +
|
||||
'<tr><td>操作人:</td><td>' + detail.username + '</td></tr>' +
|
||||
'<tr><td>模块:</td><td>' + detail.module + '</td></tr>' +
|
||||
'<tr><td>操作:</td><td>' + detail.operation + '</td></tr>' +
|
||||
'<tr><td>请求方法:</td><td>' + detail.request_method + '</td></tr>' +
|
||||
'<tr><td>请求地址:</td><td>' + detail.request_url + '</td></tr>' +
|
||||
'<tr><td>请求参数:</td><td><pre>' + JSON.stringify(detail.request_params, null, 2) + '</pre></td></tr>' +
|
||||
'<tr><td>IP地址:</td><td>' + detail.ip_address + '</td></tr>' +
|
||||
'<tr><td>状态:</td><td>' + (detail.status == 1 ? '成功' : '失败') + '</td></tr>' +
|
||||
'<tr><td>错误信息:</td><td>' + (detail.error_message || '无') + '</td></tr>' +
|
||||
'<tr><td>操作时间:</td><td>' + detail.operation_time + '</td></tr>' +
|
||||
'<tr><td>执行时间:</td><td>' + detail.execution_time + 'ms</td></tr>' +
|
||||
'</tbody></table></div></div>';
|
||||
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '操作日志详情',
|
||||
area: ['800px', '600px'],
|
||||
content: content
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 监听头工具栏事件
|
||||
table.on('toolbar(operationLogTable)', function(obj){
|
||||
if(obj.event === 'clearAll'){
|
||||
layer.confirm('确定要清空所有操作日志吗?', function(index){
|
||||
$.post('{:url("log/clearOperation")}', function(res){
|
||||
if(res.code === 0){
|
||||
layer.msg(res.msg, {icon: 1});
|
||||
table.reload('operationLogTable');
|
||||
}else{
|
||||
layer.msg(res.msg, {icon: 2});
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 表格工具栏模板 -->
|
||||
<script type="text/html" id="operationBar">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="detail">详情</a>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user