From 8874d55e5879c8c7e18b1a63ab6c184c94de1c17 Mon Sep 17 00:00:00 2001 From: LiuPengFeiCode <525833532@qq.com> Date: Tue, 11 Feb 2025 09:39:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1.=E7=B3=BB=E7=BB=9F=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A1=B6=E7=BA=A7=E8=8F=9C=E5=8D=95=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E5=8D=A1=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=A4=8D=E6=9D=82?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86=EF=BC=9B2.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=B3=BB=E7=BB=9F=E8=87=AA=E5=AE=9A=E4=B9=89=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=EF=BC=8C=E6=96=B9=E4=BE=BF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/think-plugs-admin/src/controller/Menu.php | 14 ++++++++++++++ .../think-plugs-admin/src/controller/api/Plugs.php | 9 +++++++++ plugin/think-plugs-admin/src/view/api/icon.html | 7 +++++++ plugin/think-plugs-admin/src/view/menu/index.html | 11 ++++++++--- 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/plugin/think-plugs-admin/src/controller/Menu.php b/plugin/think-plugs-admin/src/controller/Menu.php index 90ba46cf0..c51cbc1ff 100644 --- a/plugin/think-plugs-admin/src/controller/Menu.php +++ b/plugin/think-plugs-admin/src/controller/Menu.php @@ -44,6 +44,12 @@ class Menu extends Controller { $this->title = '系统菜单管理'; $this->type = $this->get['type'] ?? 'index'; + // 获取顶级菜单ID + $this->pid = $this->get['pid'] ?? ''; + + // 查询顶级菜单集合 + $this->menup_list = SystemMenu::mk()->where(['pid' => 0, 'status' => 1])->order('sort desc,id asc')->column('id,pid,title', 'id'); + SystemMenu::mQuery()->layTable(); } @@ -66,6 +72,14 @@ class Menu extends Controller } // 菜单数据树数据变平化 $data = DataExtend::arr2table($data); + + // 过滤非当前顶级菜单的下级菜单,并重新索引数组 + if ($this->type === 'index' && $this->pid) { + $data = array_values(array_filter($data, function ($item) { + return strpos($item['spp'], ",{$this->pid},") !== false; + })); + } + foreach ($data as &$vo) { if ($vo['url'] !== '#' && !preg_match('/^(https?:)?(\/\/|\\\\)/i', $vo['url'])) { $vo['url'] = trim(url($vo['url']) . ($vo['params'] ? "?{$vo['params']}" : ''), '\\/'); diff --git a/plugin/think-plugs-admin/src/controller/api/Plugs.php b/plugin/think-plugs-admin/src/controller/api/Plugs.php index aabb79164..1f2a7ee44 100644 --- a/plugin/think-plugs-admin/src/controller/api/Plugs.php +++ b/plugin/think-plugs-admin/src/controller/api/Plugs.php @@ -55,6 +55,15 @@ class Plugs extends Controller } } } + // 读取extra自定义字体图标 + if (empty($this->extraIcons = $this->app->cache->get('ThinkAdminExtraIcons', []))) { + $style = file_get_contents(syspath('public/static/extra/icon/iconfont.css')); + if (preg_match_all('#\.(iconfont-[\w-]+):#', $style, $matches)) { + if (count($this->thinkIcons = $matches[1]) > 0) { + $this->app->cache->set('ThinkAdminExtraIcons', $this->extraIcons, 60); + } + } + } $this->field = $this->app->request->get('field', 'icon'); $this->fetch(dirname(__DIR__, 2) . '/view/api/icon.html'); } diff --git a/plugin/think-plugs-admin/src/view/api/icon.html b/plugin/think-plugs-admin/src/view/api/icon.html index 9100e2987..d9baf07ad 100644 --- a/plugin/think-plugs-admin/src/view/api/icon.html +++ b/plugin/think-plugs-admin/src/view/api/icon.html @@ -11,6 +11,7 @@ +