From 04098ad4526c981d96da8f340f1e0ab7347f3044 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Thu, 20 Jul 2023 23:34:37 +0800 Subject: [PATCH] =?UTF-8?q?AddFeature:=20=E6=96=B0=E5=A2=9E=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 管理员可直接添加友链操作,修复了一些简单的逻辑错误 新增: - add.blade.php - favicon.png 修改: - head.blade.php - Index.php - Console/Link.php - Function/Link.php - webpack.mix.js Signed-off-by: XiaoLFeng --- app/Http/Controllers/Console/Link.php | 103 ++++- app/Http/Controllers/Function/Link.php | 2 + app/Http/Controllers/Index.php | 2 +- resources/images/favicon.png | Bin 0 -> 6347 bytes .../views/console/friends-link/add.blade.php | 434 ++++++++++++++++++ resources/views/modules/head.blade.php | 6 +- webpack.mix.js | 3 +- 7 files changed, 538 insertions(+), 12 deletions(-) create mode 100644 resources/images/favicon.png create mode 100644 resources/views/console/friends-link/add.blade.php diff --git a/app/Http/Controllers/Console/Link.php b/app/Http/Controllers/Console/Link.php index d2c1393..abb97bf 100644 --- a/app/Http/Controllers/Console/Link.php +++ b/app/Http/Controllers/Console/Link.php @@ -148,21 +148,14 @@ protected function viewColor(): Factory|View|Application return view('console.friends-link.color', $this->data); } - public function apiConsoleAdd() + public function apiConsoleAdd(Request $request): JsonResponse { // 检查数据 - - } - - public function apiConsoleEdit(Request $request): JsonResponse - { - // 检查用户是否登录 if (Auth::check()) { if (Auth::user()->admin) { // 处理获取数据 $dataCheck = Validator::make($request->all(), [ - 'userId' => 'required|int', - 'userEmail' => 'required|email', + 'userEmail' => 'email', 'userServerHost' => 'required|string', 'userBlog' => 'required|string', 'userUrl' => 'required|regex:#[a-zA-z]+://[^\s]*#', @@ -196,6 +189,98 @@ public function apiConsoleEdit(Request $request): JsonResponse ], ]; } else { + if (empty($request->userEmail)) $request->userEmail = null; + if (empty($request->checkRssJudge)) $request->checkRssJudge = 0; + if (empty($request->userRss)) $request->userRss = null; + // 更新数据库 + DB::table('blog_link') + ->insert([ + 'blogOwnEmail' => $request->userEmail, + 'blogServerHost' => $request->userServerHost, + 'blogName' => $request->userBlog, + 'blogUrl' => $request->userUrl, + 'blogDescription' => $request->userDescription, + 'blogIcon' => $request->userIcon, + 'blogRssJudge' => $request->checkRssJudge, + 'blogRSS' => $request->userRss, + 'blogSetColor' => $request->userSelColor, + 'blogLocation' => $request->userLocation, + 'created_at' => date('Y-m-d H:i:s'), + ]); + $returnData = [ + 'output' => 'Success', + 'code' => 200, + 'data' => [ + 'message' => '数据插入成功', + ], + ]; + } + } else { + $returnData = [ + 'output' => 'NoPermission', + 'code' => 403, + 'data' => [ + 'message' => '没有权限', + ], + ]; + } + } else { + $returnData = [ + 'output' => 'PleaseLogin', + 'code' => 403, + 'data' => [ + 'message' => '请登录', + ], + ]; + } + return Response::json($returnData, $returnData['code']); + } + + public function apiConsoleEdit(Request $request): JsonResponse + { + // 检查用户是否登录 + if (Auth::check()) { + if (Auth::user()->admin) { + // 处理获取数据 + $dataCheck = Validator::make($request->all(), [ + 'userId' => 'required|int', + 'userEmail' => 'email', + 'userServerHost' => 'required|string', + 'userBlog' => 'required|string', + 'userUrl' => 'required|regex:#[a-zA-z]+://[^\s]*#', + 'userDescription' => 'required|string', + 'userIcon' => 'required|regex:#[a-zA-z]+://[^\s]*#', + 'checkRssJudge' => 'boolean', + 'userRss' => 'string|regex:#[a-zA-z]+://[^\s]*#', + 'userSelColor' => 'required|int', + 'userLocation' => 'required|string', + ]); + if ($dataCheck->fails()) { + $errorType = array_keys($dataCheck->failed()); + $i = 0; + foreach ($dataCheck->failed() as $valueData) { + $errorInfo[$errorType[$i]] = array_keys($valueData); + if ($i == 0) { + $errorSingle = [ + 'info' => $errorType[$i], + 'need' => $errorInfo[$errorType[$i]], + ]; + } + $i++; + } + $returnData = [ + 'output' => 'DataFormatError', + 'code' => 403, + 'data' => [ + 'message' => '输入内容有错误', + 'errorSingle' => $errorSingle, + 'error' => $errorInfo, + ], + ]; + } else { + if (empty($request->userEmail)) $request->userEmail = null; + if (empty($request->checkRssJudge)) $request->checkRssJudge = 0; + if (empty($request->userRss)) $request->userRss = null; // 更新数据库 DB::table('blog_link') ->where([['id', '=', $request->userId]]) diff --git a/app/Http/Controllers/Function/Link.php b/app/Http/Controllers/Function/Link.php index a714aa6..2d79b83 100644 --- a/app/Http/Controllers/Function/Link.php +++ b/app/Http/Controllers/Function/Link.php @@ -99,6 +99,8 @@ public function apiCustomAdd(HttpRequest $request): JsonResponse ])->get()->toArray(); if (empty($resultBlog)) { + if (empty($request->checkRssJudge)) $request->checkRssJudge = 0; + if (empty($request->userRss)) $request->userRss = null; // 数据写入数据库 $insertData = DB::table('blog_link') ->insert([ diff --git a/app/Http/Controllers/Index.php b/app/Http/Controllers/Index.php index 23bf6c1..fd6aff8 100644 --- a/app/Http/Controllers/Index.php +++ b/app/Http/Controllers/Index.php @@ -25,7 +25,7 @@ public function __construct() 'webDescription' => empty($tempStorage = DB::table('info')->find(2)->data) ? '未定义副标题' : $tempStorage, 'webSubTitle' => empty($tempStorage = DB::table('info')->find(3)->data) ? '未定义小标题' : $tempStorage, 'webSubTitleDescription' => empty($tempStorage = DB::table('info')->find(4)->data) ? '未定义小标题内容' : $tempStorage, - 'webIcon' => empty($tempStorage = DB::table('info')->find(5)->data) ? asset('images/logo.jpg') : $tempStorage, + 'webIcon' => empty($tempStorage = DB::table('info')->find(5)->data) ? asset('images/favicon.png') : $tempStorage, 'webHeader' => DB::table('info')->find(7)->data, 'webFooter' => DB::table('info')->find(8)->data, 'webKeyword' => empty($tempStorage = DB::table('info')->find(6)->data) ? '筱锋,凌中的锋雨,xiao_lfeng' : $tempStorage, diff --git a/resources/images/favicon.png b/resources/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b4a0b2f633b50a1f92e095d406656467a4f9db42 GIT binary patch literal 6347 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 Kbn0=g@&5zy%2qc3 literal 0 HcmV?d00001 diff --git a/resources/views/console/friends-link/add.blade.php b/resources/views/console/friends-link/add.blade.php new file mode 100644 index 0000000..ef04abe --- /dev/null +++ b/resources/views/console/friends-link/add.blade.php @@ -0,0 +1,434 @@ + + + + + + + + + @include('modules.head') + {!! $webHeader !!} + + + + + +@include('console.modules.aside') + +
+
+ @include('console.modules.personal') +
+
友链添加
+
+
+
+
+

当前友链

+

超级友链

+

待审友链

+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+
+
+ + +
+
+ +
+ +
+
+
+
+
+
+ +
+
+ +
+ +
+
+
+ + +
+
+ +
+ +
+
+
+
+ + +
+
+ +
+ +
+
+
+ + +
+
+ +
+ +
+
+
+
+ +
+
+ + +
+
+ +
+ +
+
+
+
+
+
+ + +
+
+ + + +
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+ + +
+
+
+
+
+ + 参考样式 +
+
+ +
+ Bordered avatar +
+

标题

+

副标题

+
+
+
+
+ +
+ Bordered avatar +
+

标题

+

副标题

+
+
+
+
+
+
+
+
+
+ + + + + + + diff --git a/resources/views/modules/head.blade.php b/resources/views/modules/head.blade.php index af08ffb..31c29aa 100644 --- a/resources/views/modules/head.blade.php +++ b/resources/views/modules/head.blade.php @@ -6,5 +6,9 @@ - + + + + + diff --git a/webpack.mix.js b/webpack.mix.js index 1bd471e..4facf55 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -20,4 +20,5 @@ const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .postCss('resources/css/app.css', 'public/css', [ require("tailwindcss") - ]); + ]) + .copy('resources/images/*', 'public/images');