深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 93|回复: 4
打印 上一主题 下一主题

fastadmin的菜单显示逻辑

[复制链接]

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
跳转到指定楼层
楼主
发表于 2025-1-20 23:30:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 syant 于 2025-1-20 23:34 编辑

fastadmin的菜单显示逻辑

app/admin/view/index/index.html
          include file='common/menu'
   {$menulist}
搜索menulist
>>>>c:\apache24\htdocs\application50\admin\controller\index.php<<<<<
        list($menulist, $navlist, $fixedmenu, $referermenu) = $this->auth->getSidebar([
                $this->success('', null, ['menulist' => $menulist, 'navlist' => $navlist]);
        $this->view->assign('menulist', $menulist);
>>>>c:\apache24\htdocs\application50\common\library\menu.php<<<<<
        $menuList = [];
            $menuList = Tree::instance()->init($ruleList)->getTreeArray($menu['id']);
        return $menuList;

回复

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
沙发
 楼主| 发表于 2025-1-20 23:36:21 | 只看该作者

搜索function getSidebar(
>>>>c:\apache24\htdocs\application50\admin\library\auth.php<<<<<
    public function getSidebar($params = [], $fixedPage = 'dashboard')


回复 支持 反对

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
板凳
 楼主| 发表于 2025-1-21 11:24:09 | 只看该作者
重构实现同一个DBA数据库服务不同的项目app/admin/library/Auth.php中
加入代码:
$refererUrl = Session::get('referer');
                file_put_contents("c:/ss.txt",\app\admin\model\AuthRule::where('status', 'normal')
            ->where('ismenu', 1)
            ->order('weigh', 'desc')->buildSql());
        // 必须将结果集转换为数组
得到:
( SELECT * FROM `d_auth_rule` WHERE  `status` = 'normal'  AND `ismenu` = 1 ORDER BY `weigh` DESC )






回复 支持 反对

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
地板
 楼主| 发表于 2025-1-21 11:46:33 | 只看该作者
单级菜单的重构
一层菜单 二层菜单 三层菜单
  array (
    'id' => 111,
    'type' => 'file',
    'pid' => 0,
    'name' => '#sfc#qc',
    'title' => '品质管理',
    'icon' => 'fa fa-circle-o fa-fw',
    'url' => '/sfc/C.php/#sfc#qc',
    'condition' => '',
    'remark' => '',
    'ismenu' => 1,
    'menutype' => 'addtabs',
    'extend' => '',
    'py' => 'pzgl',
    'pinyin' => 'pinzhiguanli',
    'createtime' => 1737382564,
    'updatetime' => 1737382671,
    'weigh' => 0,
    'status' => 'normal',
    'badge' => '',
    'menuclass' => '',
    'menutabs' => 'addtabs="111"',
  )
array (
    'id' => 112,
    'type' => 'file',
    'pid' => 111,
    'name' => '#sfc#qc#repair',
    'title' => '维修管理',
    'icon' => 'fa fa-circle-o fa-fw',
    'url' => '/sfc/C.php/#sfc#qc#repair',
    'condition' => '',
    'remark' => '',
    'ismenu' => 1,
    'menutype' => 'addtabs',
    'extend' => '',
    'py' => 'wxgl',
    'pinyin' => 'weixiuguanli',
    'createtime' => 1737382658,
    'updatetime' => 1737382658,
    'weigh' => 0,
    'status' => 'normal',
    'badge' => '',
    'menuclass' => '',
    'menutabs' => 'addtabs="112"',
  )
array (
    'id' => 113,
    'type' => 'file',
    'pid' => 112,
    'name' => '#sfc#qc#repair#repairin',
    'title' => '不良品录入',
    'icon' => 'fa fa-circle-o fa-fw',
    'url' => '/sfc/L.php/repairsfc/repairin',
    'condition' => '',
    'remark' => '',
    'ismenu' => 1,
    'menutype' => 'addtabs',
    'extend' => '',
    'py' => 'blplr',
    'pinyin' => 'buliangpinluru',
    'createtime' => 1737382790,
    'updatetime' => 1737382790,
    'weigh' => 0,
    'status' => 'normal',
    'badge' => '',
    'menuclass' => '',
    'menutabs' => 'addtabs="113"',
  )
结论:1、菜单数据从后台获取回来时,并没有用某种逻辑做排序
2、有一个pid指向父,但似乎属性里没有说明自己是几级菜单的属性
回复 支持 反对

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
5#
 楼主| 发表于 2025-1-21 14:20:31 | 只看该作者
最后的getTreeMenu
搜索function getTreeMenu(
>>>>c:\apache24\htdocs\application\extend\fast\tree.php<<<<<
    public function getTreeMenu($myid, $itemtpl, $selectedids = '', $disabledids = '', $wraptag = 'ul', $wrapattr = '', $deeplevel = 0)


app/extend/fast/Tree.php
重构:


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 06:38 , Processed in 0.031406 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表