mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-12-01 14:40:44 +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\Log as LogModel;
|
||||||
use App\Models\Menu;
|
use App\Models\Menu;
|
||||||
use App\Http\Resources\MenusResource;
|
use App\Http\Resources\MenusResource;
|
||||||
|
use App\Utils\ArrayUtils;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
@ -25,11 +26,29 @@ class MenusController extends Controller
|
|||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$permissions = $request->user()->getPermissionsViaRoles()->toArray();
|
$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();
|
$menus = Menu::query()->orderBy('parent_id')->orderBy('seq')->get()->toArray();
|
||||||
$hasPermissionMenus = [];
|
$hasPermissionMenus = [];
|
||||||
foreach ($menus as $menu) {
|
foreach ($menus as $menu) {
|
||||||
if (in_array($menu['code'], $permissions, true)) {
|
if (in_array($menu['code'], $permissionCodes, true)) {
|
||||||
$hasPermissionMenus[] = $menu;
|
$hasPermissionMenus[] = $menu;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user