From 4d43c26a5e4dd18e18f5ccc41ef1b64d8f926cd2 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Tue, 18 Mar 2025 10:22:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=A8=AA=E5=B9=85=E5=8F=8A?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=96=B0=E5=A2=9E=E7=94=A8=E4=BA=8E=E5=9B=9E?= =?UTF-8?q?=E6=98=BE=E7=9A=84=E9=93=BE=E6=8E=A5=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/BannerItem.php | 4 ++++ app/admin/controller/v1/NavigationItem.php | 3 +++ app/admin/controller/v1/System.php | 25 ++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/app/admin/controller/v1/BannerItem.php b/app/admin/controller/v1/BannerItem.php index ed4dfa76..672a9327 100644 --- a/app/admin/controller/v1/BannerItem.php +++ b/app/admin/controller/v1/BannerItem.php @@ -3,6 +3,7 @@ declare (strict_types = 1); namespace app\admin\controller\v1; +use app\admin\model\v1\ArticleModel; use app\admin\model\v1\SysBannerItemModel; use app\admin\validate\v1\SysBannerItemValidate; @@ -64,6 +65,9 @@ class BannerItem return error('横幅不存在'); } + // 组装用于前台回显的链接数据 + $banner_item['link_echo_data'] = System::getEchoDataBySystemPageUrl($banner_item['link_to'], $banner_item['link']); + return success('获取成功', $banner_item); } diff --git a/app/admin/controller/v1/NavigationItem.php b/app/admin/controller/v1/NavigationItem.php index 2d1fa823..28103adb 100644 --- a/app/admin/controller/v1/NavigationItem.php +++ b/app/admin/controller/v1/NavigationItem.php @@ -69,6 +69,9 @@ class NavigationItem return error('导航不存在'); } + // 组装用于前台回显的链接数据 + $nav['link_echo_data'] = System::getEchoDataBySystemPageUrl($nav['link_to'], $nav['link']); + return success('获取成功', $nav); } diff --git a/app/admin/controller/v1/System.php b/app/admin/controller/v1/System.php index 8aeee49d..8108e03b 100644 --- a/app/admin/controller/v1/System.php +++ b/app/admin/controller/v1/System.php @@ -219,4 +219,29 @@ class System return $data->toArray(); } + + // 根据系统页面url获取回显数据项 + static public function getEchoDataBySystemPageUrl($link_to, $link) + { + if ('custom' == $link_to) return []; + + $data = []; + parse_str(parse_url($link, PHP_URL_QUERY), $params); + switch ($link_to) { + case 'article': + $data = ArticleModel::field(['id', 'title' => 'name'])->bypk($params['id'])->find(); + break; + case 'product': + $data = ProductModel::field(['id', 'name'])->bypk($params['id'])->find(); + break; + default: + return []; + break; + } + return [ + 'id' => $data['id'], + 'name' => $data['name'], + 'link' => $link + ]; + } } \ No newline at end of file