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 @@
+