mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-12-01 06:30:49 +00:00
feat: #10000 菜单展示修改
This commit is contained in:
parent
c976ca77d4
commit
c8d979c67a
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
||||
use App\Models\Log as LogModel;
|
||||
use App\Models\Menu;
|
||||
use App\Http\Resources\MenusResource;
|
||||
use App\Utils\ArrayUtils;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Validation\Rule;
|
||||
@ -25,11 +26,29 @@ class MenusController extends Controller
|
||||
public function index(Request $request)
|
||||
{
|
||||
$permissions = $request->user()->getPermissionsViaRoles()->toArray();
|
||||
$permissions = array_column($permissions, 'name');
|
||||
$names = array_column($permissions, 'name');
|
||||
$routes = include(resource_path('lang/zh-CN/permission.php'));
|
||||
$routesIndexWithId = [];
|
||||
foreach ($routes as $code => $route) {
|
||||
$route['code'] = $code;
|
||||
$routesIndexWithId[$route['id']] = $route;
|
||||
}
|
||||
$permissionCodes = $names;
|
||||
foreach ($routes as $code => $route) {
|
||||
if (empty($route['parent_id']) || !in_array($code, $names, true)) {
|
||||
continue;
|
||||
}
|
||||
$parent = $routesIndexWithId[$route['parent_id']];
|
||||
$permissionCodes[] = $parent['code'];
|
||||
if ($parent['parent_id']) {
|
||||
$permissionCodes[] = $routesIndexWithId[$parent['parent_id']]['code'];
|
||||
}
|
||||
}
|
||||
$permissionCodes = array_unique($permissionCodes);
|
||||
$menus = Menu::query()->orderBy('parent_id')->orderBy('seq')->get()->toArray();
|
||||
$hasPermissionMenus = [];
|
||||
foreach ($menus as $menu) {
|
||||
if (in_array($menu['code'], $permissions, true)) {
|
||||
if (in_array($menu['code'], $permissionCodes, true)) {
|
||||
$hasPermissionMenus[] = $menu;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user