$request->user['type'], "type.default" => 1 ]); $hide = 0; $menu = (new MenuService)->getMenuList($request->user['is_super'],$hide,$param['form']); $permissionsData = []; foreach ($menu as $val) { if ($val['type'] == 'button') { $permissionsData[] = $val['name']; } } $menu = $this->filterMenu(DataExtend::arr2tree($menu),$param['type']); if($param['type'] == 1) { $permissions = $permissionsData; $dashboardGrid = []; return successTrans("success.data",compact('menu','permissions','dashboardGrid')); } return successTrans("success.data",$menu); } catch (\Throwable $throwable) { echo getDateFull()."===获取菜单报错\n"; echo $throwable->getMessage()."===".$throwable->getFile()."【".$throwable->getLine()."】===\n"; return error($throwable->getMessage()); } } public function saveMenuData(Request $request): Response { try { $state = (new SystemMenu)->setAutoData($request->post()); if(!$state) return errorTrans("error.data"); return successTrans("success.data"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 菜单信息格式化 * @param array $menus * @param int $type * @param int $mch * @return array */ protected function filterMenu(array $menus,int $type,int $mch = 0): array { foreach ($menus as &$menu) { $menu['meta'] = [ "title" => $menu['title'], "icon" => $menu['icon']??'', "type" => $menu['type'], "hidden" => !($menu['hide'] == 1), ]; if (!empty($menu['children'])) { $menu['children'] = $this->filterMenu($menu['children'],$type,$mch); } if ($mch > 0) { $menu['component'] = ($mch==1?'merchant/':'store/').$menu['name']; } else { $menu['component'] = $menu['name']; } $menu['isMenu'] = $menu['status']; if($type == 1) unset($menu['title'],$menu['icon'],$menu['type'],$menu['pid'],$menu['id']); } return $menus; } }