yunzer/app/admin/controller/SystemController.php
2026-01-05 20:16:30 +08:00

96 lines
2.7 KiB
PHP

<?php
/**
* 商业使用授权协议
*
* Copyright (c) 2026 [云泽网]. 保留所有权利.
*
* 本软件仅供评估使用。任何商业用途必须获得书面授权许可。
* 未经授权商业使用本软件属于侵权行为,将承担法律责任。
*
* 授权购买请联系: 357099073@qq.com
* 官方网站: https://www.yunzer.cn
*
* 评估用户须知:
* 1. 禁止移除版权声明
* 2. 禁止用于生产环境
* 3. 禁止转售或分发
*/
/**
* 后台管理系统-系统管理
*/
namespace app\admin\controller;
use think\facade\Db;
use app\admin\controller\BaseController;
use app\admin\model\System\SystemMenu;
class SystemController extends BaseController
{
// 获取菜单列表
public function getMenuList()
{
try {
// 获取所有菜单,按排序和层级关系组织
$menus = SystemMenu::where('status', 1)
->order('sort', 'asc')
->order('id', 'asc')
->select()
->toArray();
// 按父子关系组织菜单
$menuTree = $this->buildMenuTree($menus);
// 直接输出JSON响应
header('Content-type: application/json');
echo json_encode([
'code' => 0,
'msg' => '获取菜单列表成功',
'data' => $menuTree
]);
exit;
} catch (\Exception $e) {
header('Content-type: application/json');
echo json_encode([
'code' => 1,
'msg' => '获取菜单列表失败:' . $e->getMessage()
]);
exit;
}
}
// 递归构建菜单树
private function buildMenuTree($menus, $parentId = 0)
{
$tree = [];
foreach ($menus as $menu) {
if ($menu['pid'] == $parentId) {
$children = $this->buildMenuTree($menus, $menu['id']);
$menuItem = [
'id' => $menu['id'],
'pid' => $menu['pid'],
'name' => $menu['name'] ?? '',
'title' => $menu['title'] ?? '',
'icon' => $menu['icon'] ?? '',
'path' => $menu['path'] ?? '',
'component' => $menu['component'] ?? '',
'redirect' => $menu['redirect'] ?? '',
'sort' => $menu['sort'] ?? 0,
'status' => $menu['status'] ?? 1,
'type' => $menu['type'] ?? 0
];
if (!empty($children)) {
$menuItem['children'] = $children;
}
$tree[] = $menuItem;
}
}
return $tree;
}
}